我最近将 ubuntu 安装了到 1TB 的外部硬盘上。我确保分区正确,并选择了正确的 grub 位置,但它仍然以某种方式将 grub 安装到了基本硬盘上。现在启动顺序中有一个 ubuntu 选项,我必须手动将其向下移动一位才能启动。我希望 ubuntu 启动顺序保留在那里,但只有在插入外部硬盘时才启动到 grub。如果这不可能,我可以通过手动选择在 f12 菜单中启动它来接受。我只是希望它有点隐蔽并且易于访问。如果 ubuntu 选项位于启动顺序的顶部,它会启动到 grub 命令行,而没有启动到 windows 的选项。当插入外部硬盘时,我可以选择 windows 引导加载程序和 ubuntu,但如果没有插入,它会停留在命令行。
答案1
Ubuntu 的 Ubiquity 仅安装到第一个驱动器(通常是内部驱动器)上的 ESP。
您需要在外部驱动器上安装一个 ESP - efi 系统分区,将 grub 重新安装到外部驱动器,并将 Windows 设置为 UEFI 启动顺序中的第二个默认启动。
使用 gparted 创建 ESP、FAT32 100 到 500MB,带有 esp、启动标志。然后使用 Boot-Repair 以高级模式重新安装 grub。
https://help.ubuntu.com/community/Boot-Repair
高级模式屏幕,选择安装和外部驱动器的 ESP。
https://sourceforge.net/p/boot-repair/home/Home/
请添加到这个错误中,它显示了安装到外部驱动器时的几种解决方法。
发布了在安装 #55 或(#23 & #26) 期间手动卸载和安装正确 ESP 的解决方法
https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1396379
其他人建议在 UEFI 设置中物理或逻辑地断开所有其他驱动器,这样安装驱动器就是第一个驱动器。或者从第一个驱动器中删除启动标志/esp 标志,这样只有 ESP 才是安装驱动器。(我没有这样做过,但其他人做过。)或者,如果您在第二个或外部驱动器上有 ESP,您可以重新安装 grub,手动或使用 Boot-Repair 的高级模式并完全重新安装 grub 以纠正驱动器。
在安装到第二个或外部驱动器之前从 Windows 中删除 esp 标志 - Tim Richardson,也显示在错误报告中。
如何将 Ubuntu 安装到 USB 密钥?(不使用启动盘创建器)
检查每个条目的当前顺序和十六进制数:
sudo efibootmgr -v
使用 efibootmgr 更改启动顺序,有些需要所有 4 个十六进制字符,其他 1 个就可以了。
sudo efibootmgr -o 0,1,2
也可以看看
man efibootmgr