我最近为个人使用安装了一台台式机,最初安装了 Arch Linux 作为我的主要操作系统(在 NVME 驱动器上),作为一个游戏玩家,我最终得出结论,我也需要安装 Windows。我将 Windows 10 安装在我的硬盘(我的辅助驱动器)上的一个 500GB 分区上。
每当我需要使用 Windows 时,我都厌倦了在 BIOS 中手动切换启动顺序,最近我也尝试让 grub 启动 Windows,这就是我的问题开始的地方。
Grub 仅显示 arch 的启动项,尽管 os-prober 返回了 windows 启动管理器位置。我已禁用快速启动并尝试手动输入 grub,但无论我在运行 install-grub 之前做什么(甚至依次到 /dev/sda 和 /dev/nvme0n1),它仍然只显示 Arch 作为启动选项。
分区表(fdisk -l 输出):
磁盘 /dev/nvme0n1:232.9 GiB,250059350016 字节,488397168 个扇区
单位:扇区 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:1412B5DB-A22B-4957-B915-EC6B912D8833
设备 开始 结束 扇区 大小 类型
/dev/nvme0n1p1 2048 1002048 1000001 488.3M EFI 系统
/dev/nvme0n1p2 1003520 34557948 33554429 16G Linux 交换
/dev/nvme0n1p3 34557952 488397134 453839183 216.4G Linux 文件系统
磁盘 /dev/sda:2.7 TiB,3000592982016 字节,5860533168 个扇区
单位:扇区 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘标签类型:gpt
磁盘标识符:BF345208-15FD-454F-8252-9963AC133C5C
设备 开始 结束 扇区 大小 类型
/dev/sda1 2048 34815 32768 16M Microsoft 保留
/dev/sda2 34816 524290047 524255232 250G Microsoft 基本数据
/dev/sda3 524290048 5860533134 5336243087 2.5T Linux 文件系统
BIOS 中有一个奇怪的地方,它指出 Windows 启动项位于我的 NVME 驱动器上,我假设 Windows 将其检测为 ESP 并自动将其启动管理器安装到该驱动器上。
编辑:
因此 update-grub 是 Debian 的东西,Arch 使用 grub-mkconfig,我可以成功运行,以下是部分输出:
开始/etc/grub.d/30_os-prober
在 /dev/nvme0n1p1@/EFI/Microsoft/Boot/bootmgfw.efi 上找到 Windows 启动管理器 menuentry“Windows 启动管理器(在 /dev/nvme0n1p1 上)”--class windows --class >os $menuentry_id_option“osprober-efi-CAB4-D072”{ insmod part_gpt insmod fat if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root CAB4-D072 else search --no-floppy --fs-uuid --set=root CAB4-D072 fi chainloader /EFI/Microsoft/Boot/bootmgfw.efi }
结束/etc/grub.d/30_os-prober
然而,当我从 BIOS 中的“arch”或“grub”启动选项(均在我的 NVME 驱动器上)启动时,唯一的 grub 条目仍然是 arch。
答案1
sudo update-grub
如果您还没有尝试的话,请尝试一下。
我总是忘记这样做...;)
答案2
在 Arch 上使用此命令将 Windows 10 与 Arch 一起添加到 grub 中。
grub-mkconfig -o /boot/grub/grub.cfg "$@"