UEFI模式下Win10/Ubuntu16.04双系统Grub引导Windows启动故障求助
解决UEFI模式下Win10启动无限修复的问题
兄弟,我碰到过好几个和你一模一样的情况——UEFI双系统用得好好的,突然Win10就卡启动修复循环了。别慌,咱们一步步来搞定它,你已经试过更新Grub和Boot Repair没用,那咱们从底层引导文件入手:
第一步:先在Ubuntu里确认EFI分区状态
UEFI引导全靠EFI分区,先打开Ubuntu的终端,输入这行命令看看分区情况:
sudo fdisk -l
找到标注为EFI System的分区,通常是/dev/sda1或者/dev/nvme0n1p1(如果是NVMe固态的话)。记下来这个分区路径,然后挂载它:
sudo mount /dev/sda1 /mnt # 把sda1换成你找到的EFI分区路径
第二步:用Win10安装U盘修复EFI引导
这步是关键,因为Win10的引导文件大概率是损坏了,Ubuntu的工具修不动这种底层问题:
- 先在Ubuntu里做个Win10安装U盘:装个
woeusb工具,命令是sudo apt install woeusb,跟着提示把Win10镜像写到U盘里就行 - 插好U盘重启,进BIOS选UEFI模式的U盘启动(别选Legacy的)
- 进入Win10安装界面后,别点“现在安装”,点左下角的修复计算机
- 依次选「疑难解答」→「高级选项」→「命令提示符」
- 现在要给EFI分区分配个盘符,输入这些命令:
diskpart list disk # 找到你的系统盘,比如Disk 0 select disk 0 list partition # 找到EFI分区,类型是「系统」,大小几百MB select partition X # X是EFI分区的编号,比如1 assign letter=Z: # 给它分配Z盘,随便一个没被用的盘符都行 exit - 最后执行修复命令,把Windows引导写到EFI分区里:
注意:如果你的Windows系统不在C盘,就把C换成对应的盘符,比如D盘。bcdboot C:\windows /s Z: /f UEFI
第三步:重新修复Grub引导
修复完Win10后,Grub大概率会被覆盖,回到Ubuntu再把它找回来:
- 重启进Ubuntu,打开终端,重新挂载EFI分区:
sudo mount /dev/sda1 /mnt - 安装Grub到系统盘:
sudo grub-install --efi-directory=/mnt /dev/sda # /dev/sda是你的系统盘,不是分区! - 最后更新Grub列表:
sudo update-grub
额外排查项(如果上面步骤没用的话)
- 进BIOS看看Secure Boot是不是开着,有的时候开Secure Boot会干扰Win10的UEFI引导,关掉试试
- 检查Windows分区的NTFS错误,在Ubuntu终端输入:
sudo ntfsfix /dev/sda2 # sda2是你的Windows系统分区,换成你自己的
内容的提问来源于stack exchange,提问作者kekke




