[转帖]GRUB2 配置文件详解
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。
注意:
命令
其中个别命令只能在
grub.cfg中使用,不能在命令行模式使用。比如menuentry等。指定设备
定位一个文件,需要指定它所在设备分区与路径。指定设备的语法如下:
(<device-type><device-number>,<partition-number>)注解:
<device-type>
设备类型,有如下几种常用类型:
类型 说明 hd 硬盘 fd 3.5 英寸软盘 nd 网络 cd CD/DVD等 <device-number>
BIOS能够识别的设备号,下标从
0开始计数。比如hd0表示主硬盘,等价于 linux 的/dev/hda。<partition-number>
分区号,比如
modos2表示第2个分区。下标从1开始计数。
3.1. menuentry
定义 GRUB 的菜单项。当选中菜单项时,GRUB 将执行括号内的命令。如果最后的命令返回成功,并且内核被加载时,将自动执行 boot 命令。此命令不能在命令行模式执行。语法格式如下:
menuentry <title> [--class=<class> …] [--users=<users>]
[--unrestricted] [--hotkey=<key>] [--id=<id>] [<arg> …] { <command>; … }
注解:
- <title>
菜单项的显示名称。
[--class=<class> …]
将菜单项指定为某一类。可指定多个类别。不同的菜单主题可能会显示不同的菜单类别。
[--users=<users>]
授予指定用户访问菜单项的权利。
[--unrestricted]
允许所有用户访问此菜单项。
[--hotkey=<key>]
给菜单项指定一个快捷键。
[--id=<id>]
给菜单项指定一个唯一的
ASCII字符串标识。[<arg> …]
和 <title> 一起作为参数,传递给大括号里将要执行的命令。<title> 总是被指定为
$1。
3.2. boot
启动已加载的内核。
3.3. help
显示内建命令的帮助信息。语法格式如下:
help [<pattern> …]
注解:
[<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>
注解:
[--file|--label|--fs-uuid]
分别表示按文件、文件系统标志、文件系统
UUID查找设备。[--set [<var>]]
第一个找到的设备会被设置为环境变量
var的值。默认变量是root。[--no-floppy]
防止搜索软盘。
3.7. set
设置环境变量。语法格式如下:
set [<envvar>=<value>]
注解:
[<envvar>=<value>]
如果省略此参数,打印所有变量。
根目录标识
指定根目录后,可以像
linux的绝对路径的方式去定位一个文件。语法格式如下:set root=(<device-type><device-number>,<partition-number>)
3.8. cat
显示文件内容。
3.9. ls
列出设备或文件。语法格式如下:
ls [<arg> …]
注解:
[<arg> …]
如果没有参数,则显示所有 GRUB 已知的设备。否则根据参数显示设备或者文件。
3.10. lsmod和insmod
显示或插入指定的动态模块。语法格式如下:
lsmod
insmod <module>
[转帖]GRUB2 配置文件详解的更多相关文章
- Grub2配置详解(转)
grub2基础教程-修订版 smallapple 目录 一.grub2新特性 二.grub2安装与启动 三.grub2配置文件 ...
- GRUB2配置详解:默认启动项,超时时间,隐藏引导菜单,配置文件详解,图形化配置
配置文件详解: /etc/default/grub # 设定默认启动项,推荐使用数字 GRUB_DEFAULT=0 # 注释掉下面这行将会显示引导菜单 #GRUB_HIDDEN_TIMEOUT=0 # ...
- [转帖]nginx服务器安装及配置文件详解
nginx服务器安装及配置文件详解 http://seanlook.com/2015/05/17/nginx-install-and-config/ 发表于 2015-05-17 | 更新于: 2 ...
- quartz配置文件详解
quartz配置文件详解(转载) quartz学习总结: 一.关于job: 用Quartz的行话讲,作业是一个执行任务的简单Java类.任务可以是任何Java代码.只需你实现org.qu ...
- WebConfig配置文件详解
今天看到博客园一位朋友整理的一个WebConfig配置文件详解,觉得不错,转载一下: <?xml version="1.0"?> <!--注意: 除了手动编辑此文 ...
- tomcat配置文件详解
Tomcat系列之服务器的安装与配置以及各组件详解 tomcat 配置文件详解
- ubuntu nginx 安装以及配置文件详解
1.到nginx官网下载源码包.最好下载稳定版本,nginx官网http://www.nginx.org/ 2.安装nginx依赖包运行命令: sudo apt-get install libssl- ...
- Spring配置文件详解 – applicationContext.xml文件路径
Spring配置文件详解 – applicationContext.xml文件路径 Java编程 spring的配置文件applicationContext.xml的默 ...
- spring配置文件详解--真的蛮详细
spring配置文件详解--真的蛮详细 转自: http://book.51cto.com/art/201004/193743.htm 此处详细的为我们讲解了spring2.5的实现原理,感觉非常 ...
- net-snmp配置文件详解
net-snmp配置文件详解 net-snmp的配置文件是有一定的层次结构的,配置起来也很方便.网上找了很多资料,大概把这个配置文件的各个信息搞懂了一点.其实在net-snmp的EXAMPLE.con ...
随机推荐
- 2.elasticsearch中的mapping
mapping 顾名思义,代表了映射关系.是文档中字段和数据类型的映射关系 为什么要了解mapping 虽然elasticsearch中已尽有的动态mapping(Dynamic Mapping),而 ...
- 文心一言 VS 讯飞星火 VS chatgpt (31)-- 算法导论5.2 3题
三.利用指示器随机变量来计算掷n 个骰子之和的期望值. 文心一言: 为了计算掷n个骰子之和的期望值,我们需要先了解一个重要的概念:指示器随机变量. 指示器随机变量是一种特殊的随机变量,它只有两个取值: ...
- 借问变量何处存,牧童笑称用指针,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang类型指针(Pointer)的使用EP05
指针是指什么?指针是存储另一个变量的内存地址的变量.变量是一种使用方便的占位符,用于引用计算机内存地址,一个指针变量可以指向任何一个值的内存地址它指向那个值的内存地址.类比的话,指针就是书籍中的目录, ...
- Python实用技巧:将 Excel转为PDF
将Excel文件转换为PDF可以方便储存表格数据,此外在打印或共享文档时也能确保表格样式布局等在不同设备和操作系统上保持一致.今天给大家分享一个使用第三方Python库Spire.XLS for Py ...
- 听6位专家畅谈AI大模型落地实践:场景和人才是关键
本文分享自华为云社区<听6位专家畅谈AI大模型落地实践:场景和人才是关键>,作者:华为云社区精选. 随着人工智能技术的不断突破,越来越多的行业开始应用AI技术来提高效率.降低成本.改善用户 ...
- 华为云云容器引擎CCE产品文档带来4个升级,降低使用难度
本文分享自华为云社区<华为云云容器引擎CCE产品文档优化升级!>,作者: 云容器大未来 . 云原生产品技术栈庞大,需要用户对容器.Kubernetes等核心技术都有扎实的理解和掌握:同时问 ...
- 当GaussDB遇上了毕昇编译器
摘要:当应用软件及硬件确定后,编译器对应用的自动优化将成为应用性能的关键. 从应用优化说起 一个应用的优化通常有架构级优化.模块级优化和函数级优化,高性能作为云数据库GaussDB主打特性之一,其在这 ...
- 云原生开发者须具备的1+N技能,开启第二曲线
摘要:云的大环境下,意味以云为中心的快速应用开发能力将成为"胜负手".在现如今如此复杂的外部环境,且高速发展的情况下,为了不重蹈覆辙,必须需要开发者的第二曲线来破局! 随着云计算的 ...
- 没想到,学棋五年的我竟然输给了昇腾CANN!
摘要:整整两天,上百场对弈,TA竟然未尝一败,真是让人拍案叫绝. 近日,一位神秘"人物"亮相华为昇腾CANN技术开放日现场,引得众人簇拥,吸粉无数.从现场AI棋艺大战的画面中我们可 ...
- storybook插件说明: integrations与addons推荐
官方的: https://storybook.js.org/integrations/ https://github.com/storybookjs/storybook/blob/master/ADD ...