克隆有一些错误的 Linux(Ubuntu)启动驱动器

克隆有一些错误的 Linux(Ubuntu)启动驱动器

我有一个 8.04 Mythbuntu 安装,需要将其克隆到另一个磁盘。不幸的是,它所在的磁盘有几个错误,所以当我尝试通常的 dd 时,它会中止

dd if=/dev/sda of=/dev/sdb 

昨晚我发现了 dd 的 conv=sync,noerror 选项(它报告了 2 个错误),但传输完成后磁盘无法启动。我使用 gparted 检查了磁盘(它运行了“e2fsck -f -y -v /dev/sdb1”),几分钟后它报告了一个错误并崩溃了 - 我无法获取错误信息,因为屏幕冻结了。然后我再次尝试仅在启动分区(而不是整个磁盘)上执行该操作,得到了相同的结果。今晚我将再次尝试 dd 并在 gparted 之外检查磁盘,这样我(希望)至少会看到任何错误消息。

但我的问题是: 除了 dd 之外,还有其他方法可以克隆此驱动器(包括保留相同的 UUID)吗? 我不介意逐个文件地复制它(这样我就可以查看是否有任何文件被 dd 看到的错误损坏),但我不确定如何做到这一点并保持其可启动并保持相同的 UUID。我知道我可以从头开始重新安装,但在我完成所有自定义和调整之后,这是最后的手段。

答案1

嗯,克隆损坏的磁盘可能永远不是一个好主意。基本上,您可以将所有文件复制到另一个磁盘,然后尝试重新设置 mbr。您需要保留 UUID 做什么?重新安装应该不难,只要您主要调整了主文件夹(或知道您在主文件夹之外做了哪些更改),并且可能仍然是最干净的解决方案(并且您将获得最新的软件)

答案2

最终的解决方案相对简单(所有 dd 解决方案均不起作用)。

  1. 从 9.04 实时 CD 启动,其中包含我原来的问题驱动器 (/dev/sdf) 和我想要将原始驱动器克隆到的新驱动器 (/dev/sde)。
  2. 为了确保磁盘可启动、已安装 grub 等,我在新磁盘 (sde) 上安装了 Ubuntu 9.04。(可能有更快的方法来实现这一点,但我知道这个方法可以解决问题。)
  3. 将 sdf 挂载为磁盘 1,将 sde 挂载为磁盘 2
  4. 删除了磁盘 2 上新安装的所有文件
  5. 将 sdf 挂载为磁盘 1,将 sde 挂载为磁盘 2
  6. sudo cp -a /media/disk-1/* /media/disk-2(递归复制所有文件并保留属性和权限)
  7. sudo blkid(获取所有磁盘的 UUID 列表。手动将新 (sde) 分区的 UUID 复制到剪贴板)
  8. sudo gedit /boot/grub/menu.lst(现在通过粘贴之前复制的 UUID,将 grub 条目中的 UUID 从 sdf(旧)的 UUID 更改为 sde(新)的 UUID)
  9. 重启后,一切正常!哈利路亚!

答案3

当普通的 dd 失败时,你可以尝试使用dd_rescue相反,因为 dd_rescue 不会因输入文件出现错误而中止。

相关内容