添加新的Win7驱动器并安装11.04后无法访问Grub

TL:DR就是我有一个工作的双启动。 然后我添加了一个带Win7的新驱动器。 哪个工作正常并满足我的大部分需求,但我现在无法进入Linux。 我想在没有弄乱我的Win7 MBR的情况下进入Linux(例如在linux驱动器上安装grub并更改BIOS启动顺序或使用Windows启动加载程序来获取grub)。

我使用11.04安装(超过现有的10.04可能是一个错误)。 我仍然可以进入Win7(所以行为没有变化)但仍然无法进入grub / ubuntu。

这可能是一个错误的地方,要求解开它是一个混乱的问题,而不是一个简单的问题与答案,但我想我会试试运气。

有关详细信息,请继续阅读……

背景。

最初2 – 硬盘:

  • 320GB – Vista(先安装)
  • 160GB – Linux(10.04随着时间的推移从8.04升级) – 包括一个小的交换分区

用于启动Grub以选择Windows或Linux。

我添加了一个新驱动器(SSD)并在其上安装了Windows 7。 我在让BIOS识别要从中启动的驱动器时遇到了一些麻烦,因此交换了一些SATA电缆,这可能导致我后来的问题。

我现在可以启动Windows 7了,但Linux现在无法访问。 我首先将EasyBCD安装到Windows并试图自动识别Linux,这似乎不起作用(不幸的是不记得细节)。

然后我使用11.04 LiveCD并尝试升级10.04安装(这是一个选项)。 接近结束时,我遇到了许多错误,这些错误似乎与从grub到grub 2的变化有关(因为我的10.04已从最初的7或8升级)。

我已经尝试在安装过程中格式化Linux驱动器并在其位置安装11.04,这似乎现在成功了,但是仍然无法成功启动到Linux。 我还执行了从LiveCD指令复制GRUB 2文件到需要重新启动的步骤。 然而,我然后到达grub提示符,无法看到如何执行“ 使用sudo update-grub刷新GRUB 2菜单 ”步骤。 此时输入sudo update-grub无法识别。

现在的情况。

我可以从BIOS中选择启动3个驱动器中的任何一个,或者从LiveCD启动。

  1. 从新的120GB驱动器启动。 Windows BCP显示。
    • 1A。 选择Windows 7 – 成功启动到Windows
    • 1B。 选择Grub 2(基于EasyBCD自动检测) – 给出EXT2错误(见图)
    • 1C。 选择Grub(根据原始Grub设置在EasyBCD上配置) – 进入Grub救援提示(见图)
  2. 从原始320GB Windows启动 – 无启动菜单,直接加载到Vista
  3. 从Linux 160GB驱动器启动。 结束于Grub救援提示(见图)

我宁愿不从Linux安装中更改Windows 7 MBR,因为它现在是我的主要工作环境。 相反,我宁愿在Linux驱动器上安装Grub,然后在BIOS启动顺序中给它优先级。 一旦我成功启动Linux,那么我将接受其他更改。 任何帮助让Grub在Linux驱动器上运行(假装新的Windows 7磁盘不存在)的帮助将不胜感激

细节

输出fdisk -l

Disk /dev/sda: 160.0 GB, 160041885696 bytes 255 heads, 63 sectors/track, 19457 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x2889808c Device Boot Start End Blocks Id System /dev/sda1 * 1 18662 149902483+ 83 Linux /dev/sda2 18663 19457 6385807 f W95 Ext'd (LBA) /dev/sda5 18663 19457 6385806 82 Linux swap / Solaris Disk /dev/sdb: 320.1 GB, 320072933376 bytes 255 heads, 63 sectors/track, 38913 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xfeffeeaa Device Boot Start End Blocks Id System /dev/sdb1 * 1 38914 312568832 7 HPFS/NTFS Disk /dev/sdc: 120.0 GB, 120034123776 bytes 255 heads, 63 sectors/track, 14593 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x13944bce Device Boot Start End Blocks Id System /dev/sdc1 * 1 13 102400 7 HPFS/NTFS Partition 1 does not end on cylinder boundary. /dev/sdc2 13 14594 117115904 7 HPFS/NTFS 

好的,我已经取得了进展,并且有相当多的方式。

我按照https://help.ubuntu.com/community/RecoveringUbuntuAfterInstallingWindows上的步骤进行操作

使用mount专门找到我的UUID然后执行以下操作:

 sudo grub-install --boot-directory=/media//boot /dev/sda 

我以为我已经这样做了,但也许不是。

现在在BIOS中设置我的启动驱动器,因为Linux驱动器显示启动加载程序并允许我启动到Ubuntu 11.04。 下一步是查看Grub是否也成功启动Windows,同样如果我可以配置Windows启动加载程序以查看Ubuntu。

UPDATE

  • Grub没有看到Windows,因此会考虑添加该条目。
  • Windows BCP Grub2自动配置的条目仍然具有相同的错误。 然而,错误后的grub1选项然后启动grub,我可以从那里启动

从11.04-Live-CD启动。 开始gparted。 删除非SSD磁盘上的所有分区。 取消设置SSD-Drive的引导标志。 然后安装11.04。 如果您的磁盘现在被重新识别,应该可以工作。 您还应检查HDD上的物理主/从引脚是否设置正确。