安装一个硬盘后,Grub2指向错误的硬盘

我有一个安装了两个SATA硬盘的桌面。 在一个我有Windows,另一个我有Ubuntu 12.04。 一切正常。 现在,我想再安装一个硬盘。 这是一个IDE驱动器。 安装IDE驱动器后,Grub不再指向正确的硬盘驱动器,也找不到启动目录,因此我最终进行了grub救援。 在我的grub.cfg中,Ubuntu安装在hd1上。 似乎新的IDE驱动器变成了hd0。 这是否意味着我的Ubuntu(和启动目录)现在位于hd2(和hd1上的Windows)? 如果是这样,我如何在Grub中更改它以便指向正确的硬盘? 可以从grub救援提示中完成吗? 我可以在没有安装IDE驱动器的情况下启动,编辑grub.cfg,撕掉计算机,连接IDE驱动器并启动吗? 如果我在这里出错,我可以从live CD编辑grub.cfg吗? 或者有更好的方法吗?

Grub命令行有一些命令可以帮助您调试此问题。 在这里查看它们的列表: http : //www.gnu.org/software/grub/manual/html_node/Command_002dline-and-menu-entry-commands.html
在您的情况下,您必须识别驱动器和Grub文件所在的分区 。 尝试ls命令。 请记住,Grub中的分区命名约定是不同的。 例如,将调用第一个驱动器的第二个分区(hd0,1) (驱动器和分区从零开始计数)。 使用上述链接检查ls命令帮助中的“设备语法”部分。
只要您确切知道/boot/grub文件夹的位置,您就可以尝试使用下一个命令启动系统(我使用前面的驱动器1示例,分区2 – 正确更改它们)

 grub> set root=(hd0,1) grub> set prefix=(hd0,1)/boot/grub grub> insmod normal grub> normal 

现在你的系统应该正常启动。 从终端登录并恢复引导加载程序:

 sudo update-grub sudo grub-install /dev/sda 

(为GNU / Linux安装所在的驱动器使用适当的/ dev / sdX名称)。

您必须在现在正在引导的IDE磁盘上安装旧的,损坏的grub,而不是原始磁盘上的那个。如果您告诉BIOS从该驱动器而不是IDE驱动器启动,它仍然可以正常工作。

由于DOS / Windows无法从任何其他驱动器启动,因此BIOS总是将(hd0)分配给它尝试启动的任何驱动器。