Dd
使用 cat 複製磁碟時出錯
我希望複製一個大磁碟(一個 500GB SSD,物有所值),並且我傾向於使用
cat
Gilles 建議的. 但是讓我猶豫的是,我真的不知道cat
讀取錯誤時會發生什麼。我知道dd
在這些情況下的行為方式,即命令dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync status=progress
不會因讀取錯誤而停止,並用零填充讀取錯誤(
sync
選項),以便數據保持同步。不幸的是,它是通過在要寫入的塊末尾填充零來實現的,因此早期 512 字節讀取中的單個錯誤會弄亂整個 64K 數據(對於更大、更快的塊大小更糟)。所以我想知道:我可以做得更好/不同
cat
嗎?還是我應該繼續使用Clonezilla?
cat
如果遇到讀取或寫入錯誤,則停止。如果您擔心源驅動器上可能存在無法讀取的扇區,您應該查看諸如
ddrescue
.
如果沒有壞的或難以讀取的扇區,
我會推薦Clonezilla。它更安全,因為有檢查點(如果您想繼續,請提出問題)
cat
並假設您確切知道要做什麼,並且在按 Enter 鍵之前仔細檢查過dd
。ddrescue
“他們會毫無疑問地按照你告訴他們的去做,即使你告訴他們擦掉家庭照片。”此外,Clonezilla 足夠聰明,只複製使用過的塊(並跳過空閒塊),這使得複製速度更快。
如果您認為扇區不好或難以閱讀,
我同意@StevenKitt,這
ddrescue
是一個很好的工具。資訊頁麵包含一個很好的教程,info ddrescue