https://www.cnblogs.com/fluidog/p/15176726.html

1. GRUB2配置文件

GRUB2 的配置文件通常为 /boot/grub2/grub.cfg,虽然此文件很灵活,但是我们并不需要手写所有内容。可以通过程序自动生成,或是直接修改生成之后的文件。

2. 简单配置

通常情况下简单配置文件 /etc/default/grub ,然后用程序 grub-mkconfig 来产生文件 grub.cfg。
文件 /etc/default/grub 是一个 shell 脚本,通常仅是 KEY=value 这样的连续行。如果值包含空格或特殊字符,必须用 " 引用。详看 GRUB Manual: Simple configuration。其常用关键字如下:

2.1. GRUB_DEFAULT

默认菜单项。默认值为 0。可选值有:

值 说明
<number> 菜单项的数字序号,从 0 开始
saved 被 GRUB_SAVEDEFAULT 保存的上次选择项
<id> 菜单项的唯一标识(menuentry ... --id xxxx)

2.2. GRUB_TIMEOUT

自启超时时间。默认值为 5。可选值有:

值 说明
0 不等待
-1 永久等待
其他 等待对应秒

2.3. GRUB_TIMEOUT_STYLE

倒计时显示风格。默认值为 menu。可选值有:

值 说明
menu 显示菜单
countdown 显示倒计时
hidden 隐藏

2.4. GRUB_DISTRIBUTOR

被用于生成菜单项的更多信息。

2.5. GRUB_TERMINAL

设置输入、输出终端类型。可选值有:

值 说明
console 控制台
serial 串口
serial_<port> 具体串口号
gfxterm 图形模式输出
vga_text VGA 文本输出

2.6. GRUB_CMDLINE_LINUX

添加到菜单项中的启动 linux 的命令行参数。

2.7. GRUB_DISABLE_RECOVERY

设置此选项为 true,禁止产生恢复模式菜单项。

2.8. GRUB_DISABLE_SUBMENU

默认情况下,grub-mkconfig 会将低版本内核放在高版本内核子菜单里。设置此选项为 true,所有菜单项都将出现在顶层。

2.9. GRUB_DISABLE_OS_PROBER

默认情况下,grub-mkconfig 会使用外部程序 os-prober 检测其他已安装的操作系统,并产生菜单项。设置此选项为 true来禁止它。

3. 直接修改

我们也可以直接修改由 grub-mkconfig 生成之后的 grub.cfg ,其由 GRUB 内建的脚本语言组成,和 GNU bash 语法非常相似,比如定义函数、判断语句等。以下列出一些可调用的命令,详看 GRUB Manual: Commands。

注意:

  1. 命令

    其中个别命令只能在 grub.cfg 中使用,不能在命令行模式使用。比如 menuentry等。

  2. 指定设备

    定位一个文件,需要指定它所在设备分区与路径。指定设备的语法如下:

    (<device-type><device-number>,<partition-number>)

    注解:

    1. <device-type>

      设备类型,有如下几种常用类型:

      类型 说明
      hd 硬盘
      fd 3.5 英寸软盘
      nd 网络
      cd CD/DVD等
    2. <device-number>

      BIOS能够识别的设备号,下标从 0 开始计数。比如 hd0 表示主硬盘,等价于 linux 的 /dev/hda。

    3. <partition-number>

      分区号,比如 modos2 表示第 2 个分区。下标从 1 开始计数。

3.1. menuentry

定义 GRUB 的菜单项。当选中菜单项时,GRUB 将执行括号内的命令。如果最后的命令返回成功,并且内核被加载时,将自动执行 boot 命令。此命令不能在命令行模式执行。语法格式如下:

menuentry <title> [--class=<class> …] [--users=<users>]
[--unrestricted] [--hotkey=<key>] [--id=<id>] [<arg> …] { <command>; … }

注解:

  1. <title>

菜单项的显示名称。

  1. [--class=<class> …]

    将菜单项指定为某一类。可指定多个类别。不同的菜单主题可能会显示不同的菜单类别。

  2. [--users=<users>]

    授予指定用户访问菜单项的权利。

  3. [--unrestricted]

    允许所有用户访问此菜单项。

  4. [--hotkey=<key>]

    给菜单项指定一个快捷键。

  5. [--id=<id>]

    给菜单项指定一个唯一的 ASCII 字符串标识。

  6. [<arg> …]

    和 <title> 一起作为参数,传递给大括号里将要执行的命令。<title> 总是被指定为 $1。

3.2. boot

启动已加载的内核。

3.3. help

显示内建命令的帮助信息。语法格式如下:

help [<pattern> …]

注解:

  1. [<pattern> …]

    如果省略,则显示所有命令的简短描述。否则,显示指定命令的详细描述。

3.4. linux

从指定文件加载内核,并传递启动参数。任何 initrd 必须在此命令后重加载。语法格式如下:

linux <file> …

3.5. initrd

为 linux 内核加载初始的 ramdisk,并在 linux 启动的内存区域,设置恰当的参数。语法格式如下:

initrd <file>

3.6. search

查找设备。语法格式如下:

search [--file|--label|--fs-uuid] [--set [<var>]] [--no-floppy] <name>

注解:

  1. [--file|--label|--fs-uuid]

    分别表示按文件、文件系统标志、文件系统 UUID 查找设备。

  2. [--set [<var>]]

    第一个找到的设备会被设置为环境变量 var 的值。默认变量是 root。

  3. [--no-floppy]

    防止搜索软盘。

3.7. set

设置环境变量。语法格式如下:

set [<envvar>=<value>]

注解:

  1. [<envvar>=<value>]

    如果省略此参数,打印所有变量。

  2. 根目录标识

    指定根目录后,可以像 linux 的绝对路径的方式去定位一个文件。语法格式如下:

    set root=(<device-type><device-number>,<partition-number>)

