统信服务器操作系统【Grub配置】介绍

全文导读:本文主要从Grub启动过程、引导方式、配置文件以及基本操作等方面展开介绍

功能概述

GNU GRUB(GRand Unified Bootloader 简称“GRUB”)是一个来自 GNU 项目的 多操作系统启动程序。GRUB 是多启动规范的实现,它允许用户可以在计算机内同时拥有多个 操作系统,并在计算机启动时选择希望运行的操作系统。GRUB 可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。
grub(GrandUnified Boot Loader)是有名的引导内核程序(另外一款比较有名的是 LILO,嵌入式环境使用 U-boot、bootloader),它支持多种硬盘分区类型加载 (FAT,ext2,ext3,ext4,minix,FFS 等),支持多系统引导等

功能介绍

1、GRUB 启动过程

首先使用 GRUB 的引导过程需要 GRUB 将自身加载到内存中。这是通过以下步 骤完成的:
首先使用 GRUB 的引导过程需要 GRUB 将自身加载到内存中。这是通过以下步 骤完成的:
- 第 1 阶段引导加载程序由 BIOS 加载到内存中。此引导加载程序也称为主引 导加载程序。它存在于主引导记录中 512 字节或更少的磁盘空间中。如果需 要,主引导加载程序可以加载阶段 1.5 或阶段 2 引导加载程序。
- 如果需要,阶段 1 引导加载程序将阶段 1.5 引导加载程序加载到内存中。在 某些情况下,这可能是必要的,因为某些硬件在进入第 2 阶段加载器之前需要 中间步骤。
- 辅助引导加载程序也称为第 2 阶段引导加载程序,它可以由主引导加载程序 加载到内存中。 GRUB 菜单和命令环境的显示是辅助引导加载程序执行的功 能。这允许用户查看系统参数并选择要引导的操作系统。
- 操作系统或内核由辅助引导加载程序加载到内存中。之后,机器的控制权转移 到操作系统。
- 操作系统或内核由辅助引导加载程序加载到内存中。之后,机器的控制权转移 到操作系统。
grub 有三个接口:菜单界面、菜单入口编辑界面、命令行界面。
菜单界面:GRUB 由菜单界面中的安装程序配置。它是可用的默认界面。它包含按名称排 序的操作系统或内核列表。可以使用箭头键选择特定的操作系统或内核,并可以使用回车 键启动它。(如下图)
GRUB 由菜单界面
菜单入口编辑界面:引导加载程序菜单中的 e 键用于访问菜单项编辑器。在那里显示特定 菜单条目的所有 GRUB 命令,并且可以在加载操作系统之前更改这些命令。
菜单入口编辑界面
命令行界面:此接口是最基本的 GRUB 接口,但它为用户授予最大的控制权。使用命令行 界面,可以通过键入命令然后按 Enter 键来执行任何命令。此界面还具有一些高级 shell 功能。
命令行界面

2、GRUB 引导方式

