我有以下 EFI 分区(来自blkid
):
/dev/nvme0n1p1: UUID="1EED-77FD" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="dbc4195e-bb68-4c68-b0f5-5283571d683b"
/dev/sdb1: LABEL_FATBOOT="EFI" LABEL="EFI" UUID="5750-AAC4" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI System" PARTUUID="f97644b9-d1db-4912-93a5-e74ee1532393"
以及由 生成的以下条目grub-mkconfig
:
Generating grub configuration file ...
Found theme: /boot/grub/themes/Archlinux/theme.txt
Found linux image: /boot/vmlinuz-linux
Found initrd image: /boot/intel-ucode.img /boot/initramfs-linux.img
Found fallback initrd image(s) in /boot: initramfs-linux-fallback.img
Found Windows Boot Manager on /dev/nvme0n1p1@/efi/Microsoft/Boot/bootmgfw.efi
done
但是当我尝试启动 Windows 操作系统时,grub 抛出了以下错误:
error: null src bitmap in grub_video_bitmap_create_scaled.
error: no such device: 1EED-77FD.
error: file `/EFI/Microsoft/Boot/bootingfw.efi' not found.
Press any key to continue..._
挂载并浏览具有该 UUID 的分区显示该文件存在:
$ ls -lFh /mnt/win/EFI/Microsoft/Boot/bootmgfw.efi
.rwxr-xr-x root root 1.5 MB Sat Dec 7 06:38:48 2019 bootmgfw.efi*
这是 grub.cfg 文件中的条目:
menuentry 'Windows Boot Manager (on /dev/nvme0n1p1)' --class windows --class os $menuentry_id_option 'osprober-efi-1EED-77FD' {
savedefault
insmod part_gpt
insmod fat
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 1EED-77FD
else
search --no-floppy --fs-uuid --set=root 1EED-77FD
fi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
1EED-77FD
为什么 grub 会报告未找到具有 UUID 的设备?
答案1
这个帖子华硕 ROG 论坛对我有帮助:
我通过执行以下操作来启动它:
- 启用 CSM 并为 PCIe 组件设置 UEFI
- 禁用快速启动
- 拔下我的 USB3 备份驱动器
我的 BIOS 设置上禁用了 CSM 模块,导致 GRUB 无法在启动时检测到 nvme 驱动器。
启用 CSM 并将所有启动组件设置为仅 UEFI 后,我就能够从 grub 启动到 Windows。