3.8. cat

显示文件内容。

3.9. ls

列出设备或文件。语法格式如下:

ls [<arg> …]

注解:

  1. [<arg> …]

    如果没有参数,则显示所有 GRUB 已知的设备。否则根据参数显示设备或者文件。

3.10. lsmod和insmod

显示或插入指定的动态模块。语法格式如下:

lsmod
insmod <module>

[转帖]GRUB2 配置文件详解的更多相关文章

  1. Grub2配置详解(转)

    grub2基础教程-修订版                                      smallapple 目录 一.grub2新特性 二.grub2安装与启动 三.grub2配置文件 ...

  2. GRUB2配置详解:默认启动项,超时时间,隐藏引导菜单,配置文件详解,图形化配置

    配置文件详解: /etc/default/grub # 设定默认启动项,推荐使用数字 GRUB_DEFAULT=0 # 注释掉下面这行将会显示引导菜单 #GRUB_HIDDEN_TIMEOUT=0 # ...

  3. [转帖]nginx服务器安装及配置文件详解

    nginx服务器安装及配置文件详解 http://seanlook.com/2015/05/17/nginx-install-and-config/  发表于 2015-05-17 |  更新于: 2 ...

  4. quartz配置文件详解

    quartz配置文件详解(转载)     quartz学习总结: 一.关于job:    用Quartz的行话讲,作业是一个执行任务的简单Java类.任务可以是任何Java代码.只需你实现org.qu ...

  5. WebConfig配置文件详解

    今天看到博客园一位朋友整理的一个WebConfig配置文件详解,觉得不错,转载一下: <?xml version="1.0"?> <!--注意: 除了手动编辑此文 ...

  6. tomcat配置文件详解

    Tomcat系列之服务器的安装与配置以及各组件详解   tomcat 配置文件详解

  7. ubuntu nginx 安装以及配置文件详解

    1.到nginx官网下载源码包.最好下载稳定版本,nginx官网http://www.nginx.org/ 2.安装nginx依赖包运行命令: sudo apt-get install libssl- ...

  8. Spring配置文件详解 – applicationContext.xml文件路径

    Spring配置文件详解 – applicationContext.xml文件路径 Java编程                 spring的配置文件applicationContext.xml的默 ...

  9. spring配置文件详解--真的蛮详细

    spring配置文件详解--真的蛮详细   转自: http://book.51cto.com/art/201004/193743.htm 此处详细的为我们讲解了spring2.5的实现原理,感觉非常 ...

  10. net-snmp配置文件详解

    net-snmp配置文件详解 net-snmp的配置文件是有一定的层次结构的,配置起来也很方便.网上找了很多资料,大概把这个配置文件的各个信息搞懂了一点.其实在net-snmp的EXAMPLE.con ...

随机推荐

  1. c#5.0/6.0/7.0

    发现很多.net 程序员水平一直停留在c#3.0阶段,现在来整理下c#5.0/6.0/7.0新语法新特性. 人生需要不断充电,不断去get新技能而不是固步自封,对于我自己而言,虽不盲目追求新技术,但每 ...

  2. ElasticSearch的简单api介绍

    1:ElasticSearch是什么? Elasticsearch 是一个分布式的免费开源搜索和分析引擎 适用于包括文本.数字.地理空间.结构化和非结构化数据等在内的所有类型的数据 Elasticse ...

  3. javacv实现屏幕录制(一)

    javacv实现屏幕录制(一) javacv从入门到入土系列,发现了个好玩的东西,视频处理,于是我想搞个屏幕录屏,我百度了一下,copy那些代码我没有实现过,那些代码也没有说明,只好去官网看文档找资料 ...

  4. maven 实现pb的实时编译

    <properties> <protobuf.version>3.15.7</protobuf.version></properties> <ex ...

  5. CG行业云渲染服务的演进之路

    摘要:影视动画.特效制作等行业渲染需求量增多,4K/6K以及各高分辨率会陆续成为主流,本地算力与存储资源已无法满足现有任务量.而随着大环境的演变,CG行业发展已进入发展快车道.来自赞奇科技的CEO金伟 ...

  6. 玩转LiteOS组件:Openexif

    摘要:OpenExif是用于访问Exif格式的JPEG图像文件的面向对象的库. 本文分享自华为云社区<LiteOS组件尝鲜-玩转Openexif>,作者: W922 . 基本信息 Exif ...

  7. 2023年 CISO 需要高度关注的任务和趋势

    在过去的几年中,企业一直忙于应对远程办公模式下的安全要求.展望2023年,疫情局面将与过去3年大不相同.根据目前的趋势,未来一年的网络攻击的数量和严重程度都将增加,这将对各规模企业,尤其是未做好准备的 ...

  8. 火山引擎DataLeap如何解决SLA治理难题(三): 平台架构与未来展望

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 平台架构总结 火山引擎 DataLeap SLA平台整体主要分为基础组件.规划式治理服务.响应式治理服务三大块,系 ...

  9. SQL Server 还原 备份集中的数据库备份与现有的 'XXX' 数据库不同

    1. 介质集有 2 个介质簇,但只提供了 1 个.必须提供所有成员. 因为在备份时有两个路径,所以备份文件会放在两个文件里面,所以在还原的时候只要把两个都添加了就可以还原了. 2. 备份集中的数据库备 ...

  10. 携程OceanBase开源实践——索引统计功能实现

    [作者] 施纬,携程数据库研发工程师,主要负责数据库运维和内核研发. 姜贤富,携程高级数据库研发工程师,主要负责携程数据库监控运维及工具研发,拥有十年运维经验. [概述] 自从2021年OceanBa ...