grub 引导方式: legacy 和 UEFI。
区别:
UEFI:新模式,其启动顺序:开机→UEFI 初始化→引导操作系统→进入操作系统启动。速 度相对 lagacy 模式要更快。UEFI 只支持 64 位的操作系统,UEFI 模式下的系统会有两 个很小的分区,一个叫 ESP(EFI 系统分区),另一个 MSR(微软保留分区,通常为 128MB).MSR 是窗口要求的分区.ESP 对 UEFI 启动模式很重要,UEFI 的引导程序是后 缀名为.efi 的文件存放在 ESP 分区中的,ESP 分区采用 fat32 文件系统。此外,可能还存在一个小分区叫 WinRe Tools,这个是在Win8 中的恢复分区。体积也很小。
UEFI 启动模式:(GPT 分区表格式+ UEFI 启动模式+ x64 的系统)
Legacy:传统 BIOS 传输模式启动顺序:开机→BIOS 初始化→BIOS 自检→引导操作系统→进入系统。传统硬盘引导记录为 MBR 格式,MBR 无法支持超过 2T 的硬盘。但拥有最好的兼容性。
Legacy 启动模式:(MBR 主引导记录分区格式+ Legacy 启动模式)
总结:UEFI 是新式的 BIOS ,Legacy 是传统 BIOS 。在 UEFI 模式下安装的系统,只能 用 UEFI 模式引导;同理,如果在 Legacy 模式下安装的系统,也只能在 Legacy 模式下 进系统。UEFI 只支持 64 位系统且磁盘分区必须为 GPT 模式,传统 BIOS 使用 INT13 中断读取磁盘,每次只能读 64KB ,非常低效,而 UEFI 每次可以读 1MB ,载入更快。
在 Legacy 和 UEFI 下的 MBR 和 GPT 的区别:
MBR :主引导记录(Master Boot Record ,缩写:MBR ),又叫做主引导扇区,是 计算机开机后访问硬盘时所必须要读取的首个扇区。
GPT:GUID 分区表,磁盘驱动器容量可以大得多,大到操作系统和文件系统都没法支 持。它同时还支持几乎无限个分区数量,限制只在于操作系统,Windows 支持最多 128 个 GPT 分区。

3、GRUB 配置文件详解

/etc/default/grub 为配置文件
配置文件
GRUB_TIMEOUT :这个键的值决定了显示 GRUB 选择菜单的时间长度。GRUB 提供 了同时保存多个安装内核并在启动时使用 GRUB 菜单在其中选择的功能。这个键的默认值 是 5 秒,但我通常修改为 10 秒使得有更多时间查看选项并作出选择。
GRUB_DISTRIBUTOR: 这个键定义了一个从 /etc/system-release 文件中提取发行 版本的 sed 表达式。这个信息用于生成出现在 GRUB 菜单中的每个内核发布版的文本名 称,例如 “Fedora” 等。由于不同发行版之间 system-release 文件结构的差异,在你的 系统中这个 sed 表达式可能有些不同。
GRUB_DEFAULT: 决定默认引导哪个内核。如果是 saved,这代表最新内核。这里的 其它选项如果是数字则代表了 grub.cfg 中列表的索引。使用索引号 3,就会总是加载列 表中的第四个内核,即使安装了一个新内核之后也是。因此使用索引数字的话,在安装一 个新内核后会加载不同的内核。要确保引导特定内核版本的唯一方法是设置 GRUB_DEFAULT 的值为想要内核的名称,例 4.19.0-91...uelc20.x86_64。
GRUB_SAVEDEFAULT: 通常,grub 默认文件中不会指定这个选项。当选择不同内核 进行引导时,正常操作下该内核只会启动一次。默认内核不会改变。当其设置为 true 并 和 GRUB_DEFAULT=saved 一起使用时,这个选项会保存一个不同内核作为默认值。当 选择不同内核进行引导时会发生这种情况。
GRUB_DISABLE_SUBMENU: 一些人可能会希望为 GRUB 菜单创建一个内核的层级 菜单结构。这个键和 grub.cfg 中一些额外内核配置允许创建这样的层级结构。例如,主菜单中可能有 production 和 test 子菜单,每个子菜单中包括了一些合适的内核。设置 它为 false 可以启用子菜单。
GRUB_CMDLINE_LINUX_DEFAULT: 属性名:内核启动参数的默认值 #值说明: quiet splash 为不显示启动信息,安静的启动,如值为空则显示启动信息。
GRUB_TERMINAL_OUTPUT: 一些环境下可能需要或者必要将输出重定向到一个不同 的显示控制台或者终端。默认情况下是把输出发送到默认终端,通常 console 等价于 Intel 系列个人电脑的标准输出。另一个有用的选择是在使用串行终端或者 Integrated Lights Out (ILO) 终端连接的数据中心或者实验室环境中指定 serial。选项包含 ‘console’(PC BIOS 及 EFI 控制台),‘serial’(串行终端),‘gfxterm’(图形模式输 出),‘ofconsole’(开放固件控制台),或‘vga_text’(VGA 文本输出,主要用在 Coreboot)。
GRUB_TERMINAL_INPUT: 和 GRUB_TERMINAL_OUTPUT 类似,可能需要或者必 要重定向输入为串行终端或者 ILO 设备、而不是标准键盘输入。
GRUB_CMDLINE_LINUX: 这个键包括了在启动时会传递给内核的命令行参数。注意 这些参数会被添加到 grub.cfg 所有已安装内核的内核行。这意味着所有已安装的内核在 启动时都会有相同的参数。我通常删除 rhgb 和 quiet 参数以便我可以看到引导和启动时 内核和 systemd 输出的所有内核信息消息。
GRUB_DISABLE_RECOVERY: 当这个键的值被设置为 false,GRUB 菜单中就会为 每个已安装的内核创建一个恢复条目。当设置为 true 时就不会创建任何恢复条目。但不 管这个设置怎样,最后的内核条目总是一个 rescue 选项。
GRUB_BACKGROUND: 添加开机启动图像
GRUB_THEME:添加开机启动主题
GRUB_GFXMODE:定义图像分辨率
DEEPIN_GFXMODE_NOT_SUPPORTED:定义输出分辨率
LANG=C :定义引导使用的语言环境
GRUB_ENABLE_BLSCFG: 是否启动传统风格 true 为不启用,false 为启 动。

