Linux的GRUB2启动文件修改

对于装了 KALI 和 Fedora 等 Linux 的同学来说,通过默认的启动器 GRUB2 总是有一些不尽人意的地方,比如 timeout 过长或者过短,启动界面难看。甚至有多于的内核启动项。

首先大家需要了解四个位置:

/boot/grub2/grub.cfg
grub.cfg 的启动配置文件,属于 LEGACY 引导模式

/boot/efi/EFI/fedora/grub.cfg
grub.cfg 的启动配置文件,属于 UEFI 引导模式

/etc/default/grub
grub 的默认配置文件,可以修改一些常见的参数

/etc/grub.d
这个文件夹下面是一些生成 grub.cfg 文件的可执行脚本,可以修改

现在开始的话就是开始了解怎么通过设置,修改出自己满意的 GRUB 启动器来。

grub2 的原理是这样:首先通过修改自定义参数,也就是/etc/default/grub 和/etc/grub.d/文件,然后通过终端的 grub2-mkconfig grub.cfg 文件目录 这个命令读取/etc/default/grub 和/etc/grub.d/文件生成新的 grub.cfg 启动文件。

下面开始说一下/etc/default/grub 这个文件的参数:

GRUB_DEFAULT=0
设置默认启动项,按 menuentry 顺序如果要默认从第四个菜单项启动,数字改为 3,若改为 saved,则默认为上次启动项

GRUB_HIDDEN_TIMEOUT=0
前面有#注释将会显示引导菜单,没有#注释将会不显示引导菜单

GRUB_HIDDEN_TIMEOUT_QUIET=true
黑屏,并且不显示 GRUB_HIDDEN_TIMEOUT 过程中的倒计时

GRUB_TIMEOUT=”10”
设置进入默认启动项的等候时间,默认值 10 秒,按自己需要修改,单位为秒改改为零和负值为无限等待操作

GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
获得发行版名称(比如 Ubuntu, Debian)

GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”
选择启动的环境,“quiet splash”为图像界面,“text”为文本界面

GRUB_CMDLINE_LINUX=”noresume”
手动添加内核启动参数,比如 acpi=off noapic 等可在这里添加。)

GRUB_TERMINAL=console
设置是否使用图形介面。#注释掉以后(使用图形界面),前面没有#注释(仅使用控制台终端,不使用图形介面) )

GRUB_GFXMODE=640x480
设定图形介面分辨率,如不使用默认。把前面#去掉,把分辨率改为 800x600 或 1024x768

GRUB_DISABLE_LINUX_RECOVERY=”true”
设定是否创建修复模式菜单项,前面有#注释(建立修复模式).前面没有#注释(不建立修复模式)

GRUB_INIT_TUNE=”480 440 1”
当 GRUB 菜单出现时发出鸣音提醒,户无法看到屏幕特别有用,默认关闭,在此处不能设置开启

GRUB_THEME=”主题文件 theme.txt 绝对地址”

这个参数用于设置,图形化界面下的启动界面主题。

说完了参数,现在开始要说一下实战教程了,大家可以通过上述的参数任意修改。

现在说一下主题文件的加载吧。首先需要下载主题,放到一个自己能知道的位置。

然后打开终端,vim /etc/default/grub

可以看到,现在我们设置来倒计时为 5 秒,启动分辨率为 1920x1080,默认启动上次的系统,然后加载了**/boot/grub2/themes/Aurora-Penguinis-GRUB2/theme.txt**这个位置的一个主题文件,并且启用来图形化引导界面。

这里要说一下,如果要启用图形化的引导界面,我需要删掉或者注释掉:GRUB_TERMINAL=console这条参数。

然后我们用grub2-mkconfig -o这条命令生成新的启动文件。

注意事项

1.假如你加载了主题文件,执行命令以后需要看到 Found theme 这条提示,这才表示我们的主题文件成功启用了。

2.如果你是用 LEGACY 引导模式的话,请执行:grub2-mkconfig -o /boot/grub2/grub.cfg 这条生成命令。

如果你是用 UEFI 引导模式的话,请执行:grub2-mkconfig -o /boot/grub2/grub.cfg 这条命令。

没有出现错误提示以后,重启就能看到效果了:


现在开始讲引导菜单栏的名称修改,以及双系统的引导修复。比如你是Fedora+Windows 10

首先引导菜单栏名称修改:

menuentry 标签后的‘xxxxx’ 就是引导菜单栏的名称,而且他们是有层次关系

menuentry1标签在menuentry2上面,那么启动 GRUB2 图形化/终端的时候menuentry1标签中的选项就会在menuentry2上面。所以想修改启动项的排序关系,也可以通过修改menuentry标签,双系统的引导修复,在于修改 /boot 下的 grub.cfg文件。

注意

LEGACY 和 UEFI 是不共用一个 cfg 文件的。这点在文章的前面就已经指明了,修改对应的文件很关键。

照例VIM /boot/efi/EFI/fedora/grub.cfg (我是 Fedora Linux,并且 UEFI 引导)

然后在第一个menuentry标签的上或者下 ,添加

1
2
3
4
menuentry 'win10_pro_x64' {
set root=(hd0,1)
chainloader+1
}

这里假设的是 Win10 作业系统。 这里需要注意的是 set root 这条参数,menuentry 这条参数没有什么好讲的,就是一个选项名称。

set root(hd0,1)

hd0: 硬盘名称,一般 linux 下都是以 sda sdb sdc 命名

1 : 作业系统所在分区区号

如果不知道系统所在的分区,请终端执行: fdisk -l (sudo 或者 root 运行)

评论