Grub 可以看到 Windows 8,但看不到 Ubuntu 12.10

Grub 可以看到 Windows 8,但看不到 Ubuntu 12.10

GRUB 可以看到 Windows 8,但是看不到 ubuntu 12.10。

直到最近,我还在使用预装 Windows XP 的笔记本电脑。我买了一台装有 Windows 8 的新笔记本电脑(联想 S430),并决定尝试 ubuntu。所以这一切对我来说都很新鲜。

我按照在网上找到的说明对磁盘进行了分区,在一台支持 uefi 的机器上安装了 ubuntu 12.10 和 windows 8。我只能通过 BIOS 进行双启动,并且要从 uefi 切换到 legacy。我不喜欢那样。我想从菜单中选择我的操作系统。所以我读了一些资料,发现 grub 和 boot-pair 可以提供帮助。运行后,我现在可以从 GRUB windows 8 中看到并启动它,但我看不到我的 ubuntu 安装。

我在菜单上看到的选项是:1)Windows UEFI bkpbootmgfw.efi 2)Windows Boot UEFI 加载程序 3)EFI/Lenovo/Boot/bootmgf.efi 4)Windows 8(加载程序)(在/dev/sda4 上)5)系统设置

以下是启动修复的输出: http://paste.ubuntu.com/1583116/

我觉得到处阅读也没什么用。我需要一些好的建议来解决这个问题。我希望这个链接能提供足够的信息,让别人知道我的问题出在哪里。

还有一件事,我不确定我是否正确实施了这一点:在文件末尾(参见链接)建议“请不要忘记让您的 BIOS 在 sda2/EFI/ubuntu/grubx64.efi 文件上启动!”。我在 BIOS 中将 hd0 设置为第一个要启动的设备,认为这是该文件所在的位置。

谢谢

答案1

我通过运行几次启动修复程序成功解决了问题。我不知道为什么需要几次才能解决问题。我遵循了这些说明。 https://help.ubuntu.com/community/UEFI 我很高兴我的 ubuntu 和 windows 8 可以并存。

答案2

您的grub.cfg文件显示 Ubuntu 条目。这是第一个,标记为“Ubuntu”。还有几个不同的 Windows 条目。因此,我的第一个建议是重新启动并再次查看菜单;也许由于大量不同的 Windows 条目,您忽略了列表顶部的 Ubuntu 条目。

如果 Ubuntu 真的不行,那么我不知道如何修复 GRUB——它的配置文件已经变得如此庞大、复杂和微妙,以至于我放弃了修复它们的问题。因此,我的建议是尝试其他方法。有几种选择,最适合您的情况的可能是Fedora 已修补的 GRUB Legacy我的回复。我将描述如何设置 rEFInd:

  1. 启动到 Windows,或者完全启动另一台计算机。
  2. 下载 rEFInd 可启动 CD 或 USB 闪存驱动器映像(链接位于rEFInd 下载页面) 并准备外部启动介质。
  3. 使用您刚刚准备好的 rEFInd 介质进行启动。您需要使用固件的内置启动管理器,它通常通过功能键访问,但具体哪个启动管理器在不同的计算机之间差别很大。
  4. rEFInd 应显示一个适用于 Windows 的选项和至少两个适用于 Linux 的选项。这两个 Linux 选项中的一个将启动 GRUB。另一个将显示名称vmlinuz-{version},其中{version}是版本号。突出显示该vmlinuz-{version}选项。
  5. 按两次 Insert 或 F2。您将看到打开一个文本模式行编辑器,其中显示内核选项。
  6. 添加ro root=/dev/sda7到启动选项并按 Enter。Linux 应该会启动。
  7. 在终端中输入cd /boot/efi/EFI/Microsoft/Boot
  8. 输入sudo mv bootmgfw.efi.bkp bootmgfw.efi。这将撤消引导修复工具对 Microsoft 引导加载程序的重命名,使其恢复为其标准名称。
  9. 下载 rEFInd Debian 包。
  10. 安装 rEFInd Debian 包。双击它可能有效,或者您可以输入sudo dpkg -i refind_0.6.6-1_amd64.deb

此时,当你重新启动 rEFInd应该出现,您应该能够通过选择其选项来启动 Windows,或者通过选择一个vmlinuz-{version}选项来启动 Ubuntu。(您不再需要添加内核选项;通过安装 Debian 软件包,您还配置了 rEFInd 不再需要这样做。)这两种启动方法都不依赖于 GRUB,因此无论其配置问题是什么都变得无关紧要。

需要注意的是:某些 EFI 实现已损坏,无法启动除 Windows 的引导加载程序之外的任何东西。如果您有这样的系统,那么当您重新启动时,Windows 将启动。您可以使用外部 rEFInd 引导介质引导至 Linux 来解决此问题。然后,您可以打开终端并键入sudo mvrefind.sh /boot/efi/EFI/refind /boot/efi/EFI/Microsoft/Boot。这会重命名 Windows 引导加载程序并将 rEFInd 移至其位置(这类似于 Boot Repair 对 GRUB 所做的操作)。不过,如果幸运的话,您不需要这样做。

相关内容