4、GRUB基本操作

4.1、生成 grub.cfg
重新生成 grub.cfg 文件
# grub2-mkconf -o /boot/grub2/grub.cfg
4.2、修改默认启动内核
第一种:命令方式,此方式保存配置为 grub 内的 saved。
查看当前启动的内核
#   grub2-editenv list
查看当前启动的内核
查看所有内核
#   grubby --info ALL
查看所有内核
修改使用的内核
#   grub2-set-default             (查询到的内核 id)
修改使用的内核
第二种修改 grub 文件,此方式修改请忽略第一种的配置,此方式为系统引导时候,按照需要 加载的内核序号来加载内核。将不再读取 saved。
修改 grub 文件
修改此处可以使用默认内核,这里面有两个内核: 4.19.0- 91.82.82.uelc20.x86_64和4.19.0- 91.82.92.uelc20.x86_64,按照 grub.cfg 配置,0 是最新安装的内核, 这里面填写的 1,所以默认启动 82 的内核。
4.3、查看当前使用的内核
#   name -a
查看当前使用的内核
4.4、查看内核信息
grubby --info ALL
查看内核信息
4.5. 生成 rescue
创建新的 rescue
kernel-install add $(uname -r) /boot/vmlinuz-$(uname -r)
创建新的rescue
简便方式:   yum reinstall kernel-core 即可解决
4.6、没有 grub 手写引导启动系统
测试如下:里面所写的内容需要对应系统引导路径(此处仅做示例)
对应系统引导路径
然后进入系统,生成 grub.cfg,参考4.1章节
4.7、救援模式修复 grub
通过救援镜像进入救援模式
进入救援模式
然后输入两次 exit 即可正常进入系统
4.8、修改默认启动级别
修改系统默认启动级别。
查看当前系统启动模式:
systemctl get-default
设置系统为图形启动
systemctl set-default graphical.target
设置系统为图形启动
开机引导时修改启动级别: 引导菜单修改如下地方。
修改启动级别
系统启动级别:
0 - 系统停机状态
1 - 单用户工作状态
2 - 多用户状态(没有 NFS)
3 - 多用户状态(有 NFS)
4 - 系统未使用,留给用户
5 - 图形界面
6 - 系统正常关闭并重新启动

 ©统信软件技术有限公司。访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。除此以外,将本网站任何内容或服务进行转载,须备注:该文档出自【faq.uniontech.com】统信软件知识分享平台。否则统信软件将追究相关版权责任。

2023-02-08
6 4