当前位置:首页 > 行业动态 > 正文

如何在GRUB中手动启动Linux?

在GRUB中手动启动Linux需进入编辑模式,指定内核文件(vmlinuz)和initramfs镜像路径,使用 linux命令加载内核并设置根分区, initrd加载初始化内存盘,最后执行 boot启动,适用于引导配置损坏时临时修复系统。

操作前提

  1. 已进入GRUB命令行界面

    • 开机时按住 Shift(BIOS系统)或 Esc(UEFI系统)
    • 出现GRUB菜单时按 C 键进入命令行
  2. 基础信息确认

    • 硬盘分区结构(如 /boot 是否独立分区)
    • Linux系统根分区位置(如 /dev/sda2

手动启动步骤

探测存储设备

grub> ls

输出示例:

如何在GRUB中手动启动Linux?

(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-xxxinitramfs-xxx(初始化内存盘)

若/boot为独立分区,则需定位到该分区,ls (hd0,gpt1)/grub

如何在GRUB中手动启动Linux?

设置根分区与加载内核

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中手动启动Linux?

# 重新生成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/vmlinuzTab自动补全

注意事项

  1. 不同发行版路径差异:
    • Debian/Ubuntu:内核文件通常在/boot/vmlinuz-*
    • RHEL/CentOS:可能存储在/boot/vmlinuz-*/boot/efi/EFI/redhat/
  2. 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。