centos 切换用户_linux进入单用户模式的几种方法

前言:记得初中时有个刚毕业的老师要走了,同学们纷纷送礼,不过班上总有几个家庭拮据的同学,送的可能不入流或者没送吧,结果,老师一一数出了送的什么礼物,谁谁送的,哪些同学没心意,哪些同学没送,当时懵懂虫一般,好像并没啥,直到后来步入社会回想起,才悟到,其实那对于那几个掉队的人来说,实在有点太受伤害。

后来有个家境很不好的同学退学了,9年义务的最后一年还是放弃了,时隔多年我做一个恶意的猜测吧,那时的那位同学,是不是受到过周围的冷暴力而选择退学呢?当然,我也只能是猜测,没有任何的实际的或者理论来支持,那位同学也是从此再没见过,前年初中同学组了个群,也不曾见到他,或许他也和小编一样,躲在了大城市的角落里,不愿与过往有过多的交集吧

ad34b6967a8ffc6953e73d208174df19.png

一,进入单用户模式的作用

单用户模式,只有一个用户可以访问某个资源的状态,在类Unix系统上工作时的一种拥有超级用户权限的模式,通常在引导菜单给予1或S参数能进入这个模式。这个模式只在面对主机实体时才有机会透过引导菜单进入,也因此确保超级权限授予的对象是能接触到主机的超级用户,此操作通常用于维护硬盘分区或更改超级用户密码等需在磁盘挂载前操作的维护,库都可以置于单用户模式linux单用户模式,也被称为维护模式,超级用户可以在此模式下恢复/修复系统问题

二,进入单用户的几种方式,以cento7为例子

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

三,方法1实践:

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

23e37d89ba8fc4e2266153b46eab0585.png

CentOS 7的系统就找 linux16,提示:如果你的系统是 RHEL/CentOS 8,那么你需要找 linux。在utf-8后添加rd.break,然后ctrl+x,进入紧急模式

12ea712550c3cc03daf755de79375951.png

b15d887e14ef03c1a9702b46f1716010.png

90de0532159bff86f10b20f59d98a46f.png

如下命令,root 文件系统以 “只读(ro)” 模式挂载,你可以用下面的命令来验证下。下面的输出也明确地告诉你当前是在紧急模式。
mount -o remount,rw /sysroot

2b9c30e342bbb26df90adccf3618154d.png

为了修改 sysroot 文件系统,我们要用读写模式(rw)重新挂载,以及修改环境。

mount -o remount,rw /sysrootchroot /sysroot

19f5391a544907bfb1ab182fb942422c.png

现在,已经进入单用户模式,当修复完问题退出,可以执行下面的步骤,centos7默认使用 SELinux,因此创建下面的隐藏文件,这个文件会在下一次启动时重新标记所有文件

touch /.autorelabelreboot -f #或者连词exit也能退出重启

四,方法2实践:

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

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

ad0a437ca5b95b0c3b43322e9c5f7dcc.png

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

770c4cc26ee2d7abf3512a5f960d46f6.png

3f086ea02e227cb6f3048c4c8ecfaa57.png

默认情况下,上面的操作会以只读(ro)模式挂载/ 分区,因此我们需要以读写(rw)模式重新挂载 / 文件系统

mount -o remount,rw /

6f54d1764a1ad91ef7d188481c2e0cce.png

当修复完系统,可以如下命令退出重启

#执行下面的命令来开启重启时的 SELinux 重新标记touch /.autorelabelexec /sbin/init

五,方法3实践:

通过用 rw init=/sysroot/bin/sh 参数替换内核中的 ro 单词,以单用户模式启动系统。同样,重启你的系统,在 GRUB2 启动界面,按下 e 键来编辑选中的内核,找到以 linux 或 linux16 开头的语句,用 rw init=/sysroot/bin/sh 替换 ro。替换完后按下 Ctrl+x 或 F10 来进入单用户模式 ad0a437ca5b95b0c3b43322e9c5f7dcc.png

f6ea04385db5b747c38d9b45d7ddfc8c.png

18afb15fe3f5cdcf50c5c4f9cc3c6291.png

运行下面的命令把环境切换为 “chroot 工作目录 ”,操作完同样可以退出重启
chroot /sysroottouch /.autorelabelreboot -f
六,总结

在此模式下,系统会挂载所有的本地文件系统,但不开启网络接口,系统仅启动特定的几个服务和修复系统必要的尽可能少的功能,当你想运行文件系统一致性检查来修复损坏的文件系统,或忘记 root 密码后重置密码,或要修复系统上的一个挂载点问题时,这个方法会很有用。

最后的最后(Last but not least),欢迎交流:

关注公众号留言,或者在下方直接留言:

f9ef6685047b823cbf19138d8f5efc1a.png

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值