一、什么是救援模式

救援模式通常用于系统无法正常登录、需要重置密码、修复系统配置或进行紧急维护的场景。原始笔记把救援模式分成两类:

  • 光盘救援模式
  • 普通救援模式

二者对比如下:

救援模式 特点 应用场景
光盘救援模式 借助安装介质进入系统 系统无法正常进入时,作为最后手段
普通救援模式 通过引导参数进入系统 重置密码等常见维护操作

二、光盘救援模式

当系统已经无法正常进入,或者常规启动链路无法继续时,可以借助光盘或 U 盘安装介质进入救援环境。

2.1 进入步骤

1、重启系统,并让系统从光盘或 U 盘启动。

2、在 VMware Logo 页面按一次 Esc,弹出启动菜单后选择 CD-ROM Drive

image-20231018185447787

3、进入安装界面后,选择 Troubleshooting

image-20231018185634523

4、再选择 Rescue a CentOS system,进入光盘救援模式。

image-20231018185720411

5、等待系统给出选项后,输入 1 选择第一个选项。

image-20231018185900474

6、按回车后,执行:

$ chroot /mnt/sysimage

image-20231018190210921

完成这一步后,就相当于切换到了原系统环境,可以继续做密码重置、文件修复等操作。

三、普通救援模式(单用户模式)

普通救援模式更常用于重置 root 密码等常规应急场景,不需要额外的安装介质。

3.1 进入步骤

1、开机进入引导界面后,按 e 编辑启动项。

centos7重置密码-图1

2、向下找到 rhgb quiet,把它修改为 rd.break,然后按 Ctrl + X 启动。

centos7重置密码-图2

进入后会停在 switch_root 环境。

3.2 挂载系统并切换根目录

switch_root 界面执行下面的命令,把系统根分区重新挂载为可写:

$ mount -o remount,rw /sysroot

然后切换到原系统根目录:

$ chroot /sysroot/

3.3 重置密码

执行 passwd 重置密码:

$ passwd

centos7重置密码-图3

3.4 修复 SELinux 上下文

原始笔记特别强调:在 rd.break 方式下修改密码时,相关文件可能会带着不正确的 SELinux 上下文,因此需要创建 /.autorelabel 文件,让系统在下次启动时自动重新标记。

$ touch /.autorelabel

这样系统下次启动时,SELinux 子系统会检测到这个文件,并重新为系统文件打上正确的安全上下文。

3.5 退出并重启

先在 sh-4.2 环境执行:

$ exit

centos7重置密码-图4

回到 switch_root 后再次执行:

$ exit

系统随后会继续重启流程。

centos7重置密码-图5

四、救援模式使用建议

在实际操作中,可以按下面的思路选择方案:

  • 只是忘记密码,系统本身还能引导:优先使用普通救援模式。
  • 系统启动链路损坏或根本进不去:优先考虑光盘救援模式。
  • 修改密码后如果系统启用了 SELinux:不要忘记执行 touch /.autorelabel
  • 在生产环境操作前,尽量先确认磁盘、分区和根目录挂载是否正确,避免误操作。

五、小结

救援模式的本质,是在系统无法按正常路径登录时,为管理员保留一条“绕过常规入口、直接修复系统”的通道。掌握光盘救援与单用户模式后,处理忘记 root 密码和启动异常会更有把握。