GRUB2完全失效直接引导Windows,修复时遇grub-probe错误求助
兄弟,我懂你这种折腾半天还搞砸的崩溃感!别慌,GRUB Customizer有时候确实不太靠谱——它报错是因为没有正确挂载你的Linux系统分区和必要的虚拟文件系统,咱们用原生的GRUB修复工具手动搞定,步骤很清晰:
第一步:在Live Linux环境中准备挂载
打开终端,先确认你的Linux根分区(也就是你说的
sda1),避免挂错:lsblk输出里
/dev/sda1会标注TYPE="part",你可以通过大小对应上自己的Linux根分区。挂载Linux根分区到Live环境的
/mnt目录:sudo mount /dev/sda1 /mnt挂载三个必要的虚拟文件系统,保证后续chroot进去后系统能正常运行:
sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys
第二步:进入Linux系统环境修复GRUB
切换到挂载好的Linux系统(chroot):
sudo chroot /mnt重新安装GRUB到磁盘的主引导记录(MBR)——注意这里是整个磁盘
/dev/sda,不是单个分区:grub-install /dev/sda如果你的系统是UEFI模式,需要先挂载ESP分区(大概率是
sda3这个“系统保留”分区):mount /dev/sda3 /mnt/boot/efi,再执行grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=MXLinux更新GRUB配置,让它自动扫描所有已安装的系统(包括你的新Windows分区):
update-grub这时候你会看到终端输出里出现类似“Found Windows 10 on /dev/sda4”的提示,说明系统已经识别到可用的Windows了。
第三步:重启验证
退出chroot环境:
exit重启电脑:
sudo reboot这时候GRUB菜单应该会正常弹出,你可以自由选择进入MX Linux或者Windows 10了。
另外,那个失效的旧Windows分区(sda2),如果update-grub扫描到了它的无效条目,等你正常进入MX Linux后,可以用GRUB Customizer删掉它,或者手动编辑/etc/grub.d/40_custom清理无效项,再执行一次update-grub就行。
备注:内容来源于stack exchange,提问作者Budy

