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

文章
林里克斯

单用户模式,也被称为维护模式,超级用户可以在此模式下恢复/修复系统及修改root密码等问题。本篇文章将实现三种方法进入单用户模式修改root密码

实验平台:CentOS

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


1).在基于 Red Hat(RHEL)7/8 的系统中,使用 runlevel1.targetrescue.target 来实现
2).在此模式下,系统会挂载所有的本地文件系统,但不开启网络接口
3).当你想运行文件系统一致性检查来修复损坏的文件系统,或忘记 root 密码后重置密码,或要修复系统上的一个挂载点问题时,这个方法会很有用。

步骤:


一、方法一:内核添加 rd.break


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

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

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

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

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

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

$ mount | grep root
rootfs on / type rootfs (rw)
/dev/mapper/centos-root on /sysroot type xfs (ro,relatime,attr2,inode64,noquota)

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

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

$ mount -o remount,rw /sysroot
$ mount | grep root
rootfs on / type rootfs (rw)
/dev/mapper/centos-root on /sysroot type xfs (rw,relatime,attr2,inode64,noquota)
$ chroot /sysroot

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

5.修改root密码

$ passwd root
Changing password for user root.
New password:
BAD PASSWORD: No password supplied
Retype new password: 
passwd: all authentication tokens updated successfully.

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

$ touch /.autorelabel

7.重启实例测试

$ reboot -f

一、方法二:init=/bin/bash 替换 rhgb quiet


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

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

2.找到语句 rhgb quiet,用 init=/bin/bashinit=/bin/sh 替换它,然后按下 Ctrl+xF10 来进入单用户模式
以单用户模式启动 CentOS/RHEL 7/8 的三种方法

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

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

$ mount | grep root
rootfs on / type rootfs (rw)
/dev/mapper/centos-root on /sysroot type xfs (ro,relatime,attr2,inode64,noquota)

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

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

$ mount -o remount,rw /sysroot
$ mount | grep root
rootfs on / type rootfs (rw)
/dev/mapper/centos-root on /sysroot type xfs (rw,relatime,attr2,inode64,noquota)
$ chroot /sysroot

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

5.修改root密码

$ passwd root
Changing password for user root.
New password:
BAD PASSWORD: No password supplied
Retype new password: 
passwd: all authentication tokens updated successfully.

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

$ touch /.autorelabel

7.重启实例测试

$ exec /sbin/init 6

一、方法三:用 rw init=/sysroot/bin/sh 参数替换内核中的 ro 单词


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

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

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

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

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

3.切换root

$ chroot /sysroot

5.修改root密码

$ passwd root
Changing password for user root.
New password:
BAD PASSWORD: No password supplied
Retype new password: 
passwd: all authentication tokens updated successfully.

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

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

$ touch /.autorelabel

7.重启实例测试

$ reboot -f

Over~

版权协议须知!

本篇文章来源于 Uambiguous ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意

636 0 2020-07-06


分享:
icon_mrgreen.gificon_neutral.gificon_twisted.gificon_arrow.gificon_eek.gificon_smile.gificon_confused.gificon_cool.gificon_evil.gificon_biggrin.gificon_idea.gificon_redface.gificon_razz.gificon_rolleyes.gificon_wink.gificon_cry.gificon_surprised.gificon_lol.gificon_mad.gificon_sad.gificon_exclaim.gificon_question.gif
博主卡片
林里克斯 博主大人
一个致力于Linux的运维平台
运维时间
搭建这个平台,只为分享及记载自己所遇之事和难题。

现在时间 2024-03-28

今日天气
站点统计
  • 文章总数:240篇
  • 分类总数:29个
  • 评论总数:10条
  • 本站总访问量 208413 次

@奥奥

@Wong arrhenius 牛比

@MakerFace 厉害了!