Linux Grub引导加载程序设置及美化

neevop 十月 27, 2022

linux 定义启动顺序

grub简介

Linux 有三个主要的引导加载程序LILO、GRUB 和 GRUB2。GRUB2 是 Linux 发行版中最新的主要引导加载程序。GRUB2是 默认的 Ubuntu 引导加载程序,但 LILO 在 Linux 中仍然存在。GRUB 是 Grand Unified Boot Loader 的首字母缩写词,是引导设备的主要和最关键的组件。GRUB 也是 Linux 最流行的引导加载程序。

已ubuntu为例,为 Ubuntu 选择**高级选项后,将显示一个 Ubuntu GRUB 菜单。在菜单中,您应该会看到您选择的各种内核选项。(恢复模式):**从系统中的任何故障中恢复内核。

image-20221027195220760

如果直接选择ubuntu,则默认加载第一个显示的内核,也就是系统装安装的最高版本内核。

image-20221027194405796

多内核启动顺序

查看linux系统的内核启动顺序

$ awk -F\' '/menuentry / {print $2}' /boot/grub/grub.cfg
0   Ubuntu
1>0 Ubuntu, with Linux 5.15.0-50-generic
1>1 Ubuntu, with Linux 5.15.0-50-generic (recovery mode)
1>2 Ubuntu, with Linux 5.4.0-125-generic
1>3 Ubuntu, with Linux 5.4.0-125-generic (recovery mode)
1>4 Ubuntu, with Linux 5.4.0-42-generic
1>5 Ubuntu, with Linux 5.4.0-42-generic (recovery mode)
1>6 Ubuntu, with Linux 5.4.0-26-generic
1>7 Ubuntu, with Linux 5.4.0-26-generic (recovery mode)

设置启动顺序和grub停靠时间

$ cat /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT="1>4"
# GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_iommu=on"
GRUB_CMDLINE_LINUX=""

选取指定内核启动

GRUB_DEFAULT="1>4"

默认启动方式

GRUB_DEFAULT=0

设置grub永不超时,一直停留等待

# GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=-1

设置不显示grub选择界面

GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0

在 GRUB 配置文件中保存更改后,请确保运行该update-grub命令。该update-grub命令采用更改后的配置文件并将其应用于系统。对于redhat系列系统操作参考

# for centos7
sudo grub2-mkconfig -o /boot/grub2/grub.cfg

花里胡哨

您的 GRUB 配置不需要是平淡无奇的。您可以通过向 GRUB 菜单添加背景图像来为 GRUB 增添一点风味。GRUB_BACKGROUND您可以使用该选项将图片设置为 GRUB 的背景。

# Sytax: GRUB_BACKGROUND=/path-to-image
GRUB_BACKGROUND=/home/ubuntu/shanky.jpeg

Ubuntu GRUB 的最大特点之一是它允许您在设备启动时在 Windows 和 Linux 之间进行选择:也称为双启动。双引导允许您在一台设备中同时使用 Linux 和 Windows。由于自动操作系统检测存在潜在的安全问题,自动添加额外操作系统菜单条目的默认脚本已被禁用。如果您知道安装了哪些操作系统,您可以通过以下命令重新启用此功能。

GRUB_DEFAULT=4

如果你觉得grub界面太过简陋,放在开机启动的位置辣眼睛,那么grub2-themes这个项目可以帮你完美解决这个问题。通过安装不同的定制主题可以让GRUB界面展示出华丽的一面。

preview

扩展阅读

  1. https://adamtheautomator.com/ubuntu-grub/#:~:text=GRUB%20is%20an%20acronym%20for,more%20about%20GRUB's%20booting%20process.
  2. https://askubuntu.com/questions/599208/how-to-list-grubs-menuentries-in-command-line
  3. https://github.com/vinceliuice/grub2-themes