Linux 用 GRUB 命令行 来找设备和分区

本文介绍了GRUB如何查找和识别硬盘设备,以及通过UUID定位内核位置。在GRUB命令行中,使用`ls`命令列出设备和分区,`ls-l`获取UUID,而`ls`配合路径可以查看文件系统内容。此外,`set`命令用于查看GRUB的变量,如`prefix`指向GRUB配置。

GRUB 有它自己 找设备的策略。第一个 被找到的 硬盘 叫 hd0,随后的叫 hd1 等等。设备的名字会改变,但是 GRUB 可以根据UUID 找到内核所在的位置。

列出设备

在 boot 菜单中,点击C 进入 GRUB 命令行,我们就能体验 GRUB 访问 设备。

f05001

 

键入 ls。显示器会 显示出 GRUB 认识的 设备。

 

这有一个 磁盘设备(hd0), 然后有一个分区(hd0, msdos1)。如果 这有swap partition 也会被显示出来。msdos 表示 磁盘包含了一个 MBR分区表。

ls -l 可以获取 分区 文件系统 的 uuids:
 

这个磁盘 在第一个 MBR 分区 用的是 ext2/3/4 文件系统。系统会展示 swap partition。

找文件

GRUB 的文件系统 导航 能力。打印出 内核所在的位置

 

可以展示 root 设备上的文件 和目录。

  

两次 ls 的功能不同。一个是列出 设备 和分区表;另一个是 文件系统 的内容。


可以 进一步 往下看

 

set 命令 可以查看 GRUB 的变量

prefix 指向 GRUB 的配置

 

<think>我们正在讨论GRUB命令行相关的使用指南问题解决方案。根据用户的问题,他/她想了解GRUB命令行的使用或解决问题。结合引用内容,我们可以提供以下指导:参考引用[1]中提供了在GRUB救援模式下的基本操作步骤,包括列出磁盘分区、设置环境变量、加载模块等。引用[2]提到了修改grub配置文件的位置。引用[4]则涉及重装或移除GRUB2的注意事项。因此,我们可以将回答分为以下几个部分:1.GRUB命令行基础:介绍GRUB命令行的进入方式基本命令。2.常见问题解决方案:包括修复GRUB引导、修改配置等。3.注意事项:操作GRUB命令行时的风险提示。同时,根据要求,我们需要生成相关问题。注意:由于引用内容有限,我们主要基于引用[1][2]的内容,结合GRUB的通用知识来回答。</think>### GRUB命令行使用指南与问题解决方案 #### **一、GRUB命令行基础** 1. **进入GRUB命令行** - 开机时按住 `Shift` 或 `Esc` 键(部分系统需在BIOS/UEFI启动阶段快速按键) - 出现菜单时按 `c` 键进入命令行模式 - 救援模式提示符为 `grub rescue>`(需手动加载模块) 2. **常用命令** ```bash ls # 列出所有磁盘分区,如 (hd0,gpt1) ls (hdX,Y)/ # 查看分区内容(X=磁盘号,Y=分区号) set root=(hdX,Y) # 设置根分区(指向/boot所在分区) insmod normal # 加载标准模块 normal # 启动图形菜单 linux /vmlinuz root=/dev/sdXY ro # 手动加载内核 initrd /initrd.img # 加载初始化内存盘 boot # 启动系统 ``` --- #### **二、典型问题解决方案** ##### **场景1:GRUB救援模式修复(引用[1])** ```bash grub rescue> ls # 列出磁盘分区,如 (hd0,gpt2) grub rescue> ls (hd0,gpt2)/boot # 验证是否包含grub目录 grub rescue> set root=(hd0,gpt2) # 指向Ubuntu根分区或/boot分区 grub rescue> set prefix=(hd0,gpt2)/boot/grub grub rescue> insmod normal # 若失败则用完整路径:insmod /boot/grub/i386-pc/normal.mod grub rescue> normal # 进入GRUB菜单 ``` > **关键说明**: > - 若 `/boot` 为独立分区,路径应为 `(hdX,Y)/grub` > - MSDOS分区表用 `msdos1`,GPT分区表用 `gpt1`[^1] ##### **场景2:修改GRUB配置(引用[2])** 1. 进入系统后编辑配置文件: ```bash sudo nano /etc/default/grub # 修改默认参数(如GRUB_TIMEOUT) sudo nano /boot/grub/grub.cfg # 直接编辑主配置(不推荐) sudo update-grub # 应用更改(安全方式) ``` 2. **重要配置位置**: `/boot/grub/grub.cfg`(主配置) | `/etc/grub.d/`(脚本目录) | `/etc/default/grub`(环境变量)[^2] ##### **场景3:GRUB重装/卸载(引用[4])** ```bash # 重装GRUB到磁盘MBR(示例:第一块磁盘sda) sudo grub-install /dev/sda # 彻底卸载GRUB(谨慎操作!) sudo apt purge grub* shim-signed sudo dd if=/dev/zero of=/dev/sda bs=446 count=1 # 清除MBR ``` > **警告**:卸载可能致系统无法启动,需备妥Live USB修复工具[^4]。 --- #### **三、注意事项** 1. **分区标识风险** - 修改 `grub.cfg` 时需确认磁盘UUID(用 `blkid` 查看),避免因磁盘顺序变化导致启动失败[^2]。 2. **救援模式依赖** - 若 `insmod normal` 报错,需手动指定模块路径: ```bash insmod (hdX,Y)/boot/grub/i386-pc/ext2.mod # 先加载文件系统模块 ``` 3. **备份优先** - 关键操作前备份分区表:`sudo sfdisk -d /dev/sda > sda.bak` - 备份GRUB配置:`cp /boot/grub/grub.cfg ~/grub.cfg.bak` --- ### 相关问题 1. 如何修复因GRUB损坏导致的"error: unknown filesystem"? 2. 修改GRUB默认启动项的操作步骤是什么? 3. 在UEFI系统中GRUB命令行的使用有何不同? 4. 如何为GRUB菜单添加自定义内核参数? > 引用来源: > [^1]: GRUB救援模式基础操作与分区标识规则 > [^2]: GRUB配置文件路径与UUID修改注意事项 > [^4]: GRUB重装/卸载的风险控制与MBR清理方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值