Linux服务器GRUB配置文件介绍

在 Linux 服务器上,GRUB(GRand Unified Bootloader)是最常用的引导加载程序,它负责在系统启动时加载操作系统内核,并提供一个菜单界面,让用户选择启动的操作系统或内核版本。GRUB 配置文件是控制启动过程的关键文件,通过它,你可以设置内核启动参数、修改引导选项、调整引导顺序等。

GRUB 配置文件概述

GRUB 配置文件通常分为两个主要部分:

  1. GRUB 主配置文件(通常为 /etc/default/grub
  2. GRUB 引导菜单配置文件(通常为 /boot/grub2/grub.cfg 或 /boot/grub/grub.cfg
1. /etc/default/grub — 主配置文件

这个文件是 GRUB 配置的主要文件,里面包含了用户自定义的参数和选项。该文件由 GRUB 的安装和更新程序(如 update-grubgrub2-mkconfig)生成,但用户可以手动编辑这个文件来调整 GRUB 的行为。文件中的每一项设置都对应着 GRUB 启动过程中的某些特性。

常见的配置项包括:

  • GRUB_DEFAULT
    设置默认启动的条目。可以是菜单项的编号(从 0 开始计数),或者使用 "saved" 表示启动上次选择的条目。
    示例:

    GRUB_DEFAULT=0 # 启动菜单中的第一个操作系统 GRUB_DEFAULT=saved # 启动上次启动的内核

  • GRUB_TIMEOUT
    设置 GRUB 启动菜单的显示时间,单位为秒。如果设置为 0,GRUB 将立即启动默认项;如果为 -1,则会等待直到用户选择。
    示例:

    GRUB_TIMEOUT=5 # 显示菜单 5 秒

  • GRUB_DISTRIBUTOR
    这项用于设置发行版的名称,通常不需要修改,除非你有特定的需求。
    示例:

    GRUB_DISTRIBUTOR="Ubuntu"

  • GRUB_CMDLINE_LINUX
    这是一个内核启动参数,用于传递内核启动时所需要的参数,通常用于调整系统行为或加载模块。
    示例:

    GRUB_CMDLINE_LINUX="quiet splash"

  • GRUB_DISABLE_RECOVERY
    设置是否禁用恢复模式菜单项。默认情况下,GRUB 会提供一个恢复模式选项。
    示例:

    GRUB_DISABLE_RECOVERY="true" # 禁用恢复模式

  • GRUB_TERMINAL
    设置终端类型,通常设置为 consolegfxterm,后者支持图形界面。
    示例:

    GRUB_TERMINAL=console

  • GRUB_GFXMODE
    设置引导菜单的分辨率,如果支持图形模式的话。
    示例:

    GRUB_GFXMODE=1920x1080

  • GRUB_HIDDEN_TIMEOUT
    控制 GRUB 菜单是否隐藏。如果设置为非零值,菜单会在此时间段内显示,然后自动启动默认操作系统。
    示例:

    GRUB_HIDDEN_TIMEOUT=0

2. /boot/grub2/grub.cfg 或 /boot/grub/grub.cfg — 引导菜单配置文件

grub.cfg 是 GRUB 实际读取的配置文件,包含了 GRUB 启动菜单项以及相关的启动项和内核信息。该文件一般由 GRUB 工具(如 grub2-mkconfigupdate-grub)自动生成,不建议手动编辑。它会根据 /etc/default/grub 文件中的设置,以及系统中安装的操作系统和内核版本来动态生成。

GRUB 配置文件中通常包括以下部分:

  • 菜单项(Menu entries)
    这些是 GRUB 显示在启动菜单上的条目。每个菜单项对应一个内核启动项,可能包括 Linux 内核、恢复模式或其他操作系统。
    示例:

    menuentry 'Ubuntu, with Linux 5.15.0-56-generic' --class ubuntu --class gnu-linux --class gnu --class os {
        recordfail
        load_video
        gfxmode $linux_gfx_mode
        set root='hd0,msdos1'
        linux /boot/vmlinuz-5.15.0-56-generic root=UUID=1234abcd-5678-efgh-9012-ijklmnopqrs ro quiet splash
        initrd /boot/initrd.img-5.15.0-56-generic
    }

  • Linux 内核条目(Linux kernel entries)
    这类条目指定了启动 Linux 系统的内核路径,以及相应的初始化程序(initrd)路径。

    linux /boot/vmlinuz-5.15.0-56-generic root=UUID=abcd1234 ro quiet splash
    initrd /boot/initrd.img-5.15.0-56-generic

  • 操作系统条目(Other OS entries)
    如果你的系统有多个操作系统(例如双启动配置),GRUB 会在此文件中自动列出这些操作系统的启动项。
    示例:

    menuentry 'Windows 10' {
        set root=(hd0,msdos1)
        chainloader +1
    }

  • 高级选项(Advanced options)
    对于每个操作系统,GRUB 还会列出其对应的高级选项,如恢复模式或内核的不同版本。
    示例:

    menuentry 'Ubuntu, with Linux 5.15.0-56-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
        linux /boot/vmlinuz-5.15.0-56-generic root=UUID=abcd1234 ro recovery nomodeset
        initrd /boot/initrd.img-5.15.0-56-generic
    }

GRUB 配置文件的更新

  1. 更新 GRUB 配置文件
    当你修改了 /etc/default/grub 文件后,或者添加/删除了内核、操作系统时,你需要运行以下命令来更新 GRUB 配置:

    • 在基于 GRUB 2 的系统中(如 CentOS 7 及更高版本、Ubuntu 16.04 及更高版本):
      sudo grub2-mkconfig -o /boot/grub2/grub.cfg  # BIOS 系统
      sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg  # UEFI 系统

  2. 重新安装 GRUB 引导加载程序
    如果你修改了 GRUB 配置后需要重新安装 GRUB 引导加载程序(例如在更换硬盘或操作系统时),你可以运行:

    sudo grub2-install /dev/sda # 替换为你的引导磁盘

总结

GRUB 配置文件在 Linux 系统启动过程中起着至关重要的作用。/etc/default/grub 文件主要包含了默认的 GRUB 设置,允许用户调整启动菜单、内核参数等。而 /boot/grub/grub.cfg 文件则是由系统自动生成的启动菜单文件,包含了具体的内核和操作系统条目。你可以通过编辑 /etc/default/grub 来调整 GRUB 设置,然后使用工具更新配置文件和引导程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值