news 2026/4/18 14:38:10

Linux命令-grub命令(引导加载程序)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux命令-grub命令(引导加载程序)

🧭 说明

GRUB(GRand Unified Bootloader)是Linux系统中广泛使用的引导加载程序,它允许您在启动时选择不同的操作系统或内核版本。下面我将为您详细介绍GRUB命令的用法。

💻 GRUB的工作模式与基本概念

GRUB主要有三种工作模式:

  • 菜单模式:系统启动时显示的图形化选择菜单。
  • 命令行模式:在菜单界面按c键进入,可以进行更底层的操作。
  • 救援模式:当GRUB阶段2引导加载程序无法正常加载时使用。

在GRUB中,设备的命名方式与Linux系统中有所不同:

  • 硬盘被表示为(hdX),其中X是硬盘序号,从0开始计数。例如,第一块硬盘是(hd0)
  • 分区表示为(hdX,Y),其中Y是分区序号。需要注意的是,主分区的编号为0-3,逻辑分区从编号4开始

🛠️ 常用GRUB命令详解

以下表格汇总了各类别中的关键命令及其功能,帮助您快速了解:

类别命令功能说明
系统引导核心命令kernel指定要加载的Linux内核文件路径,并可传递启动参数(如root=指定根分区)。
initrd指定与内核配合使用的初始内存盘(initramfs)文件,用于加载启动所需的核心模块。
boot执行引导,启动之前通过kernelinitrd命令设置好的系统。
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将当前根设备设置为活动分区(通常仅对主分区有效)。

🚀 实战应用示例

  1. 手动启动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)不同。

  2. 配置引导Windows系统
    /boot/grub/grub.cfg配置文件中,添加类似以下条目来引导Windows:

    menuentry"Windows 11"{setroot=(hd0,1)# 假设Windows引导文件在第一个分区chainloader +1# 将控制权交给该分区的第一个扇区}
  3. 恢复被破坏的GRUB
    如果MBR中的GRUB被破坏,可以使用Linux救援光盘或Live USB启动,然后执行类似以下命令重装:

    sh# grub-install /dev/sda # 将GRUB安装到第一块硬盘的MBR

⚠️ 重要注意事项

  • 谨慎使用install命令install命令会将GRUB直接安装到磁盘的主引导记录(MBR),此操作会覆盖已有的引导程序
  • 配置文件路径:GRUB 2的主要配置文件通常是/boot/grub/grub.cfg。不建议直接手动编辑此文件,而应通过修改/etc/default/grub/etc/grub.d/目录下的脚本,然后运行update-grub(或grub2-mkconfig)命令来重新生成。
  • 善用Tab键补全:在GRUB命令行界面,Tab键可以补全命令、设备名和文件名,能有效提高输入准确性并帮助探索文件结构。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 7:57:13

Kotaemon如何保证服务连续性?容灾备份机制说明

Kotaemon如何保证服务连续性?容灾备份机制说明 在企业级AI系统日益普及的今天,一个智能客服突然“失联”,或者用户正聊到一半对话历史全部清空——这类问题早已不是技术团队可以忽视的小概率事件。尤其当大模型被嵌入核心业务流程后&#xff…

作者头像 李华
网站建设 2026/4/18 6:59:59

**基于MB-TaylorFormer高分辨率特征提取的YOLOv11改进实战指南**

购买即可解锁300+YOLO优化文章,并且还有海量深度学习复现项目,价格仅需两杯奶茶的钱,别人有的本专栏也有! 文章目录 **基于MB-TaylorFormer高分辨率特征提取的YOLOv11改进实战指南** **一、高分辨率特征提取的技术瓶颈分析** **二、MB-TaylorFormer核心架构解析** **三、Y…

作者头像 李华
网站建设 2026/4/18 11:59:37

Unity 之 物理引擎中三种刚体力施加方式详解

Unity 之 物理引擎中三种刚体力施加方式详解1. 概述2. 核心概念对比3. 方式一:直接设置速度 (velocity v3)3.1 原理3.2 关键特性3.3 使用场景与示例3.4 注意事项4. 方式二:施加力 (AddForce)4.1 原理4.2 ForceMode 详解4.3 使用场景与示例5. 方式三&…

作者头像 李华
网站建设 2026/4/17 18:01:42

51、版本控制系统与文档管理综合指南

版本控制系统与文档管理综合指南 在软件开发和文档管理过程中,版本控制是一项至关重要的工作。它能够帮助我们记录文件的变更历史,方便团队协作和项目管理。本文将详细介绍几种常见的版本控制系统,包括CVS、Subversion、RCS,同时也会提及一些文字处理器的版本管理功能,以…

作者头像 李华
网站建设 2026/4/18 4:28:30

RTP协议中RFC 3550 与 RFC 3551 的关系

RFC 3551 是 RFC 3550 的直接补充和具体化文档,它们构成了RTP协议的核心标准对。 其中RFC 3550是RTP整体协议族的框架规范,RFC 3551是RTP协议的具体实现标准,开发中两者都需要参考。 RFC 3550 与 RFC 3551 的关系 ┌────────────…

作者头像 李华