ubuntu 进入grub rescue模式问题解决方法
ubuntu 进入grub rescue模式问题解决方法
一、Grub rescue模式下直接修复
- 定位系统分区
输入 ls查看可用分区,形如(hd0, msdosX)或(hd0, gptX),逐个测试:
ls (hd0, msdosX)/boot/grub
若显示包含grub.cfg等文件,则为有效分区 - 设置引导参数
set root=(hd0,msdosX) # X替换为实际分区号
set prefix=(hd0,msdosX)/boot/grub
insmod normal # 加载normal模块
normal # 进入常规GRUB菜单
若提示找不到模块,尝试完整路径:insmod (hd0, msdosX)/boot/grub/i386-pc/normal.mod
二、通过Ubuntu Live CD/USB修复
在ls 只能看到(hd0),没法看到其他分区,或者ls (hd0,)提示error unknown filesystem.可以使用以下方法修复。
1.启动live环境
挂载ubuntu iso镜像到虚拟机,从live模式启动。
- 关闭客户机>编辑虚拟机设置->硬件>CD/DVD(SATA)>链接(选择使用ISO映像文件)>浏览 (选择PC上ISO文件)>设备状态(选择启动时连接)
必须要在设备状态中勾选启动时连接,确保虚拟机启动时自动加载ISO镜像。
2)选择CD/DVD加载ISO镜像
a. 启动时按Esc进入bootoption界面,选择CD-ROM Drive 回车进入系统
b. 选择打开电源时进入固件,修改启动顺序,将CD-ROM Drive挪到最上一层,F10 保存配置,重启后默认选择CD-ROM driver进入系统。
3)选择try Ubuntu 进入临时系统。
2.检查磁盘分区表
打开终端,执行:
sudo fdisk -l /dev/sda #查看分区表状态
sudo lsblk
如果硬盘显示为/dev/sda
但无分区(如无 sda1, sda2等),说明分区表损坏。
如果分区存在但无法挂载,可能是文件系统损坏。
3.修复文件系统
假设ubuntu根分区为/dev/sda5
(根据实际情况替换):
# 检查并修复EXT4文件系统
sudo fsck -y /dev/sda5
# 若使用Btrfs文件系统
sudo btrfs check --repair /dev/sda5
4.修复分区表
如果分区表损坏(如误删分区),使用工具恢复。
# 安装testdisk可能会失败,需要先换源
sudo nano /etc/apt/sources.list
# 将以下源替换自带的源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
sudo apt-get update
# 安装testdisk工具
sudo apt-get install testdisk
# 运行testdisk扫描并恢复分区
sudo testdisk
-
按提示选择硬盘 -> 分区表类型(通常选Intel/PC) -> [Analyse] -> [Quick Search]
-
扫描完成后,TestDisk列出找到的分区:
-
按 P 键预览文件(确认是否为需恢复的分区)。
按 Enter 选择目标分区,选择 Write 保存分区表到磁盘。
5.重新安装GRUB
# 使用 fsck 检查根分区和/boot分区的文件系统完整性
sudo umount /dev/sdxn
sudo fsck -y /dev/sdxn
# 挂载根分区(假设为/dev/sda5)
sudo mount /dev/sda5 /mnt
# 挂载必要目录(UEFI系统需额外挂载ESP分区)
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
# 切换到根分区环境
sudo chroot /mnt
# 重新安装GRUB(BIOS系统)
grub-install /dev/sda
update-grub
exit
reboot
基本到这一步能正常启动到系统,就不用再看下面的了。
6.彻底重建引导(极端情况)
如果上述方法无效,可能需要:
在Live USB中使用 Boot Repair
工具自动修复:
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install boot-repair
boot-repair
选择 Recommended repair,按提示操作。