VWmare软件版本:VMware® Workstation 16 Pro
Centos系统版本:CentOS-7.5-x86 64-Minimal-1804
文章目录
- 问题描述
- 如何解决?
问题描述
长时间没有使用Linux系统,root用户密码忘记了,登陆不上系统,如下图所示。
如何解决?
步骤如下
1.按如下步骤重启Linux,见到图二,通过键盘上下方向键选择第一个。
2.按e
,出现如下图所示的界面。
3.将光标往下滑,定位到LANG=zh_CN.UTF-8,后面追加"空格+ init=/bin/sh
", 如下图所示。
init=/bin/sh
注意:使用键盘方向键控制光标上下移动
为什么要加这个参数?
init=/bin/sh
是一个在引导加载器(如GRUB)的配置中使用的内核启动参数。这个参数用于指定系统的初始化进程(init process)。
正常情况下,Linux系统启动时会运行一个称为init
的程序(PID为1),它是所有其他用户空间进程的祖先。默认情况下,init
可能是systemd
、upstart
或sysvinit
等,取决于发行版。
当你设置 init=/bin/sh
启动参数时,你实际上是告诉系统不要启动默认的初始化系统,而是直接进入一个shell(通常是bash或者dash,位于/bin/sh
)。这种做法通常用于系统恢复或故障排查,因为它允许你在没有正常启动服务和守护进程的情况下,以root权限直接访问一个命令行界面。使用这个shell,你可以执行修复操作,比如修复文件系统、编辑配置文件或重启特定服务等。
使用这个参数需要谨慎,因为它绕过了系统的正常启动流程,可能会导致图形界面无法启动、系统服务未运行等问题。仅在清楚其后果并需要进行系统级修复时使用。
4.键盘 ctrl+x
进行引导启动,进入如下界面,如下图所示。
5.输入以下命令,重新挂载根目录。
mount -o remount,rw /
为什么要重新挂载根目录?
因为默认挂载的根目录属性为不可写的,所以需重新挂载根目录为可读写状态
6.选择要修改密码的用户名,passwd root
,然后输入两次一致的密码,依次回车。
注:所输入密码是不显示的,一定要确认输入正确
7.输入命令 touch /.autorelabel
,以更新系统信息,如下图所示。
8.输入 exec /sbin/init
命令重启系统即可,如下图所示。
紧接着,系统会自动修改密码,完成后,系统会自动重启
。
9.进入登录界面,输入修改后的密码登录即可。
至此,用户密码重置成功!!!