磁盘克隆后GRUB Rescue

我需要一位GRUB专家的帮助。

我刚刚将一个1 TB的希捷硬盘克隆到一台全新的2 TB Hitachi上,在交换它们之前,我决定对其进行启动测试。 它通过SATA 2转USB适配器连接到我的电脑。 25小时的克隆操作似乎运作良好; 我用dd管道通过pv。

但是,当我启动时,我现在从GRUB2收到一条消息,说没有找到分区; 然后被倾倒到grub救援提示。

ls给了我一个hd0上的单分区驱动器(不知道这是什么,可能是一个拇指驱动器),hd1上的一系列分区,以及hd2上的单分区(再次,不知道这是什么)。 (hd1,msdos10)似乎是一个不可引导的分区,我一直存在; 其他大多数(在ext文件系统上的那些)都被识别。 我找到了我的Ubuntu Trusty Tahr root(hd1,msdos5)。 但是,即使在“set root =(hd1,msdos5)”之后,所有insmod(“insmod normal”)和(“insmod linux”)的尝试都会返回“Partition not found”。

我猜我的新驱动器的MBR与克隆到它上面的分区无关。 我不确定的是如何解决这个问题。 同样,目标驱动器安装在外部(即使它最终是内部驱动器); 我可以启动到LiveUSB或hda,但不是。 它有一个Windows 7分区,Ubuntu 14.04,以及一系列附加分区,包括Windows恢复/修复/ Whatever-They’re-Calling-It,我的额外分区,我的家庭分区,交换,可能是一个或者另外两个人喜欢临时。

在最坏的情况下,我想我可以重新安装所有的Ubuntu 14.04,但这需要更多的时间来通过回购来获取我所有的旧东西。 我确信这很简单,但除非绝对必要,否则MBR并不是我所要解决的问题,特别是当我不知道自己在做什么时,这是一个潜在的25小时修复!

GRUB引用的终端输出:

ls > (hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1) (hd1) (hd1,msdos11) (hd1,msdos10) (hd1,msdos9) (hd1,msdos8) (hd1,msdos7) (hd1,msdos6) (hd1,msdos5) (hd1,msdos3) (hd1,msdos2) (hd1,msdos1) (hd2) (hd2,msdos1) ls (hd0,1) > Filesystem is unknown ls (hd0,msdos1) > Filesystem is unknown set root=(hd1,msdos5) insmod normal > Partition not found ... 

听起来好像新驱动器没有正确的分区 – 如果你只看到一个。 您是否通过了dd命令’/ dev / sdn’或’/ dev’sdn1’来编写?我认为您现在的首要任务是删除新驱动器,看看是否需要撤消MBR’修复’ – 如果所以,有几个问题,这里有这样的答案。

一旦你有了一个工作系统,你就会得到“如何做到这一点”:

备份很好 – 你可能现在不需要提醒:)

我会从现场CD启动开始,对于初学者来说,因为实时系统可能会在写入时发生变化 – 事实上几乎肯定会。

首先,检查旧驱动器(源)的位置,然后插入新驱动器,检查它的位置,因为驱动器名称可能会有所不同 – dmesg | tail dmesg | tailmount会做(但是mount,只有当文件系统识别它时 – 我怀疑你现在才会这样做),或fdisk -l但需要注意使它们正确。 这是至关重要的一点!

一旦你知道哪个是哪个,你就可以复制; dd if=/dev/sdx of=/dev/sdy – 注意你不要使用分区号。

你可以使用pv但恕我直言,如果你遇到麻烦,这会使事情变得复杂,你已经知道它需要很长时间。 如果直接插入驱动器,它将会更快。

你应该最终得到2个相同的驱动器,其中一个具有50%的未分配空间。 断开新的连接,重启以确保一切正常。 这在技术上是不必要的,但我会……

关闭,插入新驱动器 – 如果您愿意,可以直接或再次使用USB设备。 重启。 如果它无法启动,您的PC正在为新驱动器分配/ dev / sda,因此使用USB可能是一个很好的计划。

在此阶段,您可以使用gparted扩大现有分区,或使用fdisk添加新分区。 完成后,您可以交换驱动器并尝试启动; 您可能需要回到顶部并尝试我修复引导的链接,具体取决于您更改的内容。