当电脑启动时遇到无法进入 Windows 系统的情况,而 GRUB 引导菜单却显示正常,这通常意味着引导记录、系统文件或 GRUB 配置出现了问题,这种情况可能由多种因素引起,包括系统更新后引导记录损坏、磁盘分区表错误、GRUB 配置文件丢失或错误,甚至是硬件故障,下面将逐步分析可能的原因并提供解决方案,帮助你恢复 Windows 的正常启动。

检查 BIOS/UEFI 启动顺序
确认 BIOS/UEFI 的启动顺序是否正确,有时,系统可能被设置为优先从 Linux 启动,而 Windows 的启动项未被正确识别,重启电脑并进入 BIOS/UEFI 设置界面(通常通过按 F2、F10、Del 或 Esc 键),检查启动顺序是否将 Windows 所在的硬盘或 EFI 分区设置为第一启动项,如果是,保存设置并重启;如果问题依旧,可能需要进一步检查引导记录。
使用 Windows 安装盘修复引导记录
BIOS 设置正确但仍无法进入 Windows,可以尝试使用 Windows 安装盘修复引导记录,具体步骤如下:
- 准备一个 Windows 安装 U 盘,并从该 U 盘启动电脑。
- 选择语言和区域设置后,点击“修复计算机”。
- 在“选择选项”界面中,依次选择“疑难解答”>“命令提示符”。
- 在命令提示符中,输入
bootrec /fixmbr修复主引导记录,然后输入bootrec /fixboot修复引导扇区,如果提示“访问被拒绝”,可以尝试先运行bootsect /nt60 sys。 - 输入
bootrec /rebuildbcd重建引导配置数据,完成后重启电脑。
修复 GRUB 配置文件
如果问题是由 GRUB 配置错误导致的(Windows 启动项未被正确识别),可以尝试修复 GRUB 配置文件,具体操作如下:

- 从 Live Linux U 盘启动电脑,打开终端。
- 使用
sudo fdisk -l或sudo lsblk命令查看磁盘分区,找到 Windows 所在的分区(通常是/dev/sda1或/dev/nvme0n1p1)。 - 挂载 Windows 分区,
sudo mount /dev/sda1 /mnt。 - 检查
/mnt/Windows/Boot/BCD文件是否存在,如果存在,使用sudo cp /mnt/Windows/Boot/BCD /mnt/Boot/BCD复制到 GRUB 识别的位置。 - 更新 GRUB 配置:
sudo update-grub,然后重启电脑。
检查磁盘分区表和文件系统
磁盘分区表损坏或文件系统错误也可能导致无法进入 Windows,可以使用 testdisk 或 gparted 等工具检查和修复分区表。
- 从 Live Linux U 盘启动,打开终端。
- 安装
testdisk:sudo apt install testdisk。 - 运行
sudo testdisk,选择目标磁盘,选择“分析”和“修复”选项,尝试恢复分区表。 - 如果是文件系统错误,可以使用
sudo ntfsfix /dev/sda1命令修复 NTFS 分区。
尝试手动添加 Windows 启动项到 GRUB
GRUB 中没有 Windows 启动项,可以手动添加,具体步骤如下:
- 打开 GRUB 配置文件:
sudo nano /etc/grub.d/40_custom。 - 添加以下内容(根据实际情况修改分区号和路径):
menuentry "Windows" { insmod ntfs set root='(hd0,msdos1)' chainloader +1 } - 保存文件后,运行
sudo update-grub更新配置,重启电脑。
备份重要数据并重置系统
如果以上方法均无效,可能是系统文件严重损坏,建议先备份重要数据,然后使用 Windows 安装盘进行“重置此电脑”或“全新安装”操作,注意:全新安装会清除所有数据,请务必提前备份。

相关问答 FAQs
Q1:为什么 GRUB 能显示,但无法进入 Windows?
A1:这通常是因为 GRUB 配置文件中未正确识别 Windows 的启动项,或者 Windows 的引导记录(如 BCD)损坏,可以通过修复引导记录或手动添加 Windows 启动项到 GRUB 解决。
Q2:修复引导记录时提示“访问被拒绝”怎么办?
A2:这可能是由于权限问题或分区未正确挂载,尝试在命令提示符中先运行 diskpart,然后执行 list volume 和 select volume X(X 为 Windows 分区号),最后运行 assign 挂载分区后再执行修复命令。
标签: grub修复双系统启动 Windows双系统启动修复 grub引导修复教程