上一篇
Grub2手动引导Linux失败后如何快速修复系统启动问题?
- 行业动态
- 2025-04-17
- 2157
GRUB2手动引导Linux可在系统无法自动启动时修复,进入救援模式后,依次加载内核(vmlinuz)和initramfs镜像,设置根分区参数(root=),最后执行boot命令启动,需根据实际分区路径调整命令参数。
在Linux系统中,GRUB2(Grand Unified Bootloader)是默认的启动引导程序,当系统因引导配置损坏、内核更新异常或硬件变动导致无法正常启动时,手动通过GRUB2引导Linux是恢复系统的关键技能,以下为详细操作指南,适用于Ubuntu、CentOS、Debian等主流发行版。
准备工作
进入GRUB命令行界面
- 开机时按住
Shift
(BIOS系统)或反复按Esc
键(UEFI系统),进入GRUB菜单。 - 按
c
键进入命令行模式,提示符显示为grub>
。
- 开机时按住
确认分区信息
输入以下命令查看磁盘分区:grub> ls
输出示例:
(hd0) (hd0,msdos1) (hd0,msdos2) (hd1,gpt1)...
记录包含Linux系统的磁盘和分区编号(如(hd0,gpt2)
)。
手动引导步骤
步骤1:设置根分区
指定包含/boot
目录的分区(通常为根分区或独立/boot分区):
grub> set root=(hd0,gpt2) # 替换为实际分区编号
步骤2:加载Linux内核
输入内核路径(根据发行版调整):
grub> linux /boot/vmlinuz-5.15.0-78-generic root=/dev/sda2 ro # 注意内核版本和根分区设备
- 关键参数说明
vmlinuz-xxx
: 内核文件名,可通过ls /boot
查看。root=/dev/sda2
: 根分区设备路径(需与set root
的分区对应)。ro
: 以只读模式挂载(系统启动后会自动重新挂载为读写)。
步骤3:加载初始内存盘(initrd)
grub> initrd /boot/initrd.img-5.15.0-78-generic # 版本号需与内核一致
步骤4:启动系统
grub> boot
常见问题与解决方法
场景1:分区编号不确定
- 操作:使用
ls
命令逐级查看文件:grub> ls (hd0,gpt2)/boot # 确认是否存在vmlinuz和initrd文件
场景2:内核参数错误
- 错误提示:
Kernel panic - not syncing: VFS: Unable to mount root fs
- 解决方案:
- 检查
root=
参数是否正确(如root=/dev/nvme0n1p2
用于NVMe硬盘)。 - 添加驱动模块(若使用LVM或RAID):
grub> linux ... rd.lvm.lv=vg00/root # 根据实际情况调整
- 检查
场景3:文件系统损坏
- 修复命令:在
boot
前添加fsck
检查:grub> linux ... fsck.mode=force
修复GRUB2配置(可选)
若系统成功启动,建议更新GRUB配置以避免重复手动引导:
sudo update-grub # 生成新配置文件 sudo grub-install /dev/sda # 安装GRUB到硬盘(sda替换为实际设备)
引用说明
- 本文参考GNU GRUB Manual 2.06及Linux Kernel Documentation。
- 文件路径可能因发行版差异而变化,建议通过
ls
命令验证。