質問: linuxコマンドddとdumpの違いを教えてください。 OSすべてをバックアップしたいのでできればそういう見方でのご回答をいただければと思っています。
回答: OS全てをバックアップする場合には dump を使いましょう。 dumpを使えば正常な全ファイルをバックアップできますし、同じファイルシステムに(サイズが違っても)リストアできます。 例えば、ファイルシステムの大きさ100GB 使用量20GB のファイルシステムなら正常な全てのファイルをコピーするdumpなら20GBを少し越える量を扱いますが dd の場合は 100GBそのままコピーします。 バックアップ元のファイルシステムに幾つか破損セクタがあったとすると、dump使えばリストアしたハードディスクに以前の破損セクタは反映されませんが dd 使えば壊れてないセクタに破損マークが入って正常な部分を除いて使います。 ※ 少し減ったって影響は少ないでしょう。 リストア先のハードディスクに破損セクタがあった場合には、dd使えばその部分は多分壊れますが、dumpだとformatしてnewfsしてあるところに入れるので(破損部分使わない様に処理されている)正常な所のみにファイルを戻せます。 他にも、100GB確保しているけど20GBしか使ってないので新しい方は80GB確保して使おうとした時dumpなら問題なくできますがddだと不安があります。 ddの場合、ハードディスクの諸元が違うと何かの時に問題が起こる場合があります。 ※ fdiskでシリンダ境界で整合させようとされた時に壊れるとか。(dd使って手動で治した事があります。すぐにメディアコンバートしました。昔の事なので今は起こらないよう変わっているかも知れないしそのままかも知れない) ddはセクタ単位でデバイス内の全てをそのままコピーします。 指定するデバイスに依ってはハードディスク全体(パーティションを越えて入っているデータ全体[MBR PBR Windows Linux ...])をコピーしたりパーティション全体(PBR含めて)コピーしたりできます。といっても、MBR や PBR は別途正規の手順で処理する方が確実なのですが。 今はやりませんが(dumpにネットワークを越える機能が追加されているから)、ddはdumpやtar と組み合わせて使われる事がありました。 tar cf - -C /backup/dir | rsh tapehost dd of=/dev/tape bs=10240 rsh tapehost dd if=/dev/tape | tar xf - -C /restore/dir ※ ddでも同様に標準入出力を使って行えます。 dd 使う場合にはセクタの使われ方をしっかり把握している必要があります。 前回答者が紹介されていたページに MBR のバックアップに使う方法が書かれていましたが、拡張された多機能なMBRソフトには複数セクタにわたって配置されているソフトもありますし、しっかり知ってないとバックアップ取っている積もりでも取れてないという危険もあります。