MBR磁盘下Windows安装失败后如何恢复Ubuntu启动
我太懂你这种崩溃的感觉了——好好的Ubuntu系统分区一点没碰,结果半吊子的Windows安装把启动搞炸了,连GRUB菜单都找不到,还弹出个“BOOTMGR is missing”的错误。别担心,咱们不用重装,几步就能把GRUB找回来,让Ubuntu重新正常启动。
核心原因先搞清楚
Windows安装程序不管成功还是失败,只要触碰到MBR(主引导记录),就会把原来的GRUB引导器覆盖成自己的BOOTMGR。而你的安装中断了,BOOTMGR没装完整,就出现了缺失提示,同时原来的GRUB也被冲没了,所以Ubuntu没法正常启动。但好在你的Ubuntu分区(/dev/sda2)完全没问题,咱们只需要把GRUB重新装回MBR就行。
具体修复步骤
1. 准备Ubuntu Live启动盘
先找个空U盘,下载和你系统版本一致的Ubuntu 22.04 ISO镜像,用Rufus或者Ubuntu自带的启动盘创建工具做一个可引导的U盘。然后重启电脑,从这个U盘启动,选择“Try Ubuntu”进入live桌面环境(不用安装)。
2. 挂载你的Ubuntu根分区
打开终端(Ctrl+Alt+T),先确认你的Ubuntu分区位置:
sudo fdisk -l
你应该能看到/dev/sda2的条目,类型是Linux filesystem。接下来把它挂载到live系统的/mnt目录:
sudo mount /dev/sda2 /mnt
⚠️ 如果你之前给Ubuntu单独分了/boot分区,记得也挂载上(把/dev/sdaX换成你的boot分区号):
sudo mount /dev/sdaX /mnt/boot
3. 绑定系统必要的目录
为了让我们能在live环境里操作自己的Ubuntu系统,需要把几个关键的系统目录绑定过去:
sudo mount --bind /dev /mnt/dev sudo mount --bind /dev/pts /mnt/dev/pts sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys
4. 进入chroot环境
这一步相当于“切换”到你自己的Ubuntu系统里,所有操作都会直接作用于你的系统分区:
sudo chroot /mnt
5. 重新安装GRUB到MBR
现在执行GRUB安装命令,注意这里要指定整个磁盘/dev/sda,而不是分区/dev/sda2:
grub-install /dev/sda
安装完成后,更新GRUB的配置文件,让它能识别到所有操作系统(包括那个没装好的Windows分区):
update-grub
6. 退出并重启
输入exit退出chroot环境,然后依次卸载挂载的目录:
sudo umount /mnt/dev/pts sudo umount /mnt/dev sudo umount /mnt/proc sudo umount /mnt/sys sudo umount /mnt
最后重启电脑,拔掉U盘,你应该就能看到熟悉的GRUB菜单了,选择Ubuntu就能正常进入系统。
可能遇到的小问题
- 如果在chroot里执行
grub-install提示找不到命令,先安装GRUB包:apt update && apt install grub-pc - 要是找不到
/dev/sda2,可以用blkid命令查看分区的UUID,或者直接打开文件管理器,看看哪个分区是你的Ubuntu系统盘。
备注:内容来源于stack exchange,提问作者Wais Kamal

