在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)
)。
指定包含/boot
目录的分区(通常为根分区或独立/boot分区):
grub> set root=(hd0,gpt2) # 替换为实际分区编号
输入内核路径(根据发行版调整):
grub> linux /boot/vmlinuz-5.15.0-78-generic root=/dev/sda2 ro # 注意内核版本和根分区设备
vmlinuz-xxx
: 内核文件名,可通过ls /boot
查看。root=/dev/sda2
: 根分区设备路径(需与set root
的分区对应)。ro
: 以只读模式挂载(系统启动后会自动重新挂载为读写)。grub> initrd /boot/initrd.img-5.15.0-78-generic # 版本号需与内核一致
grub> boot
ls
命令逐级查看文件: grub> ls (hd0,gpt2)/boot # 确认是否存在vmlinuz和initrd文件
Kernel panic - not syncing: VFS: Unable to mount root fs
root=
参数是否正确(如root=/dev/nvme0n1p2
用于NVMe硬盘)。 grub> linux ... rd.lvm.lv=vg00/root # 根据实际情况调整
boot
前添加fsck
检查: grub> linux ... fsck.mode=force
若系统成功启动,建议更新GRUB配置以避免重复手动引导:
sudo update-grub # 生成新配置文件 sudo grub-install /dev/sda # 安装GRUB到硬盘(sda替换为实际设备)
ls
命令验证。