以单用户模式启动CentOS/RHEL 7/8 的三种方法

系统 Linux
当你想运行文件系统一致性检查来修复损坏的文件系统,或忘记 root 密码后重置密码,或要修复系统上的一个挂载点问题时,你可以用下面三种方法以单用户模式启动 CentOS/RHEL 7/8 系统。

[[324846]]

单用户模式,也被称为维护模式,超级用户可以在此模式下恢复/修复系统问题。

通常情况下,这类问题在多用户环境中修复不了。系统可以启动但功能不能正常运行或者你登录不了系统。

在基于 Red Hat(RHEL)7/8 的系统中,使用 runlevel1.targetrescue.target 来实现。

在此模式下,系统会挂载所有的本地文件系统,但不开启网络接口。

系统仅启动特定的几个服务和修复系统必要的尽可能少的功能。

当你想运行文件系统一致性检查来修复损坏的文件系统,或忘记 root 密码后重置密码,或要修复系统上的一个挂载点问题时,这个方法会很有用。

你可以用下面三种方法以单用户模式启动 CentOS/RHEL 7/8 系统。

  • 方法 1:通过向内核添加 rd.break 参数来以单用户模式启动 CentOS/RHEL 7/8 系统
  • 方法 2:通过用 init=/bin/bashinit=/bin/sh 替换内核中的 rhgb quiet 语句来以单用户模式启动 CentOS/RHEL 7/8 系统
  • 方法 3:通过用 rw init=/sysroot/bin/sh 参数替换内核中的 ro 语句以单用户模式启动 CentOS/RHEL 7/8 系统

方法 1

通过向内核添加 rd.break 参数来以单用户模式启动 CentOS/RHEL 7/8 系统。

重启你的系统,在 GRUB2 启动界面,按下 e 键来编辑选中的内核。你需要选中第一行,第一个是最新的内核,然而如果你想用旧的内核启动系统你也可以选择其他的行。

根据你的 RHEL/CentOS 版本,找到 linux16linux 语句,按下键盘上的 End 键,跳到行末,像下面截图中展示的那样添加关键词 rd.break,按下 Ctrl+xF10 来进入单用户模式。

如果你的系统是 RHEL/CentOS 7,你需要找 linux16,如果你的系统是 RHEL/CentOS 8,那么你需要找 linux

这个修改会让你的 root 文件系统以 “只读(ro)” 模式挂载。你可以用下面的命令来验证下。下面的输出也明确地告诉你当前是在 “紧急模式Emergency Mode”。

  1. # mount | grep root

 

为了修改 sysroot 文件系统,你需要用读写模式(rw)重新挂载它。

  1. # mount -o remount,rw /sysroot

运行下面的命令修改环境,这就是大家熟知的 “监禁目录” 或 “chroot 监狱”。

  1. # chroot /sysroot

现在,单用户模式已经完全准备好了。当你修复了你的问题要退出单用户模式时,执行下面的步骤。

CentOS/RHEL 7/8 默认使用 SELinux,因此创建下面的隐藏文件,这个文件会在下一次启动时重新标记所有文件。

  1. # touch /.autorelabel

最后,用下面的命令重启系统。你也可以输入两次 exit 命令来重启你的系统。

  1. # reboot -f

方法 2

通过用 init=/bin/bashinit=/bin/sh 替换内核中的 rhgb quiet 语句来以单用户模式启动 CentOS/RHEL 7/8 系统。

重启你的系统,在 GRUB2 启动界面,按下 e 键来编辑选中的内核。

找到语句 rhgb quiet,用 init=/bin/bashinit=/bin/sh 替换它,然后按下 Ctrl+xF10 来进入单用户模式。

init=/bin/bash 的截图。

init=/bin/sh 的截图。

默认情况下,上面的操作会以只读(ro)模式挂载你的 / 分区,因此你需要以读写(rw)模式重新挂载 / 文件系统,这样才能修改它。

  1. # mount -o remount,rw /

现在你可以执行你的任务了。当结束时,执行下面的命令来开启重启时的 SELinux 重新标记。

  1. # touch /.autorelabel

最后,重启系统。

  1. # exec /sbin/init 6

方法 3

通过用 rw init=/sysroot/bin/sh 参数替换内核中的 ro 单词,以单用户模式启动 CentOS/RHEL 7/8 系统。

为了中断自动启动的过程,重启你的系统并在 GRUB2 启动界面按下任意键。

现在会展示你系统上所有可用的内核,选择最新的内核,按下 e 键来编辑选中的内核参数。

找到以 linuxlinux16 开头的语句,用 rw init=/sysroot/bin/sh 替换 ro。替换完后按下 Ctrl+xF10 来进入单用户模式。

运行下面的命令把环境切换为 “chroot 监狱”。

  1. # chroot /sysroot

如果需要,做出必要的修改。修改完后,执行下面的命令来开启重启时的 SELinux 重新标记。

  1. # touch /.autorelabel

最后,重启系统。

  1. # reboot -f 

 

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2010-04-06 14:16:59

CentOS系统

2022-01-05 22:39:35

SQL单用户模式

2010-03-03 10:51:07

2016-09-09 13:07:56

CentOSJDKLinux

2009-07-08 12:56:32

编写Servlet

2018-12-03 14:15:36

SUSE 12 Lin单用户模式命令

2010-01-06 09:35:55

2022-11-18 15:09:29

2018-10-16 17:10:14

UbuntuDebian 9服务器

2015-12-03 10:19:44

Windows 10飞行模式方法

2009-06-23 10:45:18

Hibernate支持

2011-06-10 10:43:12

Ubuntu应用安装

2010-09-14 15:10:49

CSS注释

2009-12-11 18:49:39

预算编制博科资讯

2011-04-18 15:32:45

游戏测试测试方法软件测试

2023-08-14 17:58:13

RequestHTTP请求

2022-07-13 16:06:16

Python参数代码

2019-07-02 17:34:42

2016-10-12 13:53:38

JavaByteBufferRandomAcces

2010-09-08 13:29:48

CSS
点赞
收藏

51CTO技术栈公众号