GRUB 2 命令行实战5个核心命令从 UEFI Shell 手动引导 Ubuntu 系统当你的Ubuntu系统突然无法启动屏幕上只留下冰冷的UEFI Shell或GRUB Rescue提示符时别急着重装系统。掌握GRUB 2命令行工具你完全可以在没有图形界面的情况下像外科手术般精准地手动引导系统。本文将带你深入GRUB 2的底层机制通过5个关键命令的组合使用解决各种引导故障场景。1. 理解GRUB 2引导流程与故障场景GRUB 2GRand Unified Bootloader version 2是现代Linux系统的默认引导加载程序它负责在系统启动时加载内核和初始化内存盘。与传统BIOS不同UEFI环境下的引导过程更为复杂这也导致了更多潜在的故障点。常见的引导失败场景包括UEFI Shell直接启动系统无法找到有效的引导加载程序GRUB Rescue模式GRUB无法定位其核心模块或配置文件黑屏或无响应内核加载失败或初始化内存盘损坏文件系统错误根分区损坏或UUID变更在Intel Atom Z3735等低功耗设备上问题可能更复杂。这些设备通常只支持32位UEFI固件却需要引导64位操作系统导致标准Ubuntu安装介质无法直接工作。手动引导的关键在于理解GRUB 2的三个阶段引导加载阶段由UEFI固件执行GRUB的EFI应用程序核心映像阶段加载GRUB核心模块和基本功能配置执行阶段读取grub.cfg并显示引导菜单当自动引导失败时我们需要在命令行手动完成这些步骤。下面这个表格对比了自动引导与手动引导的关键差异引导方式所需文件用户交互适用场景自动引导grub.cfg无系统正常时手动引导内核与initrd命令行输入系统故障时2. 准备工作定位关键分区与文件在开始手动引导前我们需要先找到几个关键组件的位置Linux内核通常位于/boot/vmlinuz-版本号initrd镜像通常位于/boot/initrd.img-版本号根分区包含系统文件的挂载点进入GRUB命令行的方法在引导时按住Shift键传统BIOS或Esc键UEFI出现GRUB菜单时按c键或者在UEFI Shell中直接输入grubx64.efi2.1 使用ls命令探索磁盘结构GRUB的ls命令可以列出所有可识别的设备和分区ls典型输出示例(hd0) (hd0,gpt1) (hd0,gpt2) (hd1) (hd1,msdos1) (hd1,msdos2)这里需要注意hd0表示第一个硬盘hd1是第二个以此类推gpt表示GPT分区表msdos表示MBR分区表数字表示分区号从1开始对于eMMC存储的设备如Z3735平板可能会显示为(hd0,msdos1)或(hd0,gpt1)形式。而SD卡或USB设备通常会被识别为(hd1)等后续编号。2.2 定位Linux分区通过以下命令检查各分区内容寻找包含/boot目录的分区ls (hd0,gpt1)/ ls (hd0,gpt2)/boot成功找到内核的分区会显示类似内容vmlinuz-5.15.0-56-generic initrd.img-5.15.0-56-generic grub/对于不同存储设备根分区的设备节点名称也不同SATA硬盘/dev/sda2eMMC存储/dev/mmcblk0p2NVMe SSD/dev/nvme0n1p2提示在不确定分区时可以尝试所有可能的组合。GRUB支持Tab键补全输入部分路径后按Tab可以显示可用选项。3. 手动引导五步法找到必要文件后按照以下五个步骤完成引导3.1 设置根设备set root(hd0,gpt2)这个命令告诉GRUB哪个分区包含内核和initrd。这里的(hd0,gpt2)应替换为你实际找到的分区。3.2 加载Linux内核linux /boot/vmlinuz-5.15.0-56-generic root/dev/mmcblk0p2参数说明第一个参数是内核路径相对于上一步设置的rootroot指定根文件系统设备可添加其他内核参数如ro只读挂载、quiet减少输出等对于不同设备类型root参数需要相应调整SATA硬盘root/dev/sda2eMMCroot/dev/mmcblk0p2LVM卷root/dev/mapper/vgubuntu-root3.3 加载initrd镜像initrd /boot/initrd.img-5.15.0-56-genericinitrd初始内存磁盘包含启动早期所需的驱动和工具。其版本号必须与内核一致。3.4 启动系统boot执行此命令后GRUB会将控制权交给Linux内核开始系统启动过程。3.5 故障排查如果启动失败常见问题及解决方法内核panic检查root参数是否正确确认文件系统无损坏无法挂载根文件系统确认root设备路径尝试添加rootfstypeext4等参数卡在initramfs可能是initrd损坏或缺少关键驱动4. 针对不同硬件设备的调整4.1 Intel Atom Z3735等32位UEFI设备这类设备需要特殊处理使用32位GRUB EFI加载器bootia32.efi手动引导命令与常规系统相同安装系统后需修复引导sudo apt-get install grub-efi-ia32-bin sudo grub-install --targeti386-efi --efi-directory/boot/efi --boot-directory/boot4.2 多硬盘系统当系统有多个磁盘时GRUB的设备命名可能变化。可以通过以下命令确认ls -l /dev/disk/by-id/然后在GRUB命令中使用UUID指定根分区linux /boot/vmlinuz-... rootUUID5e7e4f8d-3b12-4a8c-9c5d-1e1f3a7b8c9d5. 永久修复GRUB引导成功进入系统后需要永久修复引导问题sudo update-grub sudo grub-install /dev/sda对于EFI系统sudo grub-install --targetx86_64-efi --efi-directory/boot/efi --bootloader-idubuntu6. 高级技巧与自动化脚本对于经常需要手动引导的用户可以创建自定义GRUB菜单项。编辑/etc/grub.d/40_custommenuentry Manual Boot { set root(hd0,gpt2) linux /boot/vmlinuz-... root/dev/mmcblk0p2 initrd /boot/initrd.img-... }然后更新GRUB配置sudo update-grub7. 安全注意事项手动引导时需注意避免随意修改内核参数特别是init参数不要使用未知来源的内核和initrd在公共计算机上输入命令时注意隐私保护掌握这些GRUB命令行技巧后你将能够应对绝大多数Linux引导故障无需依赖Live CD或重装系统。记住每个成功的系统修复都是对技术理解的深化而这些经验最终会让你成为真正的Linux问题解决专家。
GRUB 2 命令行实战:5个命令从 UEFI Shell 手动引导 Ubuntu 系统
发布时间:2026/7/8 21:41:49
GRUB 2 命令行实战5个核心命令从 UEFI Shell 手动引导 Ubuntu 系统当你的Ubuntu系统突然无法启动屏幕上只留下冰冷的UEFI Shell或GRUB Rescue提示符时别急着重装系统。掌握GRUB 2命令行工具你完全可以在没有图形界面的情况下像外科手术般精准地手动引导系统。本文将带你深入GRUB 2的底层机制通过5个关键命令的组合使用解决各种引导故障场景。1. 理解GRUB 2引导流程与故障场景GRUB 2GRand Unified Bootloader version 2是现代Linux系统的默认引导加载程序它负责在系统启动时加载内核和初始化内存盘。与传统BIOS不同UEFI环境下的引导过程更为复杂这也导致了更多潜在的故障点。常见的引导失败场景包括UEFI Shell直接启动系统无法找到有效的引导加载程序GRUB Rescue模式GRUB无法定位其核心模块或配置文件黑屏或无响应内核加载失败或初始化内存盘损坏文件系统错误根分区损坏或UUID变更在Intel Atom Z3735等低功耗设备上问题可能更复杂。这些设备通常只支持32位UEFI固件却需要引导64位操作系统导致标准Ubuntu安装介质无法直接工作。手动引导的关键在于理解GRUB 2的三个阶段引导加载阶段由UEFI固件执行GRUB的EFI应用程序核心映像阶段加载GRUB核心模块和基本功能配置执行阶段读取grub.cfg并显示引导菜单当自动引导失败时我们需要在命令行手动完成这些步骤。下面这个表格对比了自动引导与手动引导的关键差异引导方式所需文件用户交互适用场景自动引导grub.cfg无系统正常时手动引导内核与initrd命令行输入系统故障时2. 准备工作定位关键分区与文件在开始手动引导前我们需要先找到几个关键组件的位置Linux内核通常位于/boot/vmlinuz-版本号initrd镜像通常位于/boot/initrd.img-版本号根分区包含系统文件的挂载点进入GRUB命令行的方法在引导时按住Shift键传统BIOS或Esc键UEFI出现GRUB菜单时按c键或者在UEFI Shell中直接输入grubx64.efi2.1 使用ls命令探索磁盘结构GRUB的ls命令可以列出所有可识别的设备和分区ls典型输出示例(hd0) (hd0,gpt1) (hd0,gpt2) (hd1) (hd1,msdos1) (hd1,msdos2)这里需要注意hd0表示第一个硬盘hd1是第二个以此类推gpt表示GPT分区表msdos表示MBR分区表数字表示分区号从1开始对于eMMC存储的设备如Z3735平板可能会显示为(hd0,msdos1)或(hd0,gpt1)形式。而SD卡或USB设备通常会被识别为(hd1)等后续编号。2.2 定位Linux分区通过以下命令检查各分区内容寻找包含/boot目录的分区ls (hd0,gpt1)/ ls (hd0,gpt2)/boot成功找到内核的分区会显示类似内容vmlinuz-5.15.0-56-generic initrd.img-5.15.0-56-generic grub/对于不同存储设备根分区的设备节点名称也不同SATA硬盘/dev/sda2eMMC存储/dev/mmcblk0p2NVMe SSD/dev/nvme0n1p2提示在不确定分区时可以尝试所有可能的组合。GRUB支持Tab键补全输入部分路径后按Tab可以显示可用选项。3. 手动引导五步法找到必要文件后按照以下五个步骤完成引导3.1 设置根设备set root(hd0,gpt2)这个命令告诉GRUB哪个分区包含内核和initrd。这里的(hd0,gpt2)应替换为你实际找到的分区。3.2 加载Linux内核linux /boot/vmlinuz-5.15.0-56-generic root/dev/mmcblk0p2参数说明第一个参数是内核路径相对于上一步设置的rootroot指定根文件系统设备可添加其他内核参数如ro只读挂载、quiet减少输出等对于不同设备类型root参数需要相应调整SATA硬盘root/dev/sda2eMMCroot/dev/mmcblk0p2LVM卷root/dev/mapper/vgubuntu-root3.3 加载initrd镜像initrd /boot/initrd.img-5.15.0-56-genericinitrd初始内存磁盘包含启动早期所需的驱动和工具。其版本号必须与内核一致。3.4 启动系统boot执行此命令后GRUB会将控制权交给Linux内核开始系统启动过程。3.5 故障排查如果启动失败常见问题及解决方法内核panic检查root参数是否正确确认文件系统无损坏无法挂载根文件系统确认root设备路径尝试添加rootfstypeext4等参数卡在initramfs可能是initrd损坏或缺少关键驱动4. 针对不同硬件设备的调整4.1 Intel Atom Z3735等32位UEFI设备这类设备需要特殊处理使用32位GRUB EFI加载器bootia32.efi手动引导命令与常规系统相同安装系统后需修复引导sudo apt-get install grub-efi-ia32-bin sudo grub-install --targeti386-efi --efi-directory/boot/efi --boot-directory/boot4.2 多硬盘系统当系统有多个磁盘时GRUB的设备命名可能变化。可以通过以下命令确认ls -l /dev/disk/by-id/然后在GRUB命令中使用UUID指定根分区linux /boot/vmlinuz-... rootUUID5e7e4f8d-3b12-4a8c-9c5d-1e1f3a7b8c9d5. 永久修复GRUB引导成功进入系统后需要永久修复引导问题sudo update-grub sudo grub-install /dev/sda对于EFI系统sudo grub-install --targetx86_64-efi --efi-directory/boot/efi --bootloader-idubuntu6. 高级技巧与自动化脚本对于经常需要手动引导的用户可以创建自定义GRUB菜单项。编辑/etc/grub.d/40_custommenuentry Manual Boot { set root(hd0,gpt2) linux /boot/vmlinuz-... root/dev/mmcblk0p2 initrd /boot/initrd.img-... }然后更新GRUB配置sudo update-grub7. 安全注意事项手动引导时需注意避免随意修改内核参数特别是init参数不要使用未知来源的内核和initrd在公共计算机上输入命令时注意隐私保护掌握这些GRUB命令行技巧后你将能够应对绝大多数Linux引导故障无需依赖Live CD或重装系统。记住每个成功的系统修复都是对技术理解的深化而这些经验最终会让你成为真正的Linux问题解决专家。