ESP-SR语音识别终极指南:快速上手嵌入式语音交互的完整教程
2026/7/2 7:48:14
GRUB(GRand Unified Bootloader)是Linux系统中广泛使用的引导加载程序,它允许您在启动时选择不同的操作系统或内核版本。下面我将为您详细介绍GRUB命令的用法。
GRUB主要有三种工作模式:
c键进入,可以进行更底层的操作。在GRUB中,设备的命名方式与Linux系统中有所不同:
(hdX),其中X是硬盘序号,从0开始计数。例如,第一块硬盘是(hd0)。(hdX,Y),其中Y是分区序号。需要注意的是,主分区的编号为0-3,逻辑分区从编号4开始。以下表格汇总了各类别中的关键命令及其功能,帮助您快速了解:
| 类别 | 命令 | 功能说明 |
|---|---|---|
| 系统引导核心命令 | kernel | 指定要加载的Linux内核文件路径,并可传递启动参数(如root=指定根分区)。 |
initrd | 指定与内核配合使用的初始内存盘(initramfs)文件,用于加载启动所需的核心模块。 | |
boot | 执行引导,启动之前通过kernel和initrd命令设置好的系统。 | |
chainloader | 加载另一个引导加载程序(如Windows的启动管理器),通常后跟+1表示加载指定分区的第一个扇区。 | |
| 设备与文件操作 | root | 设置GRUB的根设备(即包含内核和initrd文件的分区),并尝试挂载该分区。 |
rootnoverify | 设置GRUB的根设备,但不尝试挂载该分区。常用于引导Windows等非Unix系统。 | |
ls | 列出所有设备或指定设备上的文件和分区,用于在命令行下探索文件结构。 | |
find | 在所有分区上搜索指定的文件,帮助定位内核所在位置,例如find /boot/vmlinuz。 | |
| 菜单与界面配置 | title | 在配置文件中定义一个新的启动菜单项。 |
default | 在配置文件中设置默认启动的菜单项序号(从0开始)。 | |
timeout | 设置菜单界面自动启动默认项的等待时间(秒)。 | |
color | 设置菜单界面的前景色和背景色。 | |
| 高级与故障排除 | displaymem | 显示当前系统的内存分布信息,有助于硬件诊断。 |
map | 虚拟交换两个磁盘的设备标识。可用于从第二块硬盘启动Windows系统(如map (hd0) (hd1))。 | |
makeactive | 将当前根设备设置为活动分区(通常仅对主分区有效)。 |
手动启动Linux系统
当GRUB菜单丢失或配置错误时,可以在命令行模式下手动启动:
grub>ls(hd0,0)/boot/# 尝试列出文件,确认内核位置grub>setroot=(hd0,1)# 假设内核在(hd0,1)分区grub>linux /boot/vmlinuz-5.15.0-91-genericroot=/dev/sda1 ro# 加载内核,指定Linux根分区grub>initrd /boot/initrd.img-5.15.0-91-generic# 加载初始内存盘grub>boot# 启动系统关键点:root=/dev/sda1参数中的设备名是给Linux内核看的,需遵循Linux的命名规则(如sda1, nvme0n1p2等),这与GRUB的设备名(hd0,1)不同。
配置引导Windows系统
在/boot/grub/grub.cfg配置文件中,添加类似以下条目来引导Windows:
menuentry"Windows 11"{setroot=(hd0,1)# 假设Windows引导文件在第一个分区chainloader +1# 将控制权交给该分区的第一个扇区}恢复被破坏的GRUB
如果MBR中的GRUB被破坏,可以使用Linux救援光盘或Live USB启动,然后执行类似以下命令重装:
sh# grub-install /dev/sda # 将GRUB安装到第一块硬盘的MBRinstall命令:install命令会将GRUB直接安装到磁盘的主引导记录(MBR),此操作会覆盖已有的引导程序。/boot/grub/grub.cfg。不建议直接手动编辑此文件,而应通过修改/etc/default/grub和/etc/grub.d/目录下的脚本,然后运行update-grub(或grub2-mkconfig)命令来重新生成。