GRUB2无法引导进入Windows10,boot-repair工具未解决问题
GRUB2无法引导进入Windows10,boot-repair工具未解决问题
看起来你这情况确实挺棘手的——os-prober明明能检测到Windows 10,可GRUB菜单就是不显示它,boot-repair还在引导分区的设置上来回“打脸”,一会儿让关独立引导分区,一会儿又让开,换谁都懵。结合你提到的GRUB可能装在MBR的猜想,咱们一步步来解决:
第一步:先确认ESP分区的真实状态
你已经给sda2加了ESP和boot标记,但系统还提示“no ESP detected”,咱们手动检查下这个分区的内容:
- 打开终端,先建个挂载点:
sudo mkdir /mnt/esp - 挂载sda2:
sudo mount /dev/sda2 /mnt/esp - 看看里面有没有
EFI文件夹,正常情况下这个文件夹里应该同时有Microsoft(Windows的引导文件)和ubuntu(GRUB的引导文件)子目录。如果找不到Microsoft文件夹,要么是Windows的EFI引导文件压根不在这个分区,要么就是损坏了。
第二步:强制让GRUB更新引导配置
有时候GRUB就算检测到Windows,也没把它加到菜单里,咱们手动触发更新试试:
- 先确认os-prober能正常识别Windows:
sudo os-prober,如果能输出类似/dev/sda3:Windows 10:Windows:efi的内容,说明检测没问题 - 接着更新GRUB配置:
sudo update-grub - 重启电脑,看看GRUB菜单里有没有出现Windows选项。
第三步:把GRUB重新安装到ESP分区(解决MBR安装的问题)
如果GRUB真的装在了MBR(而你的磁盘是GPT格式),这会导致UEFI引导混乱。咱们把GRUB重新装到ESP分区里:
- 先挂载你的Ubuntu系统分区和ESP分区:
sudo mount /dev/sda1 /mnt sudo mount /dev/sda2 /mnt/boot/efi - 然后重新安装GRUB到ESP:
sudo grub-install --efi-directory=/mnt/boot/efi /dev/sda
注意!这里的/dev/sda是整个磁盘设备,不是某个分区,别写成sda1或者sda2了! - 最后再更新一次GRUB:
sudo update-grub
第四步:修复Windows的EFI引导项
如果上面的步骤都没效果,可能是Windows的EFI引导信息丢了,用Windows安装盘来修复:
- 插入Windows 10安装U盘,从U盘启动,进入「修复计算机」模式
- 打开命令提示符,执行以下命令(注意替换成你自己的磁盘/分区编号):
这里的diskpart list disk # 找到你的GPT磁盘,记好编号 select disk 0 # 替换成你的磁盘编号 list partition select partition 2 # 替换成你的ESP分区编号 assign letter=Z: # 给ESP分区分配一个临时盘符Z exit bcdboot C:\Windows /s Z: /f UEFIC:是你的Windows系统分区,要是你的Windows在别的盘,记得改成对应的盘符。修复完之后回到Ubuntu,再执行一次sudo update-grub,应该就能在GRUB菜单里看到Windows了。
另外,关于boot-repair的矛盾提示,不用太在意——它可能误判了Windows的引导模式,既然你确定全程是UEFI模式操作,就专注于修复ESP分区和GRUB的安装位置就行。
备注:内容来源于stack exchange,提问作者fourOfour
相关产品推荐
相关产品推荐

