私はパーティション全体またはハードドライブ全体を大きな外付けディスクに複製するのが好きですが、スパースファイルを作成するのが好きです。複製時に頻繁に使用されますが、dd
スパースファイルはサポートされていません。解決策として、次のようなものを使用しました。
cp --sparse=always <(dd if=/dev/sda1 bs=8M) /mount/external/backup/sda1.raw
しかし、これは私にとってあまりにも難しく、中断されたプロセスを再開することはできません。興味深いことに、これを行うNTFS用のツール(ntfsclone
)がありますが、Linuxの基本ファイルシステム(EXT2-4)用にはそのようなツールはありません。
dd
サポートが不足しているバリエーションのようなより良いツールはありますか?ディスクバックアップ用の独自のソフトウェアを探す代わりに、必要に応じてループデバイスとしてインストールできる希薄な複製コピーを作成したいと思います。
答え1
欲しいdd_rescue
。
dd_rescue -a -b 8M /dev/sda1 /mount/external/backup/sda1.raw
複製はいつでも中断され、Ctrl-C現在の場所を表示できます。この値は、-s
元のコマンドと場所を追加して再起動するときに使用できます。
dd_rescue -a -b 8M -s 42000k /dev/sda1 /mount/external/backup/sda1.raw
ログファイルとして機能する3番目のファイル名を指定する方が簡単です。再起動すると、dd_rescue
このログファイルが読み込まれ、中断された部分から再起動されます。
答え2
完全性を求めてください。救う。--sparse
or フラグは、-S
ターゲットへのリーンな書き込みを許可します。
$ ddrescue -S -b8M /dev/sda1 /mount/external/backup/sda1.raw
または、長いオプションを使用してください。
$ ddrescue --sparse --block-size 8M /dev/sda1 /mount/external/backup/sda1.raw
またはあなたが好むならミップ:
$ ddrescue -S -b8Mi /dev/sda1 /mount/external/backup/sda1.raw
中断および回復 回復を許可するには、ログファイルを使用することもできます。
$ ddrescue -S -b8Mi /dev/sda1 /mount/external/backup/sda1.raw ~/sda1.rescue.log
GNUddrescue
とGNUはdd_rescue
別のプログラムです。しかし、GNUはddrescue
より広範に見えます。たとえば、梱包されています。GRML。
答え3
一つあるパッチ提供Sparseファイルのサポートは2007年のGNU ddで可能でしたが、まだcoreutilsには含まれていないようです(少なくとも8.4では含まれていません)。私はそれ以来、ddがあまりにも変更されているので、多くの作業がなくてもパッチが現在のバージョンで動作できると思います。
また、あなたの質問を創造的に使用することに感銘を受けましたcp
。これにより、復元を完了するために使用できるようになりました(ここでは〜80Mからソースに復元されます)。
cp --sparse=always \
<(dd if=/dev/sda1 bs=8M skip=10) /dev/stdout \
| dd bs=8M seek=10 of=/mount/external/backup/sda1.raw
編集:最初から始めます。 2つ目はdd
もちろん、長さが入力の長さと異なるため、出力ファイル内の誤った場所を見つけることです。
答え4
2セントを追加するだけです。生ディスクからスパースファイルを生成する別の方法は次のとおりです。qemu-img次のようなものを使用してください。
qemu-img convert -f raw /dev/sda /tmp/sda.raw
単一パーティションでも使用できます。また、rawディスク/パーティションをqemu-imgでサポートされている他の形式(QCOW2、VHD [x]、vmdkなど)に変換することもできます。