双系统启动故障:Windows 11间歇性启动失败并报特定EFI错误
看起来你的问题核心是GRUB引导器偶尔无法正确定位Windows的EFI分区——毕竟BIOS直接启动Windows完全没问题,说明Windows本身的启动文件和分区都是完好的,问题出在GRUB的配置或者磁盘识别逻辑上。我来给你拆解可能的原因和对应的解决步骤:
为什么会出现这个问题?
最常见的原因有两个:
- GRUB自动生成的Windows启动条目依赖磁盘的临时命名(比如
/dev/sda、/dev/sdb),而Linux有时候会因为磁盘接口(比如NVMe/SATA混合)、固件检测顺序等原因,导致磁盘命名偶尔变化,GRUB就找不到对应的分区了。 os-prober(GRUB用来检测其他系统的工具)偶尔会出现识别偏差,生成的启动条目里的分区UUID或者路径有误,导致间歇性失败。
解决方案:手动添加可靠的GRUB启动条目
既然自动生成的条目不稳定,我们可以手动创建一个基于分区UUID的启动条目——UUID是分区的唯一标识,不会随磁盘命名变化而改变,可靠性高。
步骤如下:
启动到Ubuntu,找到Windows EFI分区的UUID
打开终端,输入命令:sudo blkid在输出里找格式为
FAT32的分区,并且备注里带有Microsoft basic data或者EFI System的条目,它的UUID="E009-ED22"就是你要找的(和报错里的UUID对应),记下来这个UUID。编辑GRUB自定义配置文件
打开终端,输入命令编辑自定义配置:sudo nano /etc/grub.d/40_custom在文件末尾添加以下内容(把
E009-ED22替换成你刚才找到的真实UUID):menuentry "Windows 11 (Custom Entry)" { insmod part_gpt insmod fat insmod search_fs_uuid search --fs-uuid --no-floppy --set=root E009-ED22 chainloader /efi/Microsoft/Boot/bootmgfw.efi }按
Ctrl+O保存,Ctrl+X退出编辑器。更新GRUB配置
终端输入命令让GRUB加载新的配置:sudo update-grub执行完成后,重启电脑,你会在GRUB菜单里看到新的
Windows 11 (Custom Entry)选项,以后用这个选项启动Windows,就不会再出现间歇性找不到分区的问题了。
额外检查(可选)
如果问题还是出现,可以进入UEFI BIOS,检查启动项列表:确保Windows的EFI启动项(通常叫Windows Boot Manager)是存在的,并且优先级不用太高——我们用GRUB的自定义条目已经能可靠引导了,BIOS里的启动项只是备用。
备注:内容来源于stack exchange,提问作者exiort




