答案是:需先区分grub>与grub rescue>,再分别执行对应命令链式加载windows boot manager。grub>下用search定位efi分区后chainloader启动;grub rescue>下须先insmod模块、手动设root、再chainloader;进系统后应删除efi\ubuntu并重写mbr。

Windows 10开机后黑屏只显示grub>或grub rescue>提示符,键盘有响应但无法进入系统,此时硬盘和Windows文件完好无损,只是引导链断裂导致GRUB无法自动加载Windows Boot Manager——必须手动指定EFI路径并触发链式加载才能进系统。
先确认当前是grub>还是grub rescue>
抬头看屏幕左上角的提示符,严格区分两种状态:如果显示的是【grub rescue>】,说明GRUB连normal模块都没加载,可用命令极少,必须先insmod补驱动;如果显示的是【grub>】,说明GRUB已启动完成,只是找不到grub.cfg,可直接用search或set root操作。两者修复路径完全不同,混用会卡死在半途。
不管哪种,都先敲这三行:
ls
echo $root
echo $prefix
如果ls输出为空或报错“unknown filesystem”,就是grub rescue>;如果ls能列出(hd0,gpt1) (hd0,gpt2)等分区,则是grub>。
grub>下快速进Windows(UEFI模式)
适用于能识别分区、但菜单丢失的场景,三步到位:
第一步:用search自动定位Windows引导文件
search --file --set=root /efi/microsoft/boot/bootmgfw.efi
第二步:加载Windows Boot Manager
chainloader ($root)/efi/microsoft/boot/bootmgfw.efi
第三步:执行启动
boot
这三行命令必须按顺序逐行输入、回车执行。search命令会遍历所有分区查找bootmgfw.efi,成功后$root自动设为该分区;chainloader不支持Tab补全,路径大小写必须完全匹配,/efi/不能写成/EFI/,否则报错“no such device”。
grub rescue>下手动进Windows(UEFI模式)
方法一:补模块+设根+链式加载
insmod part_gpt
insmod chain
set root=(hd0,gpt1)
这一步必须先确定EFI系统分区位置。用ls命令挨个试:ls (hd0,gpt1)/ → 看是否返回/EFI/目录;ls (hd0,gpt2)/ → 若出现“error: unknown filesystem”,跳过;直到找到含/EFI/Microsoft/Boot/的分区。gpt编号不是固定值,【(hd0,gpt1)只是示例,实际必须根据ls结果替换】。
chainloader /efi/microsoft/boot/bootmgfw.efi
boot
方法二:极简退出法(仅限部分主板)
输入exit并回车
若主板UEFI固件中仍登记着Windows Boot Manager项,执行exit会直接交出控制权给下一个有效启动项,跳过GRUB直接进Windows。但此法不稳定,有些机器会重启后再次掉回grub rescue>。
进Windows后彻底清除GRUB残留
以管理员身份运行CMD,依次执行:
diskpart
list disk
select disk 0
list volume
找到标注为“System”且文件系统为FAT32的卷,记下其卷号(如Volume 2),然后:
select volume 2
assign letter=S:
exit
S:
dir EFI
确认S:\EFI\ubuntu\存在后,执行:
rd /s /q S:\EFI\ubuntu
最后强制重写Windows主引导记录:
bootsect /nt60 S: /force /mbr











