Windows与Ubuntu双系统无法进入Ubuntu,求助修复方案
解决Ubuntu UEFI引导消失、直接进入Windows的问题
这种情况我之前碰到过好几次,大概率是Windows的自动更新或者启动管理器把Ubuntu的UEFI引导条目给覆盖、隐藏甚至直接删除了——毕竟Windows对多系统引导一向不太友好。既然你的Ubuntu分区还完好,咱们可以从几个方向尝试恢复:
一、手动重建Ubuntu的UEFI启动条目(最推荐,亲测有效)
这个方法直接绕过Windows的干扰,手动在UEFI固件里添加Ubuntu的启动项:
- 制作一个Ubuntu Live USB,从它启动并选择「Try Ubuntu」进入桌面
- 打开终端,先找到你的EFI系统分区(ESP):
- 运行
lsblk或者sudo fdisk -l,找类型为「EFI System」的分区,通常是/dev/sda1或者/dev/nvme0n1p1(根据你的磁盘类型调整)
- 运行
- 挂载ESP分区到临时目录:
sudo mount /dev/sdX1 /mnt/esp # 把sdX1替换成你找到的ESP分区,比如/dev/nvme0n1p1 - 确认Ubuntu的GRUB文件存在:
正常应该能看到ls /mnt/esp/EFI/ubuntu/grubx64.efi、shimx64.efi这些文件 - 用
efibootmgr添加UEFI启动条目:sudo efibootmgr -c -d /dev/sdX -p 1 -L "Ubuntu" -l "\EFI\ubuntu\grubx64.efi"-d后面是你的磁盘设备(比如/dev/sda或者/dev/nvme0n1)-p后面是ESP分区的编号(比如1)-L是启动条目的显示名称,随便取都行
- 验证条目是否添加成功:
找到标有「Ubuntu」的条目(编号比如sudo efibootmgr -v0001),然后把它设为第一启动项:sudo efibootmgr -o 0001,0000 # 0001是Ubuntu的编号,0000是Windows的,按你实际编号调整 - 重启电脑,应该就能看到GRUB引导菜单了
二、关闭Windows的快速启动和休眠(排除干扰项)
Windows的快速启动会让磁盘处于半休眠状态,很容易破坏Ubuntu的引导:
- 进入Windows,打开「控制面板」→「电源选项」→「选择电源按钮的功能」
- 点击「更改当前不可用的设置」,取消勾选「快速启动」和「休眠」,保存设置
- 或者直接在管理员命令提示符里彻底关闭休眠:
powercfg -h off - 重启电脑,看看BIOS里是否能出现Ubuntu的启动条目
三、用Boot Repair的高级选项修复
如果你之前只试过基础的repair-boot,可以试试Boot Repair的高级功能:
- 从Ubuntu Live USB启动,先安装Boot Repair:
sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt update && sudo apt install boot-repair - 打开Boot Repair,点击「Advanced options」
- 在「Main options」里勾选「Backup and rename Windows EFI files」,这个选项会防止Windows后续覆盖Ubuntu的引导文件
- 点击「Apply」,等待修复完成后重启
四、修改Windows的BCD添加Ubuntu启动项
如果以上方法都不行,可以直接在Windows的启动管理器里加Ubuntu的入口:
- 进入Windows,打开管理员命令提示符
- 创建一个新的启动条目:
执行后会返回一个类似bcdedit /create /d "Ubuntu" /application bootsector{12345678-1234-1234-1234-123456789012}的GUID,记下来 - 设置启动条目指向ESP分区和GRUB文件:
bcdedit /set {GUID} device partition=X: # X是你的ESP分区盘符,比如E:,去磁盘管理里找 bcdedit /set {GUID} path \EFI\ubuntu\grubx64.efi - 把Ubuntu设为默认启动项:
bcdedit /default {GUID} - 重启后就能在Windows的启动菜单里选择Ubuntu了
我之前就是因为Windows某次大更新把UEFI条目删了,用第一个方法手动加回去就解决了,你可以先试试这个。
内容的提问来源于stack exchange,提问作者Daniel Paczuski Bak
相关产品推荐
相关产品推荐

