Ubuntu 22重置root密码
一、进入GRUB菜单
- 重启系统,在启动界面出现时立即反复按〖Shift〗键(UEFI系统可能需按〖Esc〗键)
- 选择内核条目:通过方向键定位默认的Ubuntu启动项(通常为首项)
二、修改内核启动参数
- 进入编辑模式:选中内核条目后按〖e〗键进入GRUB参数编辑界面
- 调整参数:
- 定位以
linux
或linuxefi
开头的行 - 将
ro quiet splash
修改为rw init=/bin/bash
bashCopy Code# 原参数示例 linux /boot/vmlinuz-xxx root=UUID=xxx ro quiet splash $vt_handoff # 修改后 linux /boot/vmlinuz-xxx root=UUID=xxx rw init=/bin/bash ```:ml-citation{ref="1,5" data="citationList"}
- 定位以
- 保存启动:按〖Ctrl+X〗或〖F10〗启动系统
三、挂载文件系统
- 检查挂载状态(如系统仍为只读):
bashCopy Code
mount | grep /
- 重新挂载根目录:
bashCopy Code
mount -o remount,rw / # 若显示ro则执行此命令强制读写模式:ml-citation{ref="2,8" data="citationList"}
四、执行密码重置
- 修改root密码:
bashCopy Code
passwd root # 输入两次新密码(输入时不显示内容):ml-citation{ref="1,6" data="citationList"}
- 同步数据(防止缓存未写入):
bashCopy Code
sync # 强制数据写入磁盘:ml-citation{ref="7,8" data="citationList"}
五、退出并重启
bashCopy Code
reboot -f # 强制重启系统:ml-citation{ref="5,7" data="citationList"}
▶ 关键注意事项
- 参数差异:
- 若使用
init=/bin/bash
进入后无法修改密码,可尝试改为single
参数 - 部分环境需在参数行尾部保留
$vt_handoff
字段
- 若使用
- 恢复模式替代方案:
GRUB菜单中可选择带有(recovery mode)
的内核项,通过菜单直接进入root shell - 安全性建议:
- 操作完成后建议检查
/etc/shadow
文件权限是否为640
- 生产环境操作前建议制作系统快照
- 操作完成后建议检查
(验证成功后,建议执行sudo -i
测试新密码是否生效)