新手grub 配置介绍

最近因为工作需要接触了grub,学到了一些相关知识,所以在这里写篇博客记录一下,有不对的部分欢迎指正。

目录

grub是什么?

grub有哪些配置文件?

各配置文件区别

配置文件生成流程

配置文件有哪些内容?

/etc/default/grub

/boot/grub/grub.cfg


grub是什么?

GRUB(GRand Unified Bootloader)是一个启动加载程序,用于启动操作系统。它可以帮你选择并启动你想用的操作系统。

这个每次启动就会出现的界面就是grub。

grub有哪些配置文件?

GRUB的配置文件主要有两个/etc/default/grub/boot/grub/grub.cfg

各配置文件区别

特性/etc/default/grub/boot/grub/grub.cfg
作用支持用户自定义的GRUB设置实际的GRUB启动配置文件,由update-grub生成
使用情况用户可直接编辑自动生成的配置文件,不建议手动编辑
配置内容包含全局设置和默认选项,如默认操作系统、超时时间、内核参数等包含具体的启动条目和启动指令
生成时间用户根据需要修改,修改后需运行update-grub更新配置每次运行update-grub命令时重新生成

配置文件生成流程

  • update-grub命令首先读取/etc/default/grub中的配置选项。

  • 按顺序运行/etc/grub.d/目录中的脚本,生成各个部分的配置内容。

  • 将各个脚本生成的内容组合起来,生成最终的/boot/grub/grub.cfg文件。

配置文件有哪些内容?

/etc/default/grub

以我现在用的系统,Ubuntu2004的/etc/default/grub为例,解释一下里面有哪些设置。

# 如果你修改了这个文件,请运行 'update-grub' 命令来更新 /boot/grub/grub.cfg。
# 有关此文件中选项的完整文档,请参见:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
# GRUB_DEFAULT定义默认启动的菜单项。
# 例如:GRUB_DEFAULT=0 表示默认启动第一个菜单项。

GRUB_TIMEOUT_STYLE=hidden
# GRUB_TIMEOUT_STYLE定义GRUB菜单显示的样式。可选值包括:
# - 'menu':     显示菜单并等待超时。
# - 'countdown':显示倒计时。
# - 'hidden':   隐藏菜单并直接启动默认项。

GRUB_TIMEOUT=0
# GRUB_TIMEOUT设置GRUB菜单显示的时间(秒)。如果设为0,GRUB菜单不会显示,直接启动默认操作系统。

GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
# GRUB_DISTRIBUTOR用于定义GRUB菜单中显示的发行版名称。通常是自动检测当前的Linux发行版。
# 例如:GRUB_DISTRIBUTOR=`lsb_release -i -s` 会返回发行版的名称,如"Ubuntu"或"Debian"。

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
# GRUB_CMDLINE_LINUX_DEFAULT定义传递给Linux内核的默认命令行参数。
# "quiet"参数隐藏大部分启动信息,"splash"参数显示启动画面。

GRUB_CMDLINE_LINUX="systemd.unified_cgroup_hierarchy=1"
# GRUB_CMDLINE_LINUX定义传递给Linux内核的额外命令行参数。
# 在这个例子中,"systemd.unified_cgroup_hierarchy=1" 启用systemd的统一控制组层次结构。

我的配置文件里有6个设置,实际上常用的就前3个。

/boot/grub/grub.cfg

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

# 全局设置
if [ -s $prefix/grubenv ]; then
  load_env
fi

set default="0"
set timeout=10

# 图形模式设置
if loadfont $prefix/fonts/unicode.pf2; then
  set gfxmode=auto
  insmod efi_gop
  insmod efi_uga
  insmod gfxterm
  terminal_output gfxterm
fi

set menu_color_normal=white/black
set menu_color_highlight=black/light-gray


# 启动项Ubuntu
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os {
  recordfail
  load_video
  gfxmode $linux_gfx_mode
  insmod gzio
  insmod part_msdos
  insmod ext2
  set root='hd0,msdos1'
  if [ x$feature_platform_search_hint = xy ]; then
    search --no-floppy --fs-uuid --set=root ebacda1f-86d0-41ae-933e-39e98cd4fcf9
  else
    search --no-floppy --fs-uuid --set=root ebacda1f-86d0-41ae-933e-39e98cd4fcf9
  fi
  linux /boot/vmlinuz-5.4.0-42-generic root=UUID=ebacda1f-86d0-41ae-933e-39e98cd4fcf9 ro quiet splash
  initrd /boot/initrd.img-5.4.0-42-generic
}

# 启动项Memory test (memtest86+)
menuentry 'Memory test (memtest86+)' {
  insmod part_msdos
  insmod ext2
  set root='hd0,msdos1'
  linux16 /boot/memtest86+.bin
}

# 启动项System setup
menuentry 'System setup' {
  fwsetup
}

以这份配置文件为例,grub界面会出现3个启动项Ubuntu,Memory test (memtest86+)和System setup。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值