上一篇
如何在GRUB中手动启动Linux?
- 行业动态
- 2025-04-18
- 10
在GRUB中手动启动Linux需进入编辑模式,指定内核文件(vmlinuz)和initramfs镜像路径,使用
linux
命令加载内核并设置根分区,
initrd
加载初始化内存盘,最后执行
boot
启动,适用于引导配置损坏时临时修复系统。
操作前提
已进入GRUB命令行界面
- 开机时按住
Shift
(BIOS系统)或Esc
(UEFI系统) - 出现GRUB菜单时按
C
键进入命令行
- 开机时按住
基础信息确认
- 硬盘分区结构(如
/boot
是否独立分区) - Linux系统根分区位置(如
/dev/sda2
)
- 硬盘分区结构(如
手动启动步骤
探测存储设备
grub> ls
输出示例:
(hd0) (hd0,gpt1) (hd0,gpt2) (hd1,gpt1)
hdX
表示第X块物理硬盘(从0开始计数)gptY
表示GPT分区表中的第Y个分区(MBR分区显示为msdosY
)
定位Linux内核文件
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 自动补全 |
注意事项
- 不同发行版路径差异:
- Debian/Ubuntu:内核文件通常在
/boot/vmlinuz-*
- RHEL/CentOS:可能存储在
/boot/vmlinuz-*
或/boot/efi/EFI/redhat/
- Debian/Ubuntu:内核文件通常在
- UEFI系统可能需要先加载
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。