背景:
EXSI root密码用于管理EXSI主机,若丢失,虚拟机在没有开启自动启动的情况下,一旦EXSI主机停电,重启,或者意外死机,虚拟机将无法启动。
思路:
EXSI系统 用户以及密码都存储在EXSI数据文件中,密码通常是MD5加密的,密码密文为MD5 Hash值,可通过将密码文件Hash值清空并打包新的密码文件,来实现重置root密码为空。
方法:
下载Linux 系统镜像(推荐Centos以及Ubuntu),这里我使用的是centos8.3,EXSI版本为7.01
让EXSI主机从linux镜像启动,进入shell执行下列操作
1. 查看磁盘分区
fdisk -l
2.挂载EXSI数据盘(本文中用的sda6为EXSI数据文件盘,大多数情况下sda5为EXSI数据文件盘。 如何确定是哪一个磁盘是EXSI文件盘呢,当你执行第三步中cp /mnt/sda6/state.tgz /tmp,若此命令不报错,则sda6为EXSI文件盘,若此命令提示无该文件或者目录,则sda6不是EXSI文件盘,逐个sda盘挂载试验可最终找到EXSI文件盘)
mkdir /mnt/sda6
mount /dev/sda6 /mnt/sda6
3.删除root 密码并 删除密码文件
cp /mnt/sda6/state.tgz /tmp
cd /tmp
tar xf state.tgz #解压
tar xf local.tgz #继续解压
vi etc/shadow #删除root行第一个冒号与第二个冒号之间的字符串,保存后退出(按X可删除光标后面的内容)
rm /tmp/state.tgz /tmp/local.tgz #删除密码文件
4.创建新的密码文件
tar czf local.tgz etc/ #创建新的密码文件
tar czf state.tgz local.tgz
5.拷贝密码文件到EXSI数据盘
cp state.tgz /mnt/sda6/ #拷贝密码文件到EXSI数据盘
6.重启物理机
reboot
系统重启后,按F2,root 密码为空,设置新的root 密码
此方法对VM EXSI 虚拟机 ,宿主机都无任何影响。相对于官方提供的再次安装EXSI,则需要重新配置虚拟机管理网络(宿主机),重新挂载存储,重新添加虚拟机等。