我尝试使用不同的方法双启动 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 吗,我该如何安装它?
答案1
我认为大多数人都会这样做,即用 GRUB 替换 Windows 引导加载程序
这并不是人们真正会做的事情——是的,但他们并没有直接替换 Windows 引导加载程序(也没有替换 Windows 引导管理器),而是配置 GRUB 来“链式加载”它。也就是说,他们的第一的GRUB 安装已经完成了第二个 GRUB 所要做的事情。
但这种设置(以及必须替换“引导加载程序”的整个想法)与较旧的“BIOS”系统更相关。您的系统固件遵循 UEFI 规范,并且首先不限于每个磁盘一个引导加载程序,因此虽然可以从 GRUB 链式加载 Windows Bootmgr,但这不是唯一的方法。
有没有办法,我可以在我磁盘开头的空白处放置一个“主引导加载程序”,以便我可以使用它来打开 Windows 引导加载程序和 GRUB。
是的,但如果它只是“第二个 GRUB”,那么它与使用第一个 GRUB 执行相同的操作并没有什么区别。
但是,这应该已经是固件的一部分了——它是列出整个磁盘的同一个启动菜单。除了列出每个磁盘(选择第一个兼容分区上的文件“\EFI\Boot\Bootx64.efi”)之外,任何兼容 UEFI 的系统上的启动菜单都已经能够显示指向特定路径的单个操作系统条目。安装 Xubuntu 的 grubx64.efi 后,应该会自动将其添加到“Windows 启动管理器”条目旁边。
efibootmgr
因此,如果您已经在使用该菜单,您应该让它正常工作——在 Linux 上探索一下。
在 Windows 中,启动可以用来重新安装 Bootmgr 以及创建“Windows 启动管理器” UEFI 启动项(如果缺失)。
bcdboot c:\windows /f uefi
从Linux开始,
grub-install
将重新添加“GRUB”启动项。grub-install --target=x86_64-efi
您可以添加启动项手动使用
efibootmgr
:efibootmgr --create --label="Xubuntu" --disk=/dev/nvme0n1 --part=1 --loader='\EFI\ubuntu\grubx64.efi'
然后可以使用该
--bootorder
选项为所有未来启动设置默认条目。(类似地,--bootnext
可以用于为一重启。)