Pine Blog

Linux中关于grub.cfg文件的详细讲解

一、 导读

在Linux操作系统中,grub.cfg是一个至关重要的配置文件,它负责控制系统的启动过程。这个文件位于/boot/grub/目录下,由GRUB2(GRand Unified Bootloader version 2)使用来引导操作系统。本文将详细讲解grub.cfg文件的作用、结构和配置方法。
Grub
二、. grub.cfg文件的作用

grub.cfg是GRUB2的配置文件,它告诉GRUB2如何加载和引导不同的操作系统内核。当计算机启动时,BIOS或UEFI加载GRUB2,GRUB2再根据grub.cfg中的指令来引导内核,并将控制权交给内核,从而启动操作系统。

三、 grub.cfg文件的结构

grub.cfg文件通常由多个部分组成,每个部分负责不同的功能。下面是一个典型的grub.cfg文件的结构:

设置默认启动项

set default=0

设置启动等待时间

set timeout=5

加载必要的模块,如支持JPEG图片的模块

insmod jpeg

设置终端字体

if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=auto
insmod gfxterm
fi

设置背景图片

background_image (hd0,7)/boot/images/1.jpg

菜单项配置

menuentry "Ubuntu, Linux 4.15.0-20-generic" {
insmod ext2
set root=(hd0,7)
search --no-floppy --fs-uuid --set=root 44c07536c0752f74
linux /boot/vmlinuz-4.15.0-20-generic root=UUID=44c07536c0752f74 ro quiet splash
initrd /boot/initrd.img-4.15.0-20-generic
}

四、 关键配置项详解

set default=0:设置默认启动的菜单项,0表示第一个菜单项。

set timeout=5:设置启动菜单的等待时间,单位为秒。如果在指定时间内没有操作,将自动启动默认菜单项。

insmod:加载模块。例如,insmod jpeg用于加载支持JPEG图片的模块。

set gfxmode=auto:设置图形终端模式,auto表示自动检测。

background_image:设置启动菜单的背景图片。

menuentry:定义一个启动菜单项,后面跟菜单项的标题。

insmod ext2:加载ext2文件系统模块。

set root=(hd0,7):设置根分区位置,(hd0,7)表示第一个硬盘的第七个分区。

search --no-floppy --fs-uuid --set=root 44c07536c0752f74:通过文件系统UUID来设置根分区。

linux /boot/vmlinuz-4.15.0-20-generic root=UUID=44c07536c0752f74 ro quiet splash:指定内核位置及启动参数。ro表示以只读方式挂载根文件系统,quiet和splash表示静默启动并显示启动画面。

initrd /boot/initrd.img-4.15.0-20-generic:指定初始化ramdisk的位置。

五、 修改和更新grub.cfg

直接修改grub.cfg文件并不是一个好主意,因为这个文件通常由update-grub命令自动生成,该命令会合并来自/etc/grub.d/目录下的多个脚本文件生成最终的grub.cfg。如果你想修改GRUB的配置,应该编辑/etc/default/grub文件,然后运行update-grub来生成新的grub.cfg文件。

例如,如果你想更改默认的启动菜单项,可以编辑/etc/default/grub文件,将GRUB_DEFAULT的值改为相应的菜单项编号,然后运行:

sudo update-grub

六、 总结

grub.cfg是Linux系统中非常重要的启动配置文件,它决定了系统如何启动以及启动哪些内核。理解并正确配置grub.cfg对于系统管理员来说是非常重要的。通过本文的介绍,你应该对grub.cfg文件有了更深入的理解,并能更好地管理和配置你的Linux系统。

未经允许不得转载:Pine Blog » Linux中关于grub.cfg文件的详细讲解

评论 6

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. grub is very complicated. You must study hard.

    admin (2024-08-30) 回复
  2. GNU GRUB is a Multiboot boot loader. It was derived from GRUB, the GRand Unified Bootloader, which was originally designed and implemented by Erich Stefan Boleyn.

    pine (2024-08-30) 回复
  3. the GRand Unified Bootloader(全面统一引导系统)

    pine (2024-08-30) 回复
  4. Hello!
    Still Thinking About It? Your Exclusive Bonus is waiting! Sign Up Now & Get 2,500 Reward Credits & a MASSIVE $2,500 Deposit Bonus NOW! Find out more - https://discord.gg/tzkbqMGUks

    Good luck :)

    Valeron83Nic (2024-09-03) 回复
    • Really? I'll try.

      pine (2024-09-05) 回复
  5. Hello!
    Take advantage of our exclusive promotions designed to boost your gameplay. Sign up today and unlock rewards that enhance your winning potential! http://itsjackpottime.com

    Valeron83Nic (2025-01-19) 回复

Pine Blog
Anywhere, Anytime
E-mail:59054872@qq.com
苏ICP备15059480号-1