少し前に、を使用してディスク全体のバックアップを作成しました
dd if=/dev/nvme0n1 conv=sync,noerror bs=64K | gzip -c > backup.img.gz
今日、私はこのバックアップを使用して同じディスクに復元しました
gunzip -c backup.img.gz | dd of=/dev/nvme0n1
dd
は、次のエラーメッセージで終了しました。
dd: writing to '/dev/nvme0n1': No space left on device
1000215217+0 records in
1000215216+0 records out
512110190592 bytes (512 GB, 477 GiB) copied, 5769.06 s, 88.8 MB/s
復元プロセスが失敗したと想定する必要がありますか?もしそうなら、私は私のディスクを復元するために何ができますか?
fdisk -l /dev/nvme0n1
のバックアップもあり、復元操作後のfdisk -l
の出力は以前と同じですが、それが成功を保証するものかどうかはわかりません。
dd conv=sync,noerror
(またはdd conv=noerror,sync
) 場合によってはデータを破損するため 。
ただし、あなたの場合は、おそらくファイルの終わりにある余剰ゼロです。デバイスが64Kの正確な倍数でない場合、dd
コマンドは画像ファイルの最後の64Kブロックをゼロで埋めていたでしょう。そして、それらの追加のゼロは復元できません。これは無害です。
その理論を検証するために、いくつかのコマンドを実行できます。
# blockdev --getsize64 /dev/nvme0n1
expected result: 512110190592
# gunzip < backup.img.gz | wc --bytes
expected result: 512110231552 (next multiple of 64K)
それが正しければ、おそらくここで大丈夫です。
圧縮されたストリームをdd
に書き込むと、データが失われる可能性がある場合があります。これを試して
zcat backup.img.gz >/dev/nvme0n1
または、dd
を使用する必要がある場合は、代わりにこのパイプラインを使用してください
gunzip -c backup.img.gz | dd iflag=fullblock bs=64K of=/dev/nvme0n1
これらの両方が失敗した場合、交換用ディスクは元のディスクよりも小さいと言えます。