几乎所有教程都会告诉您,要在命令行上克隆磁盘(例如,将 /dev/sda 克隆到 /dev/sdb),您可以使用:
dd if=/dev/sda of=/dev/sdb ...and some block size options...
这会读取 /dev/sda 的内容并将其写入 /dev/sdb。
为什么我们不能简单地使用cat < /dev/sda > /dev/sdb
?
答案1
cat 的选项比 dd 少。使用 dd,您可以指定用于复制数据的块大小、块的数量并对它们应用一些转换,如 ucase、lcase、ascii、ebcdic,... dd 还有一个 noerror 转换标志,允许继续即使出现一些错误也可以复制。这里:https://stackoverflow.com/a/150989/3747381您对它们的相对效率有评论。您还可以阅读此评论:https://stackoverflow.com/a/151081/3747381
答案2
当然你可以使用cat或cp。但 dd 有更多选项,例如仅备份/恢复引导扇区或从 /dev/random 复制有限数量的随机数据。
维基百科对不同用例有更详细的描述。