我希望克隆一个大磁盘(500GB SSD,就其价值而言),并且我倾向于使用cat
,正如 Gilles 所建议的这里。但让我犹豫的是,我真的不知道cat
读取错误时会发生什么。我知道dd
在这些情况下的表现,IE命令
dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync status=progress
不会因读取错误而停止,并用零填充读取错误(sync
选项),以便数据保持同步。不幸的是,它是通过填充零来实现的在最后写入的块的大小,因此早期 512 字节读取中的单个错误会弄乱整个 64K 数据(对于更大、更快的块大小,情况更糟)。
所以我想知道:我可以做得更好/不同吗cat
?或者我应该继续克隆属?
答案1
cat
如果遇到读或写错误,则停止。
如果您担心源驱动器上可能存在无法读取的扇区,您应该查看诸如ddrescue
。
答案2
如果没有坏扇区或难以读取的扇区,
我会推荐克隆属。它更安全,因为有检查站(如果您想继续,请询问)
cat
并dd
假设ddrescue
您确切知道要做什么,并且在按 Enter 键之前仔细检查。 “即使你告诉他们擦掉全家福,他们也会毫无疑问地按照你的吩咐去做。”
此外,Clonezilla 足够聪明,可以只复制已使用的块(并跳过空闲块),这使得克隆速度更快。
如果您预计扇区很差或难以读取,
我同意@StevenKitt 的观点,这ddrescue
是一个很好的工具。信息页面包含一个很好的教程,
info ddrescue