CentOS虚拟机忘记root密码快速安全重置的全流程

 更新时间:2025年09月04日 09:46:11   作者:代码怪兽大大作战  
在本地使用虚拟机进行测试时,长时间不登录很容易忘记密码,本文将详细介绍如何通过GRUB引导参数修改,安全重置CentOS虚拟机的root密码,本方法适用于CentOS 7/8/9及兼容系统,需要的朋友可以参考下

一、操作原理图解

二、详细操作步骤

1. 进入GRUB编辑模式

  • 启动虚拟机时,在CentOS启动Logo出现前快速按 E 键进入编辑。
  • 如果是UEFI启动,先按 ESC 键进入GRUB菜单,再选择内核项后按 E

  • 进入编辑模式

2. 修改启动参数

  • 定位到以 linux16(CentOS7)或 linux(CentOS8/9)开头的那行。
  • ro(只读)改为 rw(读写)。
  • 在行尾追加 init=/sysroot/bin/sh
  • 注意各参数间保持空格分隔。

3. 进入单用户模式Shell

  • Ctrl+XF10 启动修改后的引导项。
  • 系统进入临时root shell,提示符通常为 :/#

4. 挂载系统并重置密码

# 重新挂载根文件系统为读写
mount -o remount,rw /

# 进入系统根目录环境
chroot /sysroot

# 设置环境变量,避免乱码
LANG=en

# 修改root密码,输入两遍新密码
passwd root

看到 passwd: all authentication tokens updated successfully. 表示密码重置成功。

5. SELinux重标记(重要)

CentOS默认启用SELinux,修改密码后需重标记文件系统,避免登录失败。

touch /.autorelabel

查看SELinux状态(可选)

sestatus

若显示 disabled,则可跳过上步。

6. 安全退出并重启

# 退出chroot环境
exit

# 强制重启系统,触发SELinux重标记
reboot -f

系统重启过程中可能耗时较长,请耐心等待。

7. 使用新密码登录

重启完成后,使用刚设置的密码登录系统即可。

三、注意事项与技巧

SELinux重标记问题:
若忘记执行 touch /.autorelabel,可能导致系统登录失败。重启进入GRUB编辑,追加 enforcing=0 以临时禁用SELinux。

调整GRUB超时时间,方便操作:

编辑 /etc/default/grub,修改:

GRUB_TIMEOUT=5
GRUB_DISABLE_SUBMENU=true

保存后执行:

grub2-mkconfig -o /boot/grub2/grub.cfg

重置其他用户密码:

chroot /sysroot
passwd username

文件系统只读问题:

如果遇到无法写入,执行:

mount -o remount,rw /sysroot
e2fsck -f /dev/mapper/centos-root

根据实际设备名调整。

四、常见问题解答

问题解决方案
GRUB界面按E无反应检查虚拟机EFI设置,尝试开启/关闭EFI或从虚拟机管理界面重启到固件菜单。
密码重置后仍无法登录进入单用户模式时追加 enforcing=0 参数禁用SELinux,检查日志:journalctl -p 3 -xb
文件系统只读无法修改使用 mount -o remount,rw /sysroot 强制读写,必要时检查磁盘健康。

以上就是CentOS虚拟机忘记root密码快速安全重置的全流程的详细内容,更多关于CentOS root密码重置的资料请关注脚本之家其它相关文章!

相关文章

  • linux控制台下实现2048小游戏

    linux控制台下实现2048小游戏

    2048小游戏已经火了很久了,各种程序版本的都有,今天我们就来给大家分享一个在Linux控制台中实现2048小游戏的代码,希望大家能够喜欢。
    2015-03-03
  • 在Linux中查看所有正在运行的进程的方法

    在Linux中查看所有正在运行的进程的方法

    这篇文章主要介绍了在Linux中查看所有正在运行的进程的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Linux查看最新下载文件的三种方法详解

    Linux查看最新下载文件的三种方法详解

    在 Linux 中查看最新下载的文件,核心思路是按修改时间/访问时间排序查找文件,本文一共提供了3 种实用方法,文中的示例代码讲解详细,有需要的小伙伴可以了解下
    2026-02-02
  • 安装CentOS 6.x报错

    安装CentOS 6.x报错"Disk sda contains BIOS RAID metadata"解决方法

    今天在安装CentOS6.2的时候,当进到检测硬盘的时候,总是过不去,报错如下: Disk sda contains BIOS RAID metadata, but is not part of any recognized BIOS RAID sets. Ignoring disk sda,真是不知如何解决,下面小编把我的思路分享到脚本之家平台,需要的朋友参考下
    2019-11-11
  • Linux下使用中文输入法的实现方式

    Linux下使用中文输入法的实现方式

    这篇文章主要介绍了Linux下使用中文输入法的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2026-03-03
  • 使用VSCode的Remote-SSH连接Linux进行远程开发

    使用VSCode的Remote-SSH连接Linux进行远程开发

    这篇文章主要介绍了使用VSCode的Remote-SSH连接Linux进行远程开发,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 让apache显示目录列表的配置方法

    让apache显示目录列表的配置方法

    本文教大家配置apache显示目录列表的方法,有需要的朋友不妨参考下
    2013-02-02
  • Linux 6下安装编译安装Nginx的步骤

    Linux 6下安装编译安装Nginx的步骤

    这篇文章主要介绍了Linux 6下安装编译安装Nginx的步骤的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
    2017-10-10
  • Linux系统管理与进程任务管理方式

    Linux系统管理与进程任务管理方式

    本文系统讲解Linux管理核心技能,涵盖引导流程、服务控制(Systemd与GRUB2)、进程管理(前台/后台运行、工具使用)、计划任务(at/cron)及常用命令,强调实践与工具优化对构建高效稳定Linux环境的重要性
    2025-08-08
  • Linux中Homebrew的正确使用方法

    Linux中Homebrew的正确使用方法

    这篇文章主要给大家介绍了关于Linux中Homebrew的正确使用方法,文中通过示例代码介绍的非常详细,对大家学习或者使用Linux系统具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09

最新评论