本ページは、ニッチな情報を主に扱う当サイトのコンセプトからは外れた、わりと常識的な知識を扱ったページです。
(2008-01-14)あまりにも内容が古くなり過ぎたので更新しました。
(2007-8-4 追加) 本ページと異なる形式のリカバリー・ディスクの作成について記したページを追加しました。→ Debian Linux の OneCD(ライブDVD)化手順
(2007-8-12) 別ページに追加しました。→ 巨大なNTFSパーティションのFAT32パーティションへのバックアップ
NTFSパーティションのネットワーク越しのバックアップ
稼働中LinuxのOS丸ごとネットワーク越しのバックアップ
上記の関連ページ群の方法を用いる等して作成したバックアップファイルの、レストア用DVDの作成法(の一例)です。
バックアップと逆の作業をおこなえばレストアできます。
以前はBG-Rescue Linuxを利用した方法を紹介していましたが、いつまでたってもBG-Rescueがアップデートされないので、もっと現代的な他の方法を紹介します。今度もかなり簡単です。(2009-03-12追記)拙作のMinimum UbuntuはBG-Rescueの替わりに使用できるものになっていると考えています。最近はこっちの方が遥かにお薦めなので、あまり本ページは更新していません。
One CD Linuxを使ってブータブルなリカバリーDVDを作成する方法
ここで作るリカバリーDVDはメーカー製PCのリカバリーCDのような自動でリカバリーしてくれるものではありません。何でもできるけど自動ではないリカバリーディスクです。
たとえばLinuxのブートパーティションの中身をバックアップしておいたデータからレストアする場合は、場合(※)によってはgrubブート環境の復旧もおこなわなければなりません。その場合にはブート環境の復旧(grub再インストール時の注意点)に書いてあるような作業が必要になります。 またWindowsパーティションをここの方法でバックアップしていた場合はバックアップした際の逆の手順でレストアをおこないます。
※:grubをMBRにstage1.5付き(普通はそう)でインストールしてあった場合、grubディレクトリの構成が元と同じになるようにリストアすれば、通常、grubの再インストール(セットアップ)は必要ありません。
必要な環境や物
- 必要な作業環境
あとで理由を書きますが、とりあえずLinuxとします。Windowsでは駄目な場合もあるからです。
- 他に必要なもの
- 適当なOne CD Linux ・・・ 例えばKNOPPIX, Ubuntu, Berry Linux...その他もっと容量の小さなOne CD Linux等
- バックアップデータ
(2009-01-18追記)リカバリOSとして最適なLinuxを作成しました。→Minimum Ubuntu (ミニマムUbuntu:レスキュー機能を持ち、限界までサイズを絞ったUbuntu Linuxの派生) isolinuxでブートする場合はデフォルト添付のsyslinux.cfgをisolinux.cfgとリネームすればそのまま使用できます。ブート後、「mount /dev/scd0 /mnt」とコマンドを打てばDVDの中のバックアップファイルが見える筈です。(2009-03-12追記)もしくはfstabに「/dev/scd0 /mnt udf defaults 0 0」このように記述しておけば自動でDVDをマウントできます。
作業手順
どのOne CD Linuxを使用しても基本的に手順は同じです。
たとえばUbuntuで説明しましょう。(私的にはどっちかと言うとKNOPPIXを選びたいです)
# mkdir pnt # mount -o loop,ro ubuntu-ja-7.10-desktop-i386.iso pnt # cp -a pnt work
と、ここまでの作業をおこなってから適当なディレクトリにバックアップデータを納めます。
# mkdir work/backupdata # cp -a ../..somewhere../hogehoge-backupdata work/backupdata
※一緒にfdisk情報を保存したテキスト(バックアップ時に# fdisk -l > fdisk-machine-name-date.txt等のコマンドで保存したもの)も入れておくことを推奨します。
次にmkisofsでisoファイルを作成します。このようなスクリプトを実行して下さい。
mkisofs \ -V "RECOVERYwithHoge" \ -J -R -r -udf -J \ -b isolinux/isolinux.bin \ -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table \ -o work.iso work
(↑この作業を一般ユーザでおこなうならその前にchmod +w isolinux.binを実行)
(↑バックアップ・リカバリディスクにそれほど長いファイル名を格納する可能性は低いと思われるので、ここではJオプションでJolietに対応させていますが、DVDをJoliet拡張付きで焼くことを私はあまり推奨しません。既に殆どのコンシューマ環境でUDFの読み込みが可能になっているからです。JolietはUDFに比べてファイル名の長さの制限が大きく、ファイルサーバのオフィス文書類を焼く場合などには非常に不便です。参考)
後はDVD-(+)R(RW)に焼くだけです。もちろんWindowsでも焼けます。
# growisofs -dvd-compat -Z "/dev/dvd=work.iso"
オンザフライで焼くこともできます。その参考例はこのページにあります。
片面DVD1枚に焼ける容量
(2008-04-22修正)
ここ↓を読んで下さい。
DVDの容量について -OKWave
確かにLinuxのライティングソフトはセクタ数でチェックしてますね。
私はエクスプローラで容量を見て、4488Mバイトを展開した4,706,009,088バイトを下回るように心がけています。
DVDに焼く場合に許される1ファイルの最大の大きさ
DVDに焼く場合は1ファイルの最大の大きさが4Gバイト未満という制限があるようです。キリのいい値であることからもわかるようにこちらは論理上の制限なので厳密なものです。4Gバイトは4096Mバイトです。Windowsではエクスプローラのプロパティで3.99 GBと表示されれば大丈夫で、4.00 GBと表示されれば大きすぎでアウトです。
(2008-12-30追記)Windows XPで読めなくてもいいならこの方法を使う手もあります。
One CD Linuxによっては手順のここが違う
利用したOne CD Linuxの元々のCDの中で、「isolinux.bin」というファイルが標準の、直下のisolinuxというディレクトリの中にない場合は、上のmkisofsコマンドの引数を修正しなければなりません。
例えばKNOPPIXの場合、「isolinux.bin」はisolinuxではなくboot/isolinuxにあります。
-b boot/isolinux/isolinux.bin
と、しなければなりません。でも上のUbuntuの場合との違いはそれだけです。
KNOPPIXやUbuntuは容量が大きいので、DVD-(+)R(RW)の中でリカバリー用のデータの格納に使える容量が少なくなってしまいます。本来はもっと元々の容量の小さいOne CD Linuxを利用した方がいいでしょう。
(2008-1-17追加) たとえばslax-ja 200Mバイトくらいです。
ただし、SLAX6 Release Candidate 7は私の環境ではxorg.confの生成に問題があって、DefaultDepthを手動で追加して対応する必要がありました。
作業環境にLinuxを必要とする理由
どのOne CD Linuxを利用してもLinux環境が必要なわけではありません。でも一部のOne CD Linuxは作成環境がシンボリックリンクのあるファイルシステムが使えるOS上であることが必須となっています。
上記作業が少し面倒だと感じるとか、バックアップデータが大きくてDVD-(+)R(RW)にOne CD Linuxの中身と一緒に納めることが出来ない場合は、妥当な代替手段として、「USBメモリにインストールしたSATA対応のOne CD Linux(つまりUSBブートLinux)と(ブートしないorさせない)レストアDVDの組み合わせ」でレストアをおこなう手法がおすすめです。
LinuxのUSBブートに関する情報ならこちら→ Linux各ディストリビューションのUSBブート・対応状況
最近のメジャーなOne CD Linux(KNOPPIX, Ubuntu, Berry Linux)はSATAに対応しています。また、One CD Linuxの多くは、USBメモリにインストールしてUSBブート化できます。具体的にはOne CD Linuxの中身とsyslinuxもしくはgrubを適切にUSBメモリにインストールすればUSBブート化できます。(2008-1-9追加) Fedora 8 Live CDもUSBデバイスにインストールできますが、上の3種と違い、rootデバイスの自動探索機能がありません。ブートローダ(大抵syslinuxもしくはgrub)のカーネルに渡す引数で、rootデバイスをきちんと指定する必要があります。rootデバイスの指定には、/dev/sda5などのデバイス名に加えて(ボリューム)ラベル(root=LABEL=*),さらにext3などの場合はUUID(root=UUID=*)が使えます。下にsyslinux.cfgでの例を挙げます
append initrd=initrd0.img root=LABEL=USBMEMORY rootfstype=auto ro quiet liveimg rhgb
(2007-7-29追加) Berry Linux、Ubuntu日本語ローカライズ版にはUSBのデバイスへのインストール用スクリプトが添付されています。
One CD LinuxのUSBブート化については、このページが役立つと思います。Berry LinuxをUSBメモリにインストール ←元は私が2005年6月と2006年11月に書いたものです。但し自由に編集できる所にあるのでご覧頂いた時点で私が書いた内容が残っているかは定かではありません。多分もうBerry Linuxデフォルト添付のUSBデバイスへのインストールスクリプトのバグは直っているでしょう。私は手動で作業してしまうので試していませんが