当前位置: 首页 > news >正文

【Linux基础知识系列:第一百五十一篇】启动加载器GRUB配置

在Linux系统中,GRUB(GRand Unified Bootloader)是启动加载器,负责在系统启动时加载操作系统。GRUB2是GRUB的最新版本,提供了更强大的功能和更好的灵活性。正确配置GRUB2对于系统的启动和维护至关重要。通过自定义启动菜单、设置内核参数以及在启动时进入GRUB命令行进行系统急救,你可以更好地控制系统的启动过程,解决启动问题,甚至进行系统恢复。本文将深入解析GRUB2的配置文件grub.cfg,并讲解如何进行自定义配置。

核心概念

GRUB2(GRand Unified Bootloader 2)

GRUB2是一个开源的启动加载器,用于在计算机启动时加载操作系统。它支持多种操作系统,包括Linux、Windows和macOS。GRUB2的主要功能包括:

  • 启动菜单管理:提供用户友好的启动菜单,允许用户选择要启动的操作系统。

  • 内核参数设置:允许用户在启动时设置内核参数,用于调整系统启动行为。

  • 系统急救:在启动时进入GRUB命令行,进行系统急救和故障排除。

配置文件grub.cfg

grub.cfg是GRUB2的主要配置文件,位于/boot/grub/目录下。该文件由grub2-mkconfig命令生成,包含启动菜单的定义和内核参数的设置。

启动菜单(Boot Menu)

启动菜单是GRUB2提供给用户的选择界面,用户可以通过启动菜单选择要启动的操作系统或启动选项。

内核参数(Kernel Parameters)

内核参数是传递给Linux内核的参数,用于控制内核的行为。常见的内核参数包括root(指定根文件系统的设备)、ro(以只读方式挂载根文件系统)等。

GRUB命令行(GRUB Command Line)

GRUB命令行是一个交互式界面,允许用户在启动时输入命令,进行系统急救和故障排除。

命令与示例

查看GRUB2配置文件

你可以使用以下命令查看grub.cfg文件的内容:

cat /boot/grub/grub.cfg

生成GRUB2配置文件

你可以使用以下命令生成grub.cfg文件:

sudo grub2-mkconfig -o /boot/grub/grub.cfg
  • grub2-mkconfig:生成GRUB2配置文件。

  • -o /boot/grub/grub.cfg:指定输出文件为/boot/grub/grub.cfg

自定义启动菜单

你可以通过编辑/etc/default/grub文件来自定义启动菜单。例如,设置默认启动的操作系统和启动超时时间:

sudo nano /etc/default/grub

编辑文件,设置默认启动的操作系统(从0开始计数)和启动超时时间(单位为秒):

GRUB_DEFAULT=0
GRUB_TIMEOUT=10

保存文件后,运行以下命令生成新的grub.cfg文件:

sudo grub2-mkconfig -o /boot/grub/grub.cfg

添加自定义启动选项

你可以通过编辑/etc/grub.d/40_custom文件添加自定义启动选项。例如,添加一个启动到单用户模式的选项:

sudo nano /etc/grub.d/40_custom

在文件末尾添加以下内容:

menuentry 'Single User Mode' {set root=(hd0,1)linux /vmlinuz root=/dev/sda1 ro singleinitrd /initrd.img
}

保存文件后,运行以下命令生成新的grub.cfg文件:

sudo grub2-mkconfig -o /boot/grub/grub.cfg

设置内核参数

你可以通过编辑/etc/default/grub文件设置内核参数。例如,添加一个内核参数quiet以隐藏启动信息:

sudo nano /etc/default/grub

编辑文件,添加内核参数:

GRUB_CMDLINE_LINUX="quiet"

保存文件后,运行以下命令生成新的grub.cfg文件:

sudo grub2-mkconfig -o /boot/grub/grub.cfg

进入GRUB命令行

在启动时,你可以通过按Esc键或Shift键进入GRUB命令行。进入GRUB命令行后,你可以输入命令进行系统急救和故障排除。例如,启动到单用户模式:

linux /vmlinuz root=/dev/sda1 ro single
initrd /initrd.img
boot

查看和编辑启动菜单

在GRUB命令行中,你可以使用menuentry命令查看和编辑启动菜单。例如,查看启动菜单:

menuentry

编辑启动菜单项,例如修改默认启动项:

set default=1

恢复GRUB2配置

如果你不小心修改了grub.cfg文件,可以使用以下命令恢复默认配置:

sudo grub2-mkconfig -o /boot/grub/grub.cfg

常见问题

如何修复GRUB2启动问题?

如果GRUB2无法启动,你可以尝试以下步骤:

  1. 使用Linux安装介质启动系统。

  2. 选择“救援模式”或“尝试Linux”。

  3. 挂载根文件系统:

sudo mount /dev/sda1 /mnt
  1. 挂载必要的文件系统:

sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
  1. 切换到挂载的根文件系统:

sudo chroot /mnt
  1. 重新安装GRUB2:

sudo grub2-install /dev/sda
sudo grub2-mkconfig -o /boot/grub/grub.cfg
  1. 退出并重启系统:

 

exit
sudo reboot

如何添加新的操作系统到GRUB2启动菜单?

你可以通过编辑/etc/grub.d/40_custom文件添加新的操作系统到GRUB2启动菜单。例如,添加一个Windows启动选项:

sudo nano /etc/grub.d/40_custom

在文件末尾添加以下内容:

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

