直接进单用户模式重置root密码无需重装系统,核心是在grub启动时修改内核参数为rw init=/bin/bash或rd.break,挂载根分区为读写后执行passwd root,最后正确退出并重启。

直接进单用户模式重置 root 密码,不需要重装系统,关键在 GRUB 启动时干预内核参数。操作核心是绕过登录流程,拿到 root 权限的 shell,再用 passwd 命令改密。不同发行版细节略有差异,但逻辑一致。
进入编辑模式:抓住 GRUB 启动窗口
重启机器,在 BIOS/UEFI 自检结束后、出现 Logo 或黑屏时立即操作:
- 传统 BIOS 系统:长按 Shift 键,直到 GRUB 菜单出现
- UEFI 系统(如较新 Ubuntu、CentOS 8+):频繁按 Esc 键
- 云主机(如阿里云、华为云):通过 VNC 控制台,在启动界面快速按上下方向键中断自动引导,再按 e
菜单出现后,用方向键选中默认启动项(通常是 “Ubuntu”、“CentOS Linux” 或类似名称),不要回车,按 e 进入内核参数编辑界面。
修改启动参数:两种主流写法任选其一
在编辑界面中,找到以 linux 或 linux16 开头的那一行(通常第二行或第三行),光标移到行尾,添加以下任一组合:
- 方法一(推荐 Ubuntu/Debian/CentOS 6/7/8+ 通用):将行尾的 ro 改为 rw,再加空格后输入 init=/bin/bash
- 方法二(RHEL/CentOS/Fedora 系列更稳妥):保留 ro,直接在行尾加空格后输入 rd.break
改完后按 Ctrl + X 或 F10 启动。系统会跳过正常初始化,直接进入命令行环境。
挂载并重置密码:注意读写权限和路径
根据你选的方法,后续操作略有不同:
- 若用 init=/bin/bash:根文件系统已挂载为 /,但默认只读。先执行:
mount -o remount,rw /
再运行:
passwd root
按提示输入两次新密码即可 - 若用 rd.break:系统停在 initramfs 阶段,根分区挂载在 /sysroot 下且只读。依次执行:
mount -o remount,rw /sysroot
chroot /sysroot
passwd root
如果系统启用了 SELinux(常见于 RHEL/CentOS),建议在改密后执行:
touch /.autorelabel
这会让下次启动时自动重打安全标签,避免登录失败。
退出并重启:让改动生效
密码改完后,必须正确退出并重启,否则修改可能未写入或 SELinux 标签异常:
- 用 init=/bin/bash 方式:运行 exec /sbin/init 或 exec /sbin/reboot
- 用 rd.break 方式:先 exit 退出 chroot,再 exit 退出 initramfs,系统会自动继续启动
- 不确定是否生效?可手动同步磁盘缓存:sync
重启后,用新设置的 root 密码登录即可。记得删掉 GRUB 参数里加的临时内容,否则下次还会进单用户模式。











