Linux | 单用户模式启动 / root 密码重置 / 修复

注:本文为 “Linux 启动单用户模式” 相关文章合辑。

略作重排,未去重。


以单用户模式启动 Linux 的三种方法

作者: Magesh Maruthamuthu
译者: LCTT Xiaobin.Liu
2020-05-03 23:01

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

通常情况下,此类问题在多用户环境中无法修复,例如系统能够启动但功能无法正常运行,或者无法登录系统。

在基于 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 键来编辑选中的内核。需选中第一行,其中第一个是最新的内核,若希望使用旧的内核启动系统,也可选择其他行。

img

根据 RHEL/CentOS 版本,找到 linux16linux 语句,按下键盘上的 End 键,跳至行末,按照如下截图所示添加关键词 rd.break,按下 Ctrl+xF10 以进入单用户模式。

若系统是 RHEL/CentOS 7,需查找 linux16;若系统是 RHEL/CentOS 8,则需查找 linux

img

此修改会使 root 文件系统以 “只读(ro)” 模式挂载。可使用以下命令进行验证,以下输出也明确表明当前处于 “紧急模式(Emergency Mode)”。

# mount | grep root

img

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

# mount -o remount,rw /sysroot

运行以下命令修改环境,这即通常所说的 “监禁目录” 或 “chroot 监狱”。

# chroot /sysroot

img

此时,单用户模式已完全准备就绪。当修复完问题并要退出单用户模式时,执行以下步骤。

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

# touch /.autorelabel

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

# reboot 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值