双启动 Windows 8 和 Ubuntu 12.04

双启动 Windows 8 和 Ubuntu 12.04

我最近购买了一台预装了 Windows 8 的 Dell Inspiron 3521。然后我在上面安装了 Ubuntu 12.04.2。目前这两个操作系统运行良好,但问题是我必须在启动时手动进入 BIOS,并在 Legacy 和 UEFI 模式之间切换,才能分别启动到 Ubuntu 和 Windows。有没有办法让 GRUB 在启动时询问我想要启动哪个操作系统?

如果它很重要,下面是我安装 Ubuntu 的步骤 -

  • 我缩小了 Windows 分区,然后禁用了安全启动并切换到传统模式。
  • 从 Live CD 安装 Ubuntu 时,它没有检测到我的系统已经安装了 Windows 8。
  • 我选择在安装过程中手动分配分区为 /、/home、swap、/boot。
  • 它还告诉我需要有一个保留的 BIOS 设置分区,所以我让它创建该分区。

任何帮助将非常感激。

答案1

尝试启动修复来重新安装和配置 grub。

启动到 Live CD 桌面并打开终端然后输入

sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update

等待它完成然后输入

sudo apt-get install -y boot-repair && (boot-repair &)

现在您可以从 dash 启动并按照说明进行操作。

以下是详细文档的链接https://help.ubuntu.com/community/Boot-Repair

答案2

如果安装程序要求 bios_grub 分区,则您是在 BIOS/Legacy/cSM 模式下安装的,而不是 UEFI。您启动安装程序的方式就是安装程序的安装方式。并且,只有当您在安装程序上看到 grub 菜单时,您才在 UEFI 模式下启动。

Boot-Repair 简化了 BIOS 修复。如果没有它,您要么重新安装,要么 chroot 到您的安装并卸载 grub-pc,然后安装 grub-efi 并编辑 fstab。Boot-Repair 会自动完成所有这些操作。

此外,Boot-Repair 将添加正确的 Windows 链式加载条目,而 grub2 的 os-prober 不会创建这些条目。os-prober 会创建与 UEFI 不兼容的旧 BIOS 条目。修复程序刚刚发布,但除了 13.10 之外,没有出现在任何实时安装程序中,但我还没有检查过。

许多 UEFI 已被修改为仅启动 Windows。这时就需要破解或变通。由于 grub2 的 shim 具有 Microsoft 签名密钥,它可以成为 Windows 启动文件(UEFI 认为是真实文件),然后您实际上启动 grub。然后从 grub 菜单链式加载以启动重命名的实际 Windows 文件。对于某些系统,这是启动的唯一方法。但 Boot-Repair 会自动执行重命名,并且对于某些系统来说这不是必需的。

答案3

正如 Mark Kirby 所说,Boot Repair 可能会解决问题;但是,Boot Repair 在所有情况下都会应用某些黑客式的“修复”,有时这可能会导致后续问题。此外,Boot Repair 所做的有时根本不起作用,这会导致进一步的复杂化。就我个人而言,我更喜欢使用更精细的工具进行修复。一种方法是:

  1. 在 Windows 中,下载并安装我的rEFInd 启动管理器。该网页包含 Windows 安装说明。
  2. 为您在 Ubuntu/boot分区上使用的任何文件系统安装 EFI 驱动程序(在 rEFInd 包中)。
  3. 使用传统的启动方法重新启动进入 Ubuntu。
  4. 在 Ubuntu 中,运行mkrlconf.shrEFInd 附带的脚本。(切换到包含脚本的目录,然后输入sudo bash mkrlconf.sh。)

当你在 EFI 模式下重新启动时,rEFInd 应该会出现,它应该能够让你运行 Linux 或 Windows。如果 rEFInd 没有不是重新启动时出现,则很有可能您的固件存在错误,并且可能需要使用 Boot Repair 应用的黑客修复类型。您可以运行 Boot Repair 以使 GRUB 成为默认设置,也可以重新启动进入 Linux(在传统模式下)并使用mvrefind.shrEFInd 附带的脚本使 rEFInd 成为默认设置:

sudo mkdir -p /boot/efi
sudo mount /dev/sda1 /boot/efi
sudo bash /path/to/mvrefind.sh /boot/efi/EFI/refind /boot/efi/EFI/Microsoft/Boot

将第二个命令更改/dev/sdaEFI 系统分区 (ESP)。此分区在 的输出中显示parted为已设置其“启动标志”。同时更改/path/to为所在路径mvrefind.sh

相关内容