简而言之,我有一个可以正常工作的双启动。然后我添加了一个装有 Win7 的新驱动器。它运行良好,可以满足我的大部分需求,但我现在无法访问 Linux。我想在不弄乱我的 Win7 MBR 的情况下访问 Linux(例如在 Linux 驱动器上安装 grub 并更改 BIOS 启动顺序或使用 Windows 引导加载程序访问 grub)。
我使用 11.04 进行安装(覆盖了现有的 10.04,这可能是一个错误)。我仍然可以进入 Win7(因此行为没有变化),但仍然无法进入 grub / ubuntu。
这可能是错误的地方,因为这是一个难以解决的混乱问题,而不是一个简单的问题和答案,但我想试试运气。
欲了解更多详情,请继续阅读...
背景。
最初有 2 个硬盘:
- 320GB - Vista(先安装)
- 160GB - Linux(从 8.04 升级到 10.04)- 包括一个小的交换分区
用于启动到 Grub 来选择 Windows 或 Linux。
我添加了一个新驱动器(SSD)并在其上安装了 Windows 7。我在让 BIOS 识别要启动的驱动器时遇到了一些麻烦,因此更换了一些 SATA 电缆,这可能是导致我后来出现问题的原因之一。
我现在可以正常启动 Windows 7,但 Linux 却无法访问。我首先在 Windows 上安装了 EasyBCD,并尝试自动识别 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 启动。
- 从新的 120GB 驱动器启动。显示 Windows BCP。
- 1a. 选择 Windows 7 - 成功启动到 Windows
- 1b. 选择 Grub 2(基于 EasyBCD 自动检测)-出现 EXT2 错误(见图)
- 1c. 选择 Grub(根据原始 Grub 设置在 EasyBCD 上配置)-进入 Grub 救援提示(见图)
- 从原始 320GB Windows 启动 - 无启动菜单,直接加载到 Vista
- 从 Linux 160GB 驱动器启动。 最终出现 Grub 救援提示(见图)
鉴于 Linux 是我现在的主要工作环境,我宁愿不更改 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
答案1
好的,我已经取得了进步,并且已经走了相当远的路。
我已按照以下步骤操作https://help.ubuntu.com/community/RecoveringUbuntuAfterInstallingWindows
具体来说,使用以下方法查找我的 UUID mount
,然后执行以下操作:
sudo grub-install --boot-directory=/media/<my UUID>/boot /dev/sda
我以为我已经这样做了,但也许没有。
现在在 BIOS 中设置我的启动驱动器,因为 Linux 驱动器显示启动加载程序并允许我启动到 Ubuntu 11.04。下一步是查看 Grub 是否也能成功启动 Windows,同样,我是否可以配置 Windows 启动加载程序以查看 Ubuntu。
更新
- Grub 看不到 Windows,因此将考虑添加该条目。
- Windows BCP Grub2 自动配置条目仍然有相同的错误。但是,错误发生后 grub1 选项会启动 grub,我可以从那里继续启动
答案2
从 11.04-Live-CD 启动。启动 gparted。删除非 SSD 磁盘上的所有分区。取消设置 SSD 驱动器的启动标志。然后安装 11.04。如果您的磁盘现在被重新识别,则应该可以工作。您还应该检查 HDD 上的物理主/从引脚是否设置正确。