我有两个大小相同的硬盘 - 分别表示为 /dev/sda 和 /dev/sdb。我试图将 /dev/sda 复制到 /dev/sdb。/dev/sda 有一个 ext3 分区。/dev/sda 和 /dev/sdb 具有相同的分区布局。我所做的是使用以下命令:
dd if=/dev/sda of=/dev/sdb
当我在 /dev/sdb 上安装文件系统时,我发现并非所有更改都反映在设备上。换句话说,磁盘不一样。所以它失败了。我似乎不知道为什么。这会破坏 /dev/sdb 上的分区表吗?这是克隆磁盘的正确方法吗?
好吧,在开始克隆之前,我不会卸载 /dev/sda 上的文件系统。但我绝对确定在克隆过程中没有人在上面写入内容。
答案1
为了克隆磁盘,您绝对应该卸载所有分区。所有现代桌面操作系统都有许多服务在后台运行,这些服务会写入操作系统分区,并且可能还会出于某种原因定期写入其他已安装的分区(甚至是其他磁盘上的分区)。写入可能很小而且很少,但任何写入(尤其是涉及文件系统元数据的写入)都会破坏您的克隆。
通常情况下,通过启动 Linux实时 CD/DVD/USB 钥匙(选择你喜欢的任何发行版,对于这种事情我更喜欢 Mint)。这样你的硬盘就可以保持未安装状态。
您在此处获得的命令将正常工作,但就目前情况而言,如果出于任何原因无法读取某个扇区,dd
它将停止。您可能想要这种行为,或者您可能希望它继续......由您决定。Arch 有优秀的文档关于磁盘克隆,他们推荐如下方法:
# dd if=/dev/sdX of=/dev/sdY bs=512 conv=noerror,sync
但请阅读文档,尤其是有关调整bs
到更高值的内容,因为这会对克隆速度产生重大影响。如果您想dd
在遇到错误时停止,请删除该conv=noerror,sync
部分。