[技术干货] 单用户模式重置密码报错“Authentication token manipulation error”的解决办法

【适用场景】

本文适用于Linux系统磁盘使用率100%导致的无法重置密码或无法正常操作主机。

【场景诉求】

服务器密码忘记后,用官网控制台重置密码功能重置无效,vnc无法登录,且服务器启动过程中有报错:

1.png

尝试进入单用户模式修改密码,passwd执行后,有报错:Authentication token manipulation error

2.jpg

【问题分析】

由上图服务器启动过程中某些服务的报错信息“No space left on device”,说明有磁盘已经没有剩余空间。故解决方案有两种,一种是删除不用的文件释放磁盘空间,另外一种是对系统盘直接扩容。

对于方案一,现在密码忘记了,官网重置密码也无效,无法正常登录进系统,只能单用户进去删除不用文件释放磁盘空间;

对于方案二,由于系统盘已满导致某些服务和命令无法修改或创建文件,故直接在控制台扩容系统盘重启后,系统分区并不能正常扩大,依然无法正常进入系统。故也只能单用户模式手动调整扩大系统分区。

【操作步骤】

本文以CentOS 7.6系统为例,进入单用户模式方法请参考:

https://support.huaweicloud.com/trouble-ecs/ecs_trouble_0312.html

方案一:删除文件释放磁盘空间

1、正常进入单用户模式:

3.png

可以运行以下命令查看磁盘剩余空间:

/sysroot/bin/df -hT

4.png

如上图系统盘剩余确实为0,使用率100%

2、删除不用的文件:

/sysroot/下,查找和核实一些不用的文件,删除掉:

5.png

查看剩余空间:

6.png

如图所示,已有足够剩余空间了。继续单用户重置密码操作重置用户密码即可。

7.jpg

方案二:扩容系统盘

须知:扩容时请谨慎操作,误操作可能会导致数据丢失或者异常,建议扩容前对数据进行备份,可以使用CBR或者快照功能。

1、先在官网控制台扩容下系统盘:

8.png

2、正常进入单用户模式

运行以下命令查看系统磁盘使用情况:

/sysroot/bin/df -hT

9.png

/sysroot/sbin/fdisk -l

10.png

3fdisk命令扩容

运行以下命令增大磁盘分区

/sysroot/sbin/fdisk /dev/vda

11.png

如上图,输入“p”记录设备分区名“/dev/vda1”和分区开始扇区数值“2048”。

12.png

输入“d”删除上面记录的磁盘设备分区/dev/vda1(因为此磁盘就一个分区,所以默认就删除此分区了)。

接下来,输入“n”新建分区,输入“p”选择主分区,输入“1”和上面记录的磁盘开始扇区“2048”和默认的末尾扇区值(都是默认的,可以回车即可)。最后再输入“w”保存即可:

13.png

reboot

重启服务器,并再次进入单用户模式,运行以下命令:

/sysroot/sbin/resize2fs -f /dev/vda1

/sysroot/bin/df -hT

查看已经扩容成功。

14.png

最后,按照单用户重置密码进行后续操作即可:

15.jpg