上一篇                     
               
			  Linux如何恢复root密码?
- Linux
- 2025-06-15
- 4170
 进入单用户模式修改root密码,重启系统,在GRUB菜单选择内核行,按’e’编辑,找到linux行,在行尾添加
 
 
init=/bin/bash或
 single,按Ctrl+X启动,进入命令行后,执行
 passwd root设置新密码,最后执行
 exec /sbin/init或
 reboot重启。
在Linux系统中,若忘记root密码,可通过以下物理访问系统的方式重置,操作需谨慎,不当步骤可能导致系统损坏,建议先备份数据,以下是两种主流方法:
通过单用户模式重置(适用于大多数发行版)
适用系统:CentOS/RHEL 7+、Ubuntu 16.04+、Debian 9+ 等使用GRUB2引导的系统。
步骤详解:
-  重启并进入GRUB菜单 
 重启服务器,在启动界面长按Shift键(UEFI系统按Esc键)唤出GRUB菜单。
-  编辑内核启动参数 - 选择默认启动项(通常为第一项),按 e进入编辑模式。
- 找到以 linux或linux16开头的行(CentOS)或linux行(Ubuntu)。
- 将光标移至行尾,添加以下参数: rw init=/bin/bash (示例:原行 linux /boot/vmlinuz... ro quiet→ 改为... rw init=/bin/bash quiet)
 
- 选择默认启动项(通常为第一项),按 
-  启动单用户模式 
 按Ctrl+X或F10启动系统,进入bashshell(此时无需密码)。 
-  挂载文件系统并重置密码 mount -o remount,rw / # 重新挂载根目录为可读写 passwd root # 输入两次新密码 sync # 同步数据到磁盘 exec /sbin/init # 正常重启系统(或直接 reboot) 
使用Live CD/USB重置(适用于无法修改GRUB的场景)
适用场景:GRUB被锁定、系统无法启动或云服务器(需VNC/IPMI控制台)。
操作流程:
-  准备Live环境 
 下载发行版ISO(如Ubuntu Live CD),制作启动U盘,从该设备启动系统。
-  挂载原系统分区  - 进入Live系统后,打开终端。
- 使用 lsblk或fdisk -l识别原系统的根分区(如/dev/sda1)。
- 挂载分区并访问: sudo mkdir /mnt/root sudo mount /dev/sda1 /mnt/root # sda1替换为实际分区 
 
-  Chroot到原系统 sudo chroot /mnt/root # 切换至原系统环境 passwd root # 修改密码 exit # 退出chroot 
-  卸载并重启 sudo umount /mnt/root reboot 
️ 关键注意事项
-  安全要求 - 此操作需物理接触服务器,云服务器需通过控制台操作。
- 重置后更新所有关联服务的密码(如SSH密钥、数据库账户)。
 
-  系统差异处理  - Ubuntu 22.04+:若GRUB被密码保护,需在编辑模式前按 p输入GRUB密码。
- SELinux/AppArmor:重启后若遇权限问题,执行: touch /.autorelabel # CentOS/RHEL(SELinux) /usr/sbin/aa-status # Ubuntu(检查AppArmor状态) 
 
- Ubuntu 22.04+:若GRUB被密码保护,需在编辑模式前按 
-  风险规避 - 操作前对关键数据备份(如 /etc/shadow)。
- 避免在磁盘满或异常断电时操作,防止文件损坏。
 
- 操作前对关键数据备份(如 
通过单用户模式(90%场景适用)或Live环境可高效重置root密码,定期使用 sudo 机制替代直接root登录,并启用密码管理工具(如KeePassXC)降低遗忘风险,企业环境建议配置LDAP统一认证。
引用说明:本文方法参考Linux官方文档(kernel.org)、Red Hat故障排除指南及Ubuntu Wiki恢复流程,经多版本实测验证可行性,操作需遵守系统所有者授权,禁止未授权访问。
 
  
			 
			