linux
命令加载内核并设置根分区,
initrd
加载初始化内存盘,最后执行
boot
启动,适用于引导配置损坏时临时修复系统。
已进入GRUB命令行界面
Shift
(BIOS系统)或 Esc
(UEFI系统)C
键进入命令行基础信息确认
/boot
是否独立分区)/dev/sda2
)grub> ls
输出示例:
(hd0) (hd0,gpt1) (hd0,gpt2) (hd1,gpt1)
hdX
表示第X块物理硬盘(从0开始计数)gptY
表示GPT分区表中的第Y个分区(MBR分区显示为msdosY
)grub> ls (hd0,gpt2)/boot
检查输出中是否存在以下文件:
vmlinuz-xxx
(Linux内核文件)initrd.img-xxx
或 initramfs-xxx
(初始化内存盘)若/boot为独立分区,则需定位到该分区,ls (hd0,gpt1)/grub
grub> set root=(hd0,gpt2) # 指定Linux根分区 grub> linux /boot/vmlinuz-5.15.0-78-generic root=/dev/sda2 grub> initrd /boot/initrd.img-5.15.0-78-generic grub> boot
参数解析:
root=/dev/sda2
:指定系统根分区设备路径Tab
键补全)成功进入系统后立即执行:
# 重新生成GRUB配置 sudo update-grub # 修复引导至硬盘(以/dev/sda为例) sudo grub-install /dev/sda
现象 | 解决方案 |
---|---|
error: file '/boot/vmlinuz...' not found |
确认分区号及文件路径,检查是否需加载/boot 独立分区 |
error: disk 'hdX,gptY' not found |
使用ls 命令重新验证分区编号 |
进入系统后黑屏 | 在linux 命令行添加nomodeset 参数 |
忘记内核版本号 | 尝试/boot/vmlinuz 按Tab 自动补全 |
/boot/vmlinuz-*
/boot/vmlinuz-*
或/boot/efi/EFI/redhat/
efi
模块: grub> insmod efi_gop grub> insmod efi_uga
引用说明:
本文操作基于GRUB 2.06官方手册与Linux Filesystem Hierarchy Standard,关键步骤验证于Ubuntu 22.04 LTS及CentOS Stream 9环境,建议高风险操作前备份数据,更多技术细节可参考GRUB官方文档及对应发行版Wiki。