![手动安装 GRUB 后 Windows 未列为引导选项](https://linux22.com/image/196729/%E6%89%8B%E5%8A%A8%E5%AE%89%E8%A3%85%20GRUB%20%E5%90%8E%20Windows%20%E6%9C%AA%E5%88%97%E4%B8%BA%E5%BC%95%E5%AF%BC%E9%80%89%E9%A1%B9.png)
我在拥有多个 SSD 的台式计算机上安装了 Manjaro,其中一个 SSD 安装了 Windows 10。我尝试在辅助 SSD 上安装 Manjaro,效果很好,但 GRUB 无法安装,因为它无法在驱动器上找到 EFI 系统分区 (ESP)。我手动检查,发现所有驱动器上都没有 ESP。我按照中所述手动创建了一个 ESP拱门维基并手动安装用于 EFI 系统的 GRUB如中所述Manjaro 维基。
我遇到的问题是 Windows 10 找不到grub-mkconfig
,因此不再列在启动选项中,只列出了 Manjaro。我猜原因是 Windows 安装仍然使用 BIOS 而不是 UEFI。如果我读到这个正确询问 Ubuntu 问题,我需要将 GRUB 从 UEFI 切换回 BIOS,以便 GRUB 可以找到 Windows 安装。以干净的方式归档此内容的最佳方法是什么?
我当前的驱动器设置如下:sda(安装了 Windows 10 的 SSD):
Disk /dev/sda: 232,89 GiB, 250059350016 bytes, 488397168 sectors
Disk model: Samsung SSD 850
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb507cf23
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 1026047 1024000 500M 7 HPFS/NTFS/exFAT
/dev/sda2 1026048 487320175 486294128 231,9G 7 HPFS/NTFS/exFAT
/dev/sda3 487321600 488392703 1071104 523M 27 Hidden NTFS WinRE
sdb(sdb5 是缩小的 NTFS 数据分区,sdb2 Manjaro 和 sdb3 手动创建的 ESP 分区)。
Disk /dev/sdb: 1,82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: CT2000MX500SSD1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x26b4b1bf
Device Boot Start End Sectors Size Id Type
/dev/sdb1 1985 1984962559 1984960575 946,5G 5 Extended
/dev/sdb2 1984962560 3905980415 1921017856 916G 83 Linux
/dev/sdb3 * 3905980416 3907028991 1048576 512M ef EFI (FAT-12/16/32)
/dev/sdb5 2048 1984841727 1984839680 946,4G 7 HPFS/NTFS/exFAT
Partition 1 does not start on physical sector boundary.
Partition table entries are not in disk order.
还有第三个 NTFS SSD sdc,仅保存数据。
答案1
我无法启动 Windows 10 安装的原因是我在主板 BIOS 中停用了 BISO 传统模式,在我的例子中,该模式称为CSM Support
、 或UEFI CSM (Compatibility Support Module)
。
激活 CSM 支持后,我再次能够sda
在 BIOS 启动菜单中选择驱动器并启动到 Windows。注意:我只能从 BIOS 菜单中选择启动驱动器,而不能从 GRUB 中选择,因为如上所述,GRUB 是在 UEFI 模式下安装的,因此无法检测到 Windows 安装。
因此,在我的机器上,我安装了 BIOS Windows 和 UEFI Manjaro。这是非常规但有效的。
要清理此问题并允许 GRUB 检测 Windows 和 Manjaro 安装,有两种可能性:
- 将 Windows 10 形式 BIOS 转换为 UEFI(我没有尝试过这个,很可能是所描述的过程损坏/删除了 GRUB 或 ESP 分区)
- 在 BIOS 模式下重新安装 GRUB。
要重新安装 GRUB,您需要:
- 启动至 Manjaro live USB
- 删除现有的 ESP 分区,例如通过 GParted(在我的例子中
/dev/sdb3
) - 通过以下方式加载 Chroot 环境
manjaro-chroot -a
- 为 BIOS 系统重新安装 GRUB:
grub-install --force --target=i386-pc --recheck --boot-directory=/boot /dev/sdb
- 更新 GRUB 配置:
grub-mkconfig -o /boot/grub/grub.cfg
有关如何手动安装 GRUB 的完整说明,请参阅Manjaro 维基。