CentOS开机无法进入系统,如何进入GRUB界面修复?

在 CentOS 系统的生命周期中,无论是系统管理员还是普通用户,都可能遇到需要与 GRUB(GRand Unified Bootloader)直接交互的场景,GRUB 是系统启动过程中第一个加载的软件程序,它负责加载内核并初始化操作系统,掌握如何进入并操作 GRUB 界面,是进行系统故障排查、内核参数调试、密码重置等高级运维任务的基础技能,本文将详细阐述在 CentOS 环境下进入 GRUB 界面的多种方法、界面基本操作以及一个重要的实际应用案例。

CentOS开机无法进入系统,如何进入GRUB界面修复?

为什么要进入 GRUB 界面?

在深入了解操作方法之前,明确我们为何需要进入 GRUB 界面至关重要,触发此操作的需求源于以下几个方面:

  • 系统故障排查:当 CentOS 因内核更新失败、驱动程序冲突或文件系统损坏而无法正常启动时,进入 GRUB 界面可以选择恢复模式或之前的稳定内核版本进行启动,从而为修复系统创造条件。
  • 多重启动环境:如果服务器或个人计算机上安装了多个操作系统(如 Windows 与 CentOS 双系统,或多个版本的 Linux),GRUB 菜单是选择启动哪个操作系统的唯一入口。
  • 内核参数调试:开发者或系统管理员有时需要临时修改内核启动参数,例如禁用某个特定模块、指定 systemd.unit 进入救援模式或单用户模式,这些都需要在 GRUB 界面中编辑启动项。
  • 忘记 root 密码:这是最经典的应用场景之一,通过进入 GRUB 并引导至单用户模式或救援模式,可以绕过常规的身份验证,从而重置丢失的 root 密码。

如何进入 GRUB 界面:进入方法详解

进入 GRUB 界面的时机至关重要,它发生在 BIOS/UEFI 自检完成后,操作系统内核加载之前,以下是几种主流的进入方法。

开机中断法(最常用)

这是最直接、最普遍的方法,核心在于在系统启动的特定时间窗口内按下特定按键,中断自动启动流程,从而显示 GRUB 菜单。

  1. 重启或开启计算机
  2. 把握时机:仔细观察屏幕,在主板品牌 Logo 画面消失后,CentOS 的启动进度条或动画出现之前,有一个非常短暂的停留窗口,通常只有几秒钟。
  3. 按下中断键:在这个窗口期内,快速、连续地按下以下表格中列出的某个键,直到屏幕出现 GRUB 菜单。
触发按键 适用场景 说明
Esc 键 大多数 BIOS 系统和部分 UEFI 系统 最通用的中断键,成功率最高。
Shift 键 部分 UEFI 系统 需要持续按住 Shift 键,直到 GRUB 菜单出现。
F2, F10, F12 部分品牌服务器或主板 这些键有时被定义为进入 BIOS 或启动菜单的快捷键,也可能中断 GRUB 自动启动。

如果系统配置的 GRUB_TIMEOUT 参数为 0,菜单可能不会自动显示,此时开机中断法是强制其显现的唯一途径。

已登录系统配置法(高级)

如果系统目前可以正常登录,但您希望下次重启时直接进入特定的 GRUB 菜单项(例如救援模式),可以使用命令行工具进行预设。

CentOS开机无法进入系统,如何进入GRUB界面修复?

  1. 查看所有可用的 GRUB 菜单项

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

    此命令会列出所有启动项的名称,CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)CentOS Linux (Rescue Mode)

  2. 设置下次重启的默认启动项
    使用 grub2-reboot 命令,后跟上一步中查看到的菜单项完整名称。

    sudo grub2-reboot "CentOS Linux (Rescue Mode)"

    执行此命令后,系统会将该设置写入一个临时环境变量,下次重启时,GRUB 将自动加载并高亮显示这个指定的菜单项,但不会立即启动,会等待您按回车确认,这种方式仅对“下一次”重启有效,之后会恢复为默认设置。

紧急救援模式

