Backup

dd:將備份還原到完全相同的磁碟時“沒有剩餘空間”

  • February 11, 2020

不久前,我使用備份了整個磁碟

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)

如果這是正確的,那麼你在這裡可能沒問題。

引用自:https://unix.stackexchange.com/questions/566983