CentOS忘记密码的解决办法
单用户模式
这个问题出现的几率是很高的,不过,在linux下解决这个问题也很简单,只需重启linux系统,然后引导进入linux的单用户模式(init 1),由于单用户模式是不需要输入登录密码的,因此,可以直接登录系统,修改root密码即可解决问题。
重点内容:
如何重启系统,进入单用户模式(centos6.x和centox7.x方式不同)
centos 6及之前版本
系统开机界面,按e
,进入GRUB界面
选择内核,按e
进入编辑界面
选择kernel那一行,再次按e
输入single
然后回车
选择kernel这一行,按b
,进入单用户模式
然后直接执行passwd root
给root用户改密码
然后输入reboot
重启,就修改完成了
centos7及以上
开机进入引导页面 快速按e
,会停在这个界面
然后再次按e
,进入编辑界面,将光标移到linux16
这一行的行尾
在行尾加上init=/bin/sh
然后按ctrl+x,继续引导,进入单用户界面
由于centos7下,单用户模式是不可写的,需要重新挂载根目录
执行 mount -o remount,rw /
然后执行df -h
出现了乱码,暂时修改语言
查看当前语言
执行locale
修改称英文
执行export LANG=en_US
然后再查看,就没有乱码了
然后修改密码
执行passwd
注意:如果SELinux是开启的,需要创建一个文件
执行touch /.autorelabel
或者
也可以直接修改/etc/selinux/config
文件
把SELINUX=enforcing
改成SELINUX=disabled
否则
修改的密码将无法生效,导致无法登录
然后重启
因为单用户模式下,根目录已经不再是之前的根目录,所以无法找到reboot命令
需要执行exec /sbin/init
重启
然后密码就修改成功了
/boot/grub/grub.conf文件解读
- default=0: 定义了没有选择内核菜单的启动项时选择第一个内核启动。
- timeout=5 : 定义了没有任何操作时5s的超时时间。
- splashimage=(hd0,0)/grub/splash.xpm.gz 定义了开机时内核选择菜单的背景图片,可以不写这一行,但是写错也会导致机器无法启动!
- hidemenu: 隐藏内核选择菜单,按任意键出现选择菜单,可以不写这一行。
- title:内核名字标题。
- root(hd0,0) : 相对下面的内核和initrd全局定义root为第一块磁盘的第一个分区,此处的root不是真的root,而是开机时的/boot 分区,因为bootloader开机还没有加载内核以及/分区。加载的内核需要通过/boot分区加载/分区和内核。
- kernel : 定义内核文件位置,向内核文件传递必要的参数。并且指定 / 分区所在的位置
- initrd: 包括加载根分区的必要的驱动以及可以在内存当中解压释放出虚根用于加载真正的内核文件
本文来自博客园,作者:厚礼蝎,转载请注明原文链接:https://www.cnblogs.com/guangdelw/p/17138904.html