HCRM博客

如何在CentOS中配置GRUB以实现系统启动?

CentOS 是一个基于Red Hat Enterprise Linux (RHEL) 的开源操作系统,广泛应用于服务器、云计算和桌面环境,GRUB(Grand Unified Bootloader)是 CentOS 默认使用的引导加载程序,负责在系统启动时加载内核并初始化操作系统,本文将详细解释如何在 CentOS 系统中使用 GRUB 进行启动配置和管理,包括其配置文件、常见操作及常见问题解决方法。

一、GRUB 的基本概念和作用

GRUB 是一个多操作系统引导加载程序,支持多种文件系统和操作系统,其主要功能包括:

如何在CentOS中配置GRUB以实现系统启动?-图1
(图片来源网络,侵权删除)

1、引导管理:在系统启动时加载内核和初始 RAM 磁盘映像(initrd 或 initramfs),并将控制权交给内核。

2、菜单界面:提供一个用户友好的菜单界面,允许用户选择不同的操作系统或内核版本。

3、高级功能:支持加密、单用户模式、紧急模式等高级功能,增强系统的安全性和可维护性。

二、GRUB 配置文件

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

1、/etc/default/grub:该文件包含 GRUB 的全局配置选项,例如超时时间、默认启动项和命令行参数等。

示例内容:

如何在CentOS中配置GRUB以实现系统启动?-图2
(图片来源网络,侵权删除)
    GRUB_TIMEOUT=5
    GRUB_DEFAULT=saved
    GRUB_DISABLE_SUBMENU=true
    GRUB_TERMINAL_OUTPUT="console"
    GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet"
    GRUB_DISABLE_RECOVERY="true"

GRUB_TIMEOUT:设置菜单显示的时间(以为单位)。

GRUB_DEFAULT:指定默认启动的项目,如果设置为saved,则保存用户的最后一次选择。

GRUB_DISABLE_SUBMENU:禁用子菜单。

GRUB_TERMINAL_OUTPUT:设置终端输出类型。

GRUB_CMDLINE_LINUX:传递给内核的命令行参数。

GRUB_DISABLE_RECOVERY:禁用恢复模式。

2、/etc/grub.d/:该目录下包含多个脚本文件,每个文件定义一个菜单项,这些脚本文件通常以数字开头,表示执行顺序。

40_custom:用户可以自定义的菜单项脚本,编辑此文件可以添加自定义的启动项。

三、更新 GRUB 配置

修改 GRUB 配置文件后,需要重新生成 GRUB 配置文件并更新启动项,使用以下命令:

sudo grub2mkconfig o /boot/grub2/grub.cfg

对于 UEFI 系统,命令为:

sudo grub2mkconfig o /boot/efi/EFI/centos/grub.cfg

四、常见 GRUB 操作

1、查看当前启动项

    awk F\' '$1=="menuentry " {print i++ " : " $2}' /boot/grub2/grub.cfg

或者:

    grep "^menuentry" /boot/grub2/grub.cfg | cut d "'" f2

2、设置默认启动项:通过修改/etc/default/grub 文件中的GRUB_DEFAULT 行来设置默认启动项,将默认启动项设置为第一个菜单项:

    GRUB_DEFAULT=0

3、进入单用户模式:在 GRUB 菜单中按e 键编辑选中的启动项,在内核行末尾添加singlesystemd.unit=emergency.target,然后按Ctrl+X 启动。

4、进入紧急模式:在 GRUB 菜单中按e 键编辑选中的启动项,在内核行末尾添加systemd.unit=emergency.target,然后按Ctrl+X 启动。

五、修复 GRUB 问题

1、修复丢失的 GRUB 配置文件:如果删除了/boot/grub2/grub.cfg 文件,可以通过以下步骤修复:

使用 CentOS 安装介质启动系统。

挂载系统的根文件系统和/boot 分区。

切换到 chroot 环境。

重新生成 GRUB 配置文件。

退出 chroot 环境并重启系统。

示例命令:

    linux /vmlinuz4.14.0115.el7a.x86_64 root=/dev/sda3
    initrd /initramfs4.14.0115.el7a.x86_64.img
    boot

2、恢复损坏的 GRUB:GRUB 本身损坏,可以使用 CentOS 安装介质启动系统,并重新安装 GRUB。

六、常见问题解答(FAQs)

1、Q: 如果删除了/boot/grub2/grub.cfg 文件,如何恢复?

A: 使用 CentOS 安装介质启动系统,挂载根文件系统和/boot 分区,切换到 chroot 环境,重新生成 GRUB 配置文件,退出 chroot 环境并重启系统。

2、Q: 如何更改默认启动项?

A: 修改/etc/default/grub 文件中的GRUB_DEFAULT 行,然后重新生成 GRUB 配置文件并更新启动项。

通过以上步骤和配置,用户可以有效地管理和配置 CentOS 系统中的 GRUB 启动加载程序,确保系统的稳定启动和灵活管理。

分享:
扫描分享到社交APP
上一篇
下一篇