Linux如何配置GRUB引导菜单及启动参数?

Linux系统中,GRUB(Grand Unified Bootloader)是广泛使用的引导加载程序,负责在系统启动时加载内核和初始化内存盘(initrd),并允许用户选择启动的操作系统或启动模式,正确配置GRUB对于系统启动的稳定性和灵活性至关重要,以下将详细介绍Linux环境下GRUB的配置步骤和注意事项。

linux如何配置grub

GRUB配置基础

GRUB的配置主要涉及核心配置文件grub.cfg,该文件通常位于/boot/grub//boot/grub2/目录下(不同发行版路径可能略有差异),直接手动编辑grub.cfg虽然可行,但容易因语法错误导致启动失败,推荐通过grub-mkconfig工具自动生成配置文件,再手动调整特定参数。

配置步骤详解

备份原始配置文件

修改前务必备份原始grub.cfg,避免配置错误导致无法启动。

sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg.bak

生成基础配置文件

使用grub-mkconfig工具扫描系统中的内核和启动项,生成新的grub.cfg,不同发行版的命令略有不同:

  • Ubuntu/Debiansudo update-grub(内部调用grub-mkconfig -o /boot/grub/grub.cfg
  • CentOS/RHELsudo grub2-mkconfig -o /boot/grub2/grub.cfg
  • Arch Linuxsudo grub-mkconfig -o /boot/grub/grub.cfg

该命令会自动检测已安装的Linux内核、Windows等其他操作系统,并生成对应的启动菜单项。

手动调整核心参数

自动生成的配置可能需要个性化调整,可通过编辑/etc/default/grub文件实现(此文件是grub-mkconfig的配置源,修改后需重新运行grub-mkconfig生效),常见参数包括:

linux如何配置grub

  • GRUB_DEFAULT:设置默认启动项,可设为0(第一个菜单项)、saved(上次选择的项)或具体菜单项名称(如”Ubuntu, Linux 5.15.0-52-generic”)。
  • GRUB_TIMEOUT:菜单显示超时时间(秒),设为-1表示等待用户手动选择,0则直接启动默认项。
  • GRUB_CMDLINE_LINUX_DEFAULT:默认内核启动参数,如quiet splash(简化启动信息)、nomodeset(禁用显卡驱动,解决黑屏问题)等。
  • GRUB_DISABLE_OS_PROBER:是否禁用自动检测其他操作系统,设为true时仅显示Linux内核项。

示例:编辑/etc/default/grub,修改默认启动项和超时时间:

sudo nano /etc/default/grub
# 修改以下两行
GRUB_DEFAULT=saved
GRUB_TIMEOUT=10
GRUB_CMDLINE_LINUX_DEFAULT="quiet nomodeset"

保存后执行sudo update-grub(或对应发行版的命令)使配置生效。

添加自定义启动项

若需添加非自动检测的启动项(如救援模式、其他内核版本或操作系统),可直接在grub.cfg中添加menuentry块,添加一个救援模式启动项:

sudo nano /boot/grub/grub.cfg
# 在文件末尾添加以下内容
menuentry "Rescue Mode" {
    insmod ext2
    set root='(hd0,msdos1)'  # 根据实际分区调整,如/dev/sda1
    linux /boot/vmlinuz-5.15.0-52-generic rescue
    initrd /boot/initrd.img-5.15.0-52-generic
}

注意:root参数需指向/boot分区所在的设备(可通过lsblkfdisk -l查看分区信息),linuxinitrd路径需与实际文件一致。

安装GRUB到引导设备

配置完成后,需将GRUB安装到硬盘的引导记录(MBR或GPT分区表),确保下次启动时能正确加载,命令格式为grub-install [设备]

linux如何配置grub

# 安装到/dev/sda(第一块硬盘)
sudo grub-install /dev/sda

若使用UEFI启动,需指定ESP分区(如/dev/sda2),并添加--target=x86_64-efi参数:

sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB

不同发行版GRUB配置差异

发行版 配置文件路径 生成配置命令 安装命令
Ubuntu/Debian /boot/grub/grub.cfg sudo update-grub sudo grub-install /dev/sda
CentOS/RHEL /boot/grub2/grub.cfg sudo grub2-mkconfig -o /boot/grub2/grub.cfg sudo grub2-install /dev/sda
Arch Linux /boot/grub/grub.cfg sudo grub-mkconfig -o /boot/grub/grub.cfg sudo grub-install /dev/sda

常见问题处理

若配置后无法启动,可通过Live CD/USB进入系统,挂载原分区后重新执行grub-installgrub-mkconfig修复,使用Ubuntu Live USB:

  1. 挂载根分区:sudo mount /dev/sda1 /mnt(假设在/dev/sda1)
  2. 挂载/boot分区(若独立):sudo mount /dev/sda2 /mnt/boot
  3. chroot到系统:sudo chroot /mnt
  4. 重新安装GRUB:grub-install /dev/sda
  5. 生成配置:update-grub

FAQs

Q1:修改GRUB配置后启动菜单未更新,怎么办?
A1:需手动运行grub-mkconfig(或对应发行版的命令,如update-grub)重新生成grub.cfg文件,若仅修改/etc/default/grub,未执行此步骤,配置不会生效。

Q2:如何恢复GRUB为默认配置?
A2:首先备份当前配置,然后删除/boot/grub/grub.cfg(或/boot/grub2/grub.cfg),重新运行grub-mkconfig生成默认配置;或直接恢复备份的grub.cfg.bak文件,再执行grub-install安装。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/34964.html

(0)
酷番叔酷番叔
上一篇 2025年10月3日 09:22
下一篇 2025年10月3日 09:51

相关推荐

  • linux删除文件如何恢复

    Linux下删除文件后,可尝试用extundelete、testdisk等工具恢复,但

    2025年8月17日
    3300
  • Linux系统如何安装iotop磁盘IO监控工具?

    iotop是一款基于Python开发的Linux系统监控工具,专门用于实时监控进程级别的磁盘I/O使用情况,能够直观显示每个进程的读写速度、I/O优先级、等待时间等关键信息,是系统管理员排查磁盘性能瓶颈、定位高I/O进程的得力助手,与iostat等工具不同,iotop聚焦于进程级I/O行为,能帮助用户快速识别是……

    2025年10月2日
    1100
  • Linux中kill进程的正确方法和操作步骤是什么?

    在Linux操作系统中,进程是程序执行的基本单位,当进程出现异常(如卡死、资源泄露、无法正常退出)时,管理员或用户需要手动终止进程以保证系统稳定,本文将详细介绍Linux中终止进程(kill进程)的方法、工具及相关注意事项,查看进程:kill操作的前提在终止进程前,需先明确目标进程的信息(如进程ID、名称、状态……

    2025年8月31日
    3500
  • Linux如何添加用户及用户组?

    在Linux系统中,用户和用户组是管理文件权限、系统资源访问和安全性的核心机制,合理添加和管理用户及用户组,既能保障系统安全,又能实现多用户协同工作,本文将详细介绍Linux环境下添加用户和用户组的操作方法、常用参数及注意事项,用户组管理基础用户组(Group)是用户的集合,通过将用户划分到不同组,可以简化权限……

    2025年9月26日
    1500
  • 在Linux操作系统中,如何切换到中文输入法?具体步骤有哪些?

    在Linux系统中,切换中文输入法是许多中文用户的基本需求,由于Linux发行版的多样性,输入法框架和配置方式可能略有不同,但核心逻辑和操作步骤大体一致,本文将详细介绍Linux环境下切换中文输入法的完整流程,涵盖主流输入法框架(如IBus、Fcitx、Fcitx5)的安装、配置及使用方法,帮助不同需求的用户快……

    2025年10月7日
    1500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信