声明:本文参考https://www.top-password.com/knowledge/reset-esxi-root-password.html中提到的挂载Ubuntu Live CD来清除ESXi原有密码,使ESXi再启动时可以通过空密码登陆后台,然后重新设置密码。如果英文阅读没问题的可以直接去看原文。
官方KB中虽然说ESXi的root密码只能通过重新安装来重置,但还是有网友成功通过上面提到的办法来重置。
由于物理机操作和拍照比较麻烦,我用ESXi中嵌套安装的ESXi挂载Live CD做演示。
以最新的ESXi7.0 Update1和Ubuntu 20.04 Live CD为例。
假设现在我们忘记root密码,无法登陆后台或者ESXi网页端了。
关闭ESXi主机,插上Ubuntu Live CD启动盘(可以是光驱,U盘等),我这里是嵌套ESXi,直接挂载ISO。
开机进入BIOS设置,确保LIVE CD启动在ESXi(硬盘)之前。
选择Try Ubuntu。
系统加载完毕后,点选Show Applications(左下角)。
搜索并运行gparted。
在ESXi7中我们要找的分区应该是这个BOOTBANK1的/dev/sda5。
关闭GParted并运行Terminal。
运行下面这几行命令,将该分区挂载到/mnt。
sudo -s
mount /dev/sda5 /mnt
cd /mnt
ls
找到我们需要的state.tgz压缩包。
然后将压缩包复制到临时目录/tmp,解压,查找local.tgz压缩包。
cp state.tgz /tmp
cd /tmp
tar xzf state.tgz
ls
找到了local.tgz压缩包。
解压local.tgz进入etc目录,找到shadow文件。
tar xzf local.tgz
ls
cd etc
ls
使用vi或者nano编辑shadow文件,以nano为例。
nano shadow
删除root后面第一个冒号和第二个冒号之间的内容(保留2个冒号)。
在nano编辑器中,Ctrl+X退出,提示是否保存修改时Y。
然后回车(使用当前文件名)。
接下来我们退回到etc上级目录,将修改的文件反向的打包压缩并覆盖/mnt/挂载点里的内容,然后取消挂载。
cd ..
tar czf local.tgz etc
tar czf state.tgz local.tgz
cp state.tgz /mnt/
umount /mnt
这时候物理机可以关闭Ubuntu Live CD系统,并弹出光驱或者拔掉Live CD U盘,我这里在嵌套的ESXi虚拟机设置中把ISO文件停止挂载。
保存,开机,等待ESXi加载完成。
按F2,使用root空密码,回车。
成功,可以去设置新密码了。