双SSD分别安装Win11与Ubuntu时Grub引导Windows失败的修复求助
双SSD分别安装Win11与Ubuntu时Grub引导Windows失败的修复求助
Hi Priyansh,我之前在双盘装系统时也碰到过一模一样的问题,别慌,咱们一步步来搞定它:
首先得搞清楚为啥会出现「cannot find 'ntldr'」的错误——你手动添加的是Legacy BIOS时代的引导条目,但Win11现在默认用的是UEFI引导,ntldr是旧引导模式下的文件,自然找不到啦。接下来给你两种可行的修复方案:
方案一:让Grub自动扫描并生成正确的Windows引导条目
这是最省心的方法,步骤如下:
- 启动到Ubuntu,打开终端(快捷键Ctrl+Alt+T)
- 先找到Windows的EFI分区:执行命令
lsblk,你会看到类似nvme0n1p1这样的分区,后面标注了ESP(EFI System Partition),这就是我们要找的分区 - 挂载这个EFI分区:假设你的EFI分区是
/dev/nvme0n1p1,执行sudo mount /dev/nvme0n1p1 /mnt - 更新Grub配置:执行
sudo update-grub,这个命令会自动扫描所有磁盘上的引导文件,包括Windows的UEFI引导项,然后生成正确的Grub菜单条目 - 重启电脑,试试Grub里的Windows 11条目,应该就能正常启动了
方案二:手动添加UEFI模式的Windows引导条目
如果自动扫描没成功,咱们就手动写一个正确的条目:
- 先获取Windows EFI分区的UUID:执行
sudo blkid,找到刚才那个ESP分区对应的UUID="XXXX-XXXX"(格式是8位十六进制加连字符),把这个UUID记下来 - 编辑Grub的自定义配置文件:执行
sudo nano /etc/grub.d/40_custom - 在文件的末尾添加以下内容,注意把
XXXX-XXXX替换成你刚才记下的UUID:
menuentry "Windows 11" { insmod part_gpt insmod fat insmod search_fs_uuid search --fs-uuid --no-floppy --set=root XXXX-XXXX chainloader /EFI/Microsoft/Boot/bootmgfw.efi }
- 保存并退出nano编辑器:按
Ctrl+O,回车确认保存,再按Ctrl+X退出 - 最后更新Grub:执行
sudo update-grub - 重启后选择新添加的Windows 11条目,应该就能顺利进入系统了
如果还是有问题,可以检查一下Windows的EFI分区有没有被误格式化,或者在Ubuntu里挂载后确认/EFI/Microsoft/Boot/bootmgfw.efi这个文件是否存在——要是这个文件丢了,可能需要用Windows安装盘修复EFI引导。
备注:内容来源于stack exchange,提问作者Priyansh Bhardwaj




