单用户模式是linux系统忘记root密码或启动异常时最常用、最可靠的本地救援手段,不依赖外部介质,通过grub引导阶段修改内核参数(如rd.break或init=/bin/bash)进入root权限shell,进而挂载根目录为读写、重置密码(passwd root)、重建selinux上下文(touch /.autorelabel)并重启。

Linux系统忘记root密码或启动异常时,单用户模式是最常用、最可靠的本地救援手段。它不依赖外部介质,直接利用GRUB引导阶段的可干预性,跳过常规认证流程,获得root权限shell,从而重置密码或修复底层问题。
进入单用户模式的关键操作
不同发行版触发方式略有差异,但核心逻辑一致:在GRUB菜单编辑内核启动参数。
- BIOS系统:开机后长按Shift键;UEFI系统:反复按Esc键,直到出现GRUB菜单
- 用方向键选中默认启动项(如“Ubuntu”或“CentOS Linux”),按e进入编辑模式
- 找到以linux或linux16开头的行,在行尾添加以下任一参数组合:
- Ubuntu/Debian系:rw init=/bin/bash
- RHEL/CentOS/Rocky系:rd.break
- 通用兼容方案:rw single 或 systemd.unit=rescue.target
- 按Ctrl+X或F10启动修改后的内核
重置 root 密码的完整流程
成功进入后,环境可能为只读,需先挂载为读写,并注意SELinux上下文是否需要重建。
- 若使用rd.break(RHEL系):
- mount -o remount,rw /sysroot
- chroot /sysroot
- passwd root(输入两次新密码)
- touch /.autorelabel(保留SELinux标记)
- exit两次,再执行exec /sbin/init或reboot -f
- 若使用init=/bin/bash(Ubuntu/Debian等):
- mount -o remount,rw /
- passwd root
- exec /sbin/init(推荐)或exec /sbin/reboot
用单用户模式修复常见文件系统故障
当系统因异常断电、磁盘错误或fstab配置失误无法正常启动时,单用户环境可安全执行检测与修复。
- 启动卡在“Press root password or Ctrl+D”提示:说明init进程已加载但服务初始化失败,此时已处于单用户状态,可直接运行诊断命令
- 检查并修复损坏分区:fsck -y /dev/sda1(将sda1替换为实际出错的设备名)
- 临时注释错误的/etc/fstab条目:先mount -o remount,rw /,再用nano /etc/fstab编辑,保存后重启
- 恢复误删或损坏的关键配置(如/etc/shadow):从备份拷贝,或用pwconv/grpconv重建
注意事项与风险规避
操作虽简单,但关键细节决定成败。
- 修改GRUB参数后务必确认保存——Ctrl+X是启动,不是Ctrl+S保存
- 若重启后仍进单用户模式,说明启动参数未清除:再次进GRUB编辑,删掉之前加的rd.break或init=...再启动
- 使用init=/bin/bash时,部分系统不会自动运行/etc/rc.d/rc.sysinit,PATH可能不全,建议用绝对路径调用命令(如/usr/bin/passwd)
- 涉及SELinux的系统(RHEL/CentOS/Rocky),漏掉touch /.autorelabel可能导致下次启动卡在SELinux重标阶段