保存文件后,运行以下命令生成新的grub.cfg文件:

sudo grub2-mkconfig -o /boot/grub/grub.cfg

如何设置GRUB2的默认启动项?

你可以通过编辑/etc/default/grub文件设置GRUB2的默认启动项。例如,设置默认启动项为第2项(从0开始计数):

sudo nano /etc/default/grub

编辑文件,设置默认启动项:

GRUB_DEFAULT=1

保存文件后,运行以下命令生成新的grub.cfg文件:

sudo grub2-mkconfig -o /boot/grub/grub.cfg

如何隐藏GRUB2启动菜单?

你可以通过编辑/etc/default/grub文件隐藏GRUB2启动菜单。例如,设置启动菜单的超时时间为0秒:

sudo nano /etc/default/grub

编辑文件,设置启动菜单的超时时间为0秒:

GRUB_TIMEOUT=0

保存文件后,运行以下命令生成新的grub.cfg文件:

sudo grub2-mkconfig -o /boot/grub/grub.cfg

如何在GRUB2中设置内核参数?

你可以通过编辑/etc/default/grub文件设置内核参数。例如,添加一个内核参数quiet以隐藏启动信息:

sudo nano /etc/default/grub

编辑文件,添加内核参数:

GRUB_CMDLINE_LINUX="quiet"

保存文件后,运行以下命令生成新的grub.cfg文件:

sudo grub2-mkconfig -o /boot/grub/grub.cfg

实践建议

定期备份grub.cfg文件

建议定期备份grub.cfg文件,以便在出现问题时可以快速恢复。你可以使用以下命令备份grub.cfg文件:

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

使用grub2-mkconfig命令生成配置文件

建议使用grub2-mkconfig命令生成grub.cfg文件,而不是手动编辑。这可以避免手动编辑带来的错误,并确保配置文件的正确性。

测试新的启动配置

在应用新的启动配置后,建议重启系统并测试新的启动配置。这可以确保新的配置能够正常工作,并及时发现潜在问题。

使用chroot环境进行系统急救

如果系统无法启动,你可以使用chroot环境进行系统急救。这可以让你在挂载的根文件系统中运行命令,修复系统问题。

使用ls命令查看设备

在GRUB命令行中,你可以使用ls命令查看设备信息。这可以帮助你确定设备的路径和分区信息。

使用set命令查看和设置变量

在GRUB命令行中,你可以使用set命令查看和设置变量。这可以帮助你了解当前的配置状态,并进行必要的调整。

总结

通过本文的介绍,你已经掌握了GRUB2的基本概念、配置方法以及一些实用的操作技巧。GRUB2是一个功能强大的启动加载器,通过正确配置grub.cfg文件,你可以自定义启动菜单、设置内核参数,并在启动时进入GRUB命令行进行系统急救。在实际应用中,建议定期备份grub.cfg文件、使用grub2-mkconfig命令生成配置文件、测试新的启动配置、使用chroot环境进行系统急救,并熟悉GRUB命令行的基本操作。这些实践建议将帮助你更好地管理GRUB2,提升系统的启动可靠性和维护能力。总之,GRUB2是每个Linux用户都应该掌握的重要工具之一,它极大地简化了系统的启动和维护流程。

http://www.dtcms.com/a/519966.html

相关文章:

  • 2025 前端框架决战:Vue 与 React 分析优缺点及使用场景!
  • 频繁读写文件,page cache不及时释放的后果
  • 网站不同网站建设归工商局管还是工信局管
  • Java 虚拟线程(Virtual Threads)正式落地!Spring Boot 如何拥抱 Project Loom?
  • 石家庄网站开发工程师招聘网优秀包装设计案例
  • iOS 混淆工具链实战 多工具组合完成 IPA 混淆与加固 无源码混淆
  • win10桌面windows bing图标如何删除
  • Gin笔记一之项目建立与运行
  • JSON 核心知识点
  • precompilation-headers 以及在cmake中的实现
  • php做的网站用什么后台ui设计是怎么实现的
  • 怎么建设宣传网站网页制作公司兼职
  • llama.cpp批处理选择不同模型启动
  • 《从零构建企业级 Java+DeepSeek 智能应用:SpringBoot/Vert.x 双引擎实战,打造热榜级 AI 开发指南》
  • 【存储概念】存储系统中块设备、分区、文件系统的概念及关系
  • (第二篇)Spring AI 基础入门:从环境搭建到模型接入全攻略(覆盖国内外模型 + 本地部署)
  • 容器适配器:Stack与Queue的底层奥秘
  • 2025年10月23日Github流行趋势
  • 上海外贸网站建设公司价格做兼职设计去哪个网站
  • 免费效果图网站wordpress分类目录导航
  • 【完整源码+数据集+部署教程】【运动的&足球】足球比赛分析系统源码&数据集全套:改进yolo11-RFAConv
  • YARN简介
  • PSO-Transformer-BiLSTM分类预测/故障诊断,优化参数为注意力机制头数、学习率、正则化系数、隐藏层单元,图很多,包括分类效果图,混淆矩阵图
  • AJAX 知识
  • 做淘宝推广开网站合适全球最大的设计网站
  • Java-157 MongoDB 存储引擎 WiredTiger vs InMemory:何时用、怎么配、如何验证 mongod.conf
  • 详细-vue3项目初始化配置流程
  • 电子科技网站太原seo排名
  • 销售记账-成本中心/成本会计分配
  • TensorFlow深度学习实战——链路预测