当前位置: 首页 > article >正文

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

注:本文为 “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 -f

方法 2

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

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

img

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

init=/bin/bash 的截图。

img

init=/bin/sh 的截图。

img

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

# mount -o remount,rw /

img

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

# touch /.autorelabel

最后,重启系统。

# 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 监狱”。

# chroot /sysroot

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

# touch /.autorelabel

最后,重启系统。

# reboot -f

解决centos7修改root密码报错以及无法进入单用户模式

莫闲219 于 2022-03-23 14:00:38 发布

linux 找回 root 密码操作:

1、启动系统,在开机界面按 “e” 进入编辑界面。

2、找到 “Linux16” 开头的内容,在行的最后输入:init=/bin/sh

3、之后按 ctrl+x 进入单用户模式。

4、接着输入 mount -o remount,rw /

5、在新的一行输入 passwd,按回车后输入密码,确认输入密码。

如果现实 passwd… 的样式,则修改成功。

6、接着输入:touch /.autorelabel,回车

7、之后输入 exec /sbin/init,等待一段时间,系统自动重启,新密码生成。

切记如果出现 SMBus Host Controller not enabled! 之后 ,也不要进行任何操作,等待片刻,等系统完成修改之后无法对编辑界面进行操作,重启虚拟机即可。如果中途退出虚拟机,会导致 root 的新老密码都无法登陆,且无法在开机界面进入单用户模式,如图

img

此时需要 linux16 中的 rd.lvm.lv 前加入 rw,在行末尾输入 init=/bin/sh 即可进入单用户模式。

img


via:

  • Three Methods Boot CentOS/RHEL 7/8 Systems in Single User Mode
    https://www.2daygeek.com/boot-centos-7-8-rhel-7-8-single-user-mode/

    作者:Magesh Maruthamuthu 选题:lujun9972 译者:lxbwolf 校对:wxy
    本文由 LCTT 原创编译,Linux中国 . 荣誉推出

  • 解决centos7修改root密码报错以及无法进入单用户模式_centos7重置root密码后无法登陆-CSDN博客]
    https://blog.csdn.net/qq_56568435/article/details/123684391

  • RedHat&CentOS救援模式/单用户模式 - 知乎
    https://zhuanlan.zhihu.com/p/398478111

  • centos 7 重设密码总是失败_centos7重置密码一直不成功怎么办-CSDN博客
    https://wwzzhh.blog.csdn.net/article/details/124092746

  • 解决CentOS7.x管理员用户root无法登陆问题_centos7 root无法登录-CSDN博客
    https://daxia.blog.csdn.net/article/details/132141925


http://www.kler.cn/a/511339.html

相关文章:

  • 解决 多层跳板机情况下,ssh可以成功连但是VSCode失败
  • 嵌入式硬件篇---PID控制
  • 【Django开发】django美多商城项目完整开发4.0第12篇:商品部分,表结构【附代码文档】
  • Linux-性能分析top
  • 深度学习:大模型Decoding+MindSpore NLP分布式推理详解
  • 移动端布局 ---- 学习分享
  • 调试Hadoop源代码
  • 020:为什么 Resnet 如此重要?
  • K8S 容器重启策略
  • C#中如何使用异步编程
  • Mysql--实战篇--@Transactional失效场景及避免策略(@Transactional实现原理,失效场景,内部调用问题等)
  • 深度学习 DAY1:RNN 神经网络及其变体网络(LSTM、GRU)
  • Spring AI入门示例HelloWorld
  • 基于微信小程序的购物系统设计与实现(LW+源码+讲解)
  • 【江西新能源科技职业学院主办 | JPCS(ISSN: 1742-6588)出版,快速见刊检索】2025年可再生能源与节能国际会议(REEC 2025)
  • Windows中安装RabbitMQ
  • TrueNas Webui页面自定义
  • 2024年度总结:从后端Java到全栈成长的蜕变
  • python3GUI--仿崩坏三二次元登录页面(附下载地址) By:PyQt5
  • 如何优化前端性能,减少页面加载时间?
  • 解决 IntelliJ IDEA 项目包后出现“% classes”和“% lines covered”的问题
  • 在 Ubuntu 上安装 Nginx 的详细指南
  • 智能阅读时代:基于NLP的自动新闻摘要技术解析
  • 【VRChat · 改模】Unity工程导入人物模型;并添加着色器教程;
  • 简述mysql 主从复制原理及其工作过程,配置一主两从并验证
  • 论文阅读(一):下一代基因组学和遗传学的概率图模型