我尝试在硬盘的不同分区上安装 Ubuntu 16.04 和 Linux Mint 18,并挂载另外两个分区/boot
(每个分区一个)。这样做的目的是让这两个系统完全独立,并通过笔记本电脑的 UEFI 启动菜单在它们之间进行选择。我还希望能够让每个引导加载程序都能看到另一个。将来我计划添加另一个发行版。
第一个似乎有问题的是,Ubuntu 和 Mint 的安装程序都询问我在哪里安装引导加载程序,尽管 Ubuntu 的社区文档说:
请注意,在 UEFI 模式安装中,Ubuntu 不会询问您将引导加载程序安装到何处。如果它询问您,或者它抱怨缺少 BIOS 引导分区,则您可能意外地以 BIOS/CSM/传统模式启动。
(我很确定我是在 UEFI 模式下启动的:“启动 CSM”在 UEFI 设置中被禁用,最后安装的系统在 下安装 EFI 系统分区/boot/efi
。)
由于我必须选择在哪里安装引导加载程序,所以我选择将它们安装到相应的/boot
分区。
安装完 Ubuntu 后,它出现在 UEFI 启动菜单中。检查 ESP(EFI 系统分区),我发现/EFI/ubuntu
创建了一个目录。在 的帮助下efibootmgr
,我确定 Ubuntu 的启动文件是\EFI\UBUNTU\SHIMX64.EFI
。(事实上,我第一次尝试安装 Ubuntu 时,我为 ESP 选择了“不使用此分区”,但它还是被使用了。)
后来我安装了 Mint,结果 UEFI 启动菜单中的“ubuntu”项开始启动 Mint 的 GRUB,而不是 Ubuntu 的 GRUB,我发现再也无法启动 Ubuntu。原来是 Mint/EFI/ubuntu
用自己的文件覆盖了 ESP 上的目录。
我的主要问题还在后面。
我发现如果我使用以下命令重新安装 Mint 的 GRUB
sudo grub-install --efi-directory=/boot/efi --bootloader-id=linux-mint
它将创建一个EFI/linux-mint
包含其启动“内核”的目录。执行上述操作后,此目录的内容如下:
$ sudo ls -l /boot/efi/EFI/linux-mint
total 3546
-rwx------ 1 root root 121 juil. 28 22:05 grub.cfg
-rwx------ 1 root root 1067896 juil. 28 22:05 grubx64.efi
-rwx------ 1 root root 1271672 juil. 28 22:05 MokManager.efi
-rwx------ 1 root root 1289424 juil. 28 22:05 shimx64.efi
通过 UEFI 设置,我添加了指向 的“linux-mint”启动选项/EFI/linux-mint/shimx64.efi
,并且它起作用了。(我现在很后悔没有先删除/EFI/ubuntu
目录以进行更清洁的实验)。
我重新安装了 Ubuntu,并且它重新创建了/EFI/ubuntu
:
$ sudo ls -l /boot/efi/EFI/ubuntu
total 3610
drwx------ 2 root root 1024 juil. 28 22:23 fw
-rwx------ 1 root root 64352 juil. 28 22:23 fwupx64.efi
-rwx------ 1 root root 121 juil. 28 22:25 grub.cfg
-rwx------ 1 root root 1067896 juil. 28 22:25 grubx64.efi
-rwx------ 1 root root 1271672 juil. 28 22:25 MokManager.efi
-rwx------ 1 root root 1289424 juil. 28 22:25 shimx64.efi
在 UEFI 启动菜单中,“ubuntu”条目与“linux-mint”之前创建的“手动”条目一起自动出现。“ubuntu”条目按预期启动了 Ubuntu 的 GRUB。我检查了 UEFI 启动菜单,efibootmgr -v
并检查了“ubuntu”指向的\EFI\UBUNTU\SHIMX64.EFI
和“linux-mint”指向的\EFI\LINUX-MINT\SHIMX64.EFI
:
$ sudo efibootmgr -v
BootCurrent: 0001
Timeout: 1 seconds
BootOrder: 0001,0003,0000,0005
Boot0000* Windows Boot Manager HD(1,GPT,e430ad60-82d4-4bbf-93df-dc0690541c64,0x800,0x32000)/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.}...1................
Boot0001* ubuntu HD(1,GPT,e430ad60-82d4-4bbf-93df-dc0690541c64,0x800,0x32000)/File(\EFI\UBUNTU\SHIMX64.EFI)
Boot0003* linux-mint HD(1,GPT,e430ad60-82d4-4bbf-93df-dc0690541c64,0x800,0x32000)/File(\EFI\LINUX-MINT\SHIMX64.EFI)
Boot0005* Hard Drive BBS(HD,,0x0)..GO..NO........o.H.G.S.T. .H.T.S.5.4.1.0.1.0.A.7.E.6.3.0....................A...........................>..Gd-.;.A..MQ..L. . . . . . .0.S.0.0.1.0.S.S.T.H.3.1.F.Y........BO..NO........o.H.F.S.1.2.8.G.3.9.M.N.C.-.2.3.0.0.A....................A...........................>..Gd-.;.A..MQ..L.I.E.9.5.0.N.7.5.1.2.7.0.9.0.5.I. .P. . ........BO
我从 UEFI 启动菜单中选择了“linux-mint”,它启动了 Ubuntu 的 GRUB。请帮帮我。
答案1
首先启动你的 Ubuntu Live CD 然后:
安装 Ubuntu,当你到达分区区域时:
- 为 Ubuntu 根目录创建一个分区 (
/
) 并: - 创建启动分区(
/boot
)确保其格式化为 FAT32 并且: - 将“安装引导加载程序”设置为您为引导创建的分区(
/boot
)并且: - 完成安装并启动到您的 UEFI 设置。根据您的计算机制造商,按F2或DEL或F12或其他键:
- 添加 Ubuntu 的条目。导航到 Ubuntu 的启动分区,然后选择
grubx64.efi
文件。 - 每次启动时选择该条目即可使用 Ubuntu
- 对 Linux Mint 执行相同操作