在 UEFI 系统上双启动 Ubuntu 和 Windows 7

在 UEFI 系统上双启动 Ubuntu 和 Windows 7

我正在尝试在已安装 Windows 7 的 UEFI 系统上安装 Ubuntu 14.04 LTS。Windows 安装在第一个 SATA 磁盘 (sda) 上。我想在第二个 SATA 磁盘 (sdb) 上安装 Ubuntu,该磁盘目前是空的。

我对 UEFI 启动的工作原理有相当好的了解。我设想我需要做以下事情:

  • 使用“其他”安装类型手动对第二个磁盘进行分区,为 /boot (sdb1) 创建一个 ~250MB 的 ext2 分区,并将磁盘的其余部分作为 LVM PV 分区 (sdb2)。然后创建根和交换 LV。
  • 将 EFI 分区挂载到第一个磁盘(sda1)上的 /boot/efi 下,以便安装程序可以将 Ubuntu UEFI 加载器文件与 Windows 文件放在一起。

但我遇到了两个问题。

  1. 当我尝试对第二个磁盘进行分区时,无法创建 LVM PV 分区。该类型未列在“用作:”下拉菜单中。
  2. 似乎没有任何方法可以从 /boot/efi 下的第一个磁盘(sda1)挂载 EFI 分区。

还有其他人知道如何解决这些问题吗?

谢谢。

答案1

就我个人而言,当我想使用 LVM 时,我会先使用其他工具进行设置 - 无论是命令行程序(、、、gdisk等)还是 GUI 前端(如)。然后,Ubuntu 安装程序将看到我已经创建的卷组和逻辑卷,并允许我使用它们。pvcreatevgcreatelvcreatesystem-config-lvm

至于 ESP,Ubuntu 安装程序不允许您明确设置挂载点。如果您确保它被识别为“EFI 启动分区”(我思考如果你患有先天性心脏病(也就是所谓的 ESP),那么你应该没事。

答案2

在阅读Rod的回答之前,我决定尝试反过来安装Ubuntu和Windows 7,也就是说,在第一个硬盘上安装Ubuntu,然后在第二个磁盘上安装Windows 7。

在常规 Ubuntu 安装(使用 LVM)之后,Windows 7 安装完全没有问题。它正确地将自己的启动项添加到 UEFI,而不会破坏现有的 Ubuntu 启动项,并在第一个磁盘的 EFI 系统分区中与 Ubuntu 文件一起安装了自己的启动管理器文件。

UEFI 启动项:

# efibootmgr -v
BootCurrent: 0000
Timeout: 2 seconds
BootOrder: 0001,0000
Boot0000* Ubuntu    HD(1,800,100000,55d903f0-7682-45e4-8743-4c50681b2e87)File(\EFI\ubuntu\shimx64.efi)
Boot0001* Windows Boot Manager  HD(1,800,100000,55d903f0-7682-45e4-8743-4c50681b2e87)File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...a................

ESP内容:

# find /boot/efi -name \*.efi
/boot/efi/EFI/ubuntu/shimx64.efi
/boot/efi/EFI/ubuntu/grubx64.efi
/boot/efi/EFI/ubuntu/MokManager.efi
/boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
/boot/efi/EFI/Microsoft/Boot/bootmgr.efi
/boot/efi/EFI/Microsoft/Boot/memtest.efi
/boot/efi/EFI/Boot/bootx64.efi

相关内容