当系统损坏严重,甚至无法显示 GRUB 菜单时,就需要借助外部介质,使用 CentOS 的安装光盘或 U 盘启动盘,在启动选项中选择 RescueTroubleshooting 模式,这会引导一个最小化的救援环境,并自动将原系统的硬盘挂载到 /mnt/sysimage 目录下,从而可以进行底层修复。

CentOS开机无法进入系统,如何进入GRUB界面修复?

进入 GRUB 后的基本操作

成功进入 GRUB 界面后,您会看到一个类似文本菜单的界面,列出了可用的内核版本和高级选项,键盘是唯一的交互工具。

  • 方向键(↑ ↓):用于在菜单项之间上下移动光标。
  • e:编辑当前选中的启动项,按下后会进入一个编辑界面,可以看到启动参数的具体配置。
  • c:进入 GRUB 命令行界面,这是一个强大的交互式 shell,允许用户手动输入 GRUB 命令来启动系统,适用于专家级故障排查。
  • F10Ctrl + X:启动当前选中的(或编辑后的)菜单项。
  • F2Esc:返回主菜单(在编辑界面或子菜单中时)。

常见应用场景:单用户模式与密码重置

忘记 root 密码是进入 GRUB 最常见的理由,以下是通过编辑 GRUB 启动项进入单用户模式并重置密码的步骤:

  1. 在开机时使用方法一进入 GRUB 菜单。
  2. 用方向键选中您要启动的内核版本(通常是第一个),然后按 e 键进入编辑界面。
  3. 使用方向键找到以 linuxlinux16linuxefi 开头的那一行,这一行很长,包含了内核路径和众多启动参数。
  4. 定位到参数中的 ro(表示 read-only,只读),将其修改为 rw(表示 read-write,读写)。
  5. 在该行的末尾,添加一个空格,然后输入 init=/bin/bash 或者 systemd.unit=rescue.target,前者更直接,后者是 systemd 推荐的方式。
  6. 修改完成后,按 Ctrl + X 组合键,系统将使用修改后的参数启动,并直接进入一个只有 root 权限的 bash shell。
  7. 文件系统已经以读写模式挂载,输入 passwd 命令来重置 root 密码,按照提示输入新密码即可。
  8. 重要步骤:如果您的系统启用了 SELinux(CentOS 默认启用),直接重启后可能会因安全上下文问题导致无法登录,必须执行以下命令来让系统在下次启动时自动重新标记文件:
    touch /.autorelabel
  9. 执行 exec /sbin/initreboot -f 命令重启系统,系统重启时可能会因为 relabeling 过程而稍慢,这是正常现象,之后即可使用新密码登录。

相关问答 FAQs

为什么我每次开机狂按按键,就是无法进入 GRUB 菜单,系统总是直接启动了?
解答: 这种情况最常见的原因是 GRUB 的配置文件 /etc/default/grubGRUB_TIMEOUT 的值被设置为了 0,这个参数定义了 GRUB 菜单显示的等待时间(秒),当它为 0 时,系统将不会显示菜单,而是直接启动默认的内核项,要解决这个问题,您需要编辑这个文件(sudo vi /etc/default/grub),将 GRUB_TIMEOUT=0 修改为一个大于 0 的值,5,保存后运行 sudo grub2-mkconfig -o /boot/grub2/grub.cfg 命令使配置生效,之后重启,GRUB 菜单就会等待 5 秒,让您有充足的时间进行选择。

如何永久修改 GRUB 的默认启动项?
解答: 永久修改默认启动项,意味着每次开机 GRUB 都会默认高亮您选择的条目,使用 grep "^menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2 命令查看所有菜单项的名称和顺序,编辑 /etc/default/grub 文件,找到 GRUB_DEFAULT=saved 这一行,将其中的 saved 替换为您想设为默认的菜单项的索引号(从 0 开始计数)或完整的菜单项名称,要默认启动菜单中的第二个选项,可以设置为 GRUB_DEFAULT=1,修改后,同样需要运行 sudo grub2-mkconfig -o /boot/grub2/grub.cfg 来更新 GRUB 的主配置文件,这样设置就会永久生效。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-13 02:10
下一篇 2025-10-13 02:11

相关推荐

发表回复

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

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信