我尝试使用不同的方法双启动 Windows 和 Xubuntu。(它有效,但不是最好的)
我没有像大多数人那样做,即用 GRUB 替换 Windows 引导加载程序,并将 Linux 放在第二个分区上,而是将 Xubuntu 及其所有文件(包括 GRUB)安装在一个单独的分区上,而从未接触过 Windows。
- 开头的可用空间:我很快就会解释
- 前 4 个分区:未触及的 Windows 文件
- 第 5 个分区:所有 Xubuntu 文件,包括引导加载程序。
- 第6分区:数据分区(忽略)
现在我有 2 个引导加载程序,Windows 引导加载程序和 GRUB,当我打开笔记本电脑时,它会打开它找到的第一个引导加载程序(在本例中为 Windows)。如果我想启动 Xubuntu,我打开启动菜单,看到我唯一的 SSD,选择 SSD 将使我回到 Windows,所以我选择“从 EFI 文件启动”,然后我浏览一些文件夹,直到找到grubx64.efi。每次我想运行 Xubuntu 时都必须这样做。
有没有办法可以在磁盘开头的空白处放置一个“主引导加载程序”,我可以用它来打开 Windows 引导加载程序和 GRUB。如果是这样,您会推荐哪个引导加载程序,它可以是第二个 GRUB,以及如何安装它?
这并不完全是人们所做的——是的,但他们并没有彻底取代 Windows 引导加载程序(也不是 Windows 引导管理器),而是将 GRUB 配置为“链式加载”它。也就是说,他们的第一个GRUB 安装已经完成了您假定的第二个 GRUB 会做的事情。
但这种设置(以及必须替换“引导加载程序”的整个想法)与旧的“BIOS”系统更相关。您的系统固件遵循 UEFI 规范,并且首先不限于每个磁盘一个引导加载程序,因此虽然可以从 GRUB 链式加载 Windows Bootmgr,但这并不是唯一的方法。
是的,但如果它只是“第二个 GRUB”,那么它与使用第一个 GRUB 做同样的事情并没有什么不同。
但是,这应该已经是固件的一部分 - 它与列出整个磁盘的启动菜单相同。除了列出每个磁盘(选择第一个兼容分区上的文件“\EFI\Boot\Bootx64.efi”)之外,任何 UEFI 兼容系统上的启动菜单都已经能够显示指向特定路径的各个操作系统条目。Xubuntu 的 grubx64.efi 条目应该在您安装后立即自动添加到此处,与“Windows Boot Manager”条目一起。
efibootmgr
因此,如果您已经在使用该菜单,那么您应该让它正常工作——在 Linux 上摸索一下。在 Windows 中,bcdboot可用于重新安装 Bootmgr 以及创建“Windows 启动管理器”UEFI 启动项(如果丢失)。
从Linux 开始,
grub-install
将重新添加“GRUB”引导项。您可以使用以下命令手动
efibootmgr
添加启动项:然后,该
--bootorder
选项可用于设置所有未来启动的默认条目。(同样,--bootnext
可用于选择不同的操作系统进行一次重新启动。)