質問: ddコマンドの使い方 こんにちは、 テスト環境のフルバックアップに挑戦しており /dev/hda(テスト環境os)150g(使用10gほど) /dev/sda(コピ先)80g と、容量の異なるふたつのハードディスクがあり /dev/hdaのテスト環境osを /dev/sdaにコピーしたいと考えています。 シングルユーザーモードで、 dd if=/dev/hda of=/dev/sda で試して見たのですが、一時間しても終わらなかったので 強制終了して/dev/sdaの中身を見てみたら いろいろとファイルが 出来上がってはいたのですが、ファイルサイズは小さすぎる気がしました。 コマンドはこれで正しいのでしょうか?
回答: コマンドとして正しいかと言われると微妙です。書式としてはあっていますが、使い方としては間違っています。 ddでボリューム単位のコピーをする場合は、両方のボリュームのサイズが一致していなければ行けません。ご質問の場合ですとコピー元の方が大きいので、仮にコピーが成功したように見えてもそのまま使用し続けるとファイルシステムに深刻な問題が発生します。 パーティションが区切ってあるのでしたら、同一サイズのパーティションをコピー先に作成して、パーティション単位でコピーするのがよいでしょうが、そうなっていなければddでは無理です。ext2/ext3ファイルシステムを使用しているのでしたら、backup/restoreを使います。 ただ、いずれの方法でもパーティション単位でのコピーはmbrのコピーという問題が残ってしまいますので、慣れないうちは同一サイズのhddで丸ごとddでコピーの方が簡単でしょう。 また、ddはオプションでコピー単位を指定しないと512byte単位でちまちまとコピーしますのでgbyteサイズをコピーするには何日もかかってしまうことになります。-bsオプションで128mなど(搭載メモリーサイズによって帰る必要があります)、適当なサイズ単位でコピーさせるようにしましょう。それでも80gなら数時間はかかると思います。