在虚拟化环境中,VMware ESXI的root密码是管理员的核心“钥匙”。然而,密码遗忘或丢失的情况时有发生,可能导致无法登录主机、管理虚拟机,甚至影响业务连续性。本文将基于实战经验,详细解析ESXI密码重置方法,助你快速恢复系统访问。

本文主要通过 Linux救援模式修改VMware ESXI7.0.1中的shadow文件来重置密码,并且VMware ESXI系统配置不会丢失。数据无价,建议先备份数据,然后再根据本文操作,以免误操作造成数据丢失。(ps:其他版本的VMware ESXI并没有进行测试,VMware ESXI 7后面的版本开始有加密,暂时无法解密,所以本文的方法就不可行了。可以尝试使用官方说明通过重新安装来重置root密码,但是这样操作VMware ESXI主机的相关配置信息会全部丢失,就剩内部的虚拟机了)
本文主要通过ubuntu live CD来操作,具体方法如下:
    1.进入Ubuntu live CD
     选中Try or Install Ubuntu回车
     
     选择Try Ubuntu
     

 
     在终端中输入gparted查看硬盘分区,我们需要的分区一般是BOOTBANK1的/dev/sda5。
     

2.挂载/dev/sda5
为了方便操作我切换成了root来进行后面的操作。
ubuntu@ubuntu:~$ sudo passwd root
New password:
Retype new password:
passwd: password updated successfully
ubuntu@ubuntu:~$ su root
Password:
root@ubuntu:~#

root@ubuntu:~# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0   2.5G  1 loop /rofs
loop1    7:1    0  63.3M  1 loop /snap/core20/1822
loop2    7:2    0     4K  1 loop /snap/bare/5
loop3    7:3    0 346.3M  1 loop /snap/gnome-3-38-2004/119
loop4    7:4    0 240.6M  1 loop /snap/firefox/2356
loop5    7:5    0  49.8M  1 loop /snap/snapd/18357
loop6    7:6    0  45.9M  1 loop /snap/snap-store/638
loop7    7:7    0  91.7M  1 loop /snap/gtk-common-themes/1535
loop8    7:8    0   304K  1 loop /snap/snapd-desktop-integration/49
sda      8:0    0   142G  0 disk
├─sda1   8:1    0   100M  0 part
├─sda5   8:5    0     4G  0 part
├─sda6   8:6    0     4G  0 part
├─sda7   8:7    0 119.9G  0 part
└─sda8   8:8    0    14G  0 part
sdb      8:16   0    50G  0 disk
└─sdb1   8:17   0    50G  0 part
sr0     11:0    1   4.6G  0 rom  /cdrom

挂载/dev/sda5到/mnt

root@ubuntu:~# mount /dev/sda5 /mnt
root@ubuntu:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           1.3G  1.8M  1.3G   1% /run
/dev/sr0        4.6G  4.6G     0 100% /cdrom
/cow            6.4G  300M  6.1G   5% /
tmpfs           6.4G     0  6.4G   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           6.4G     0  6.4G   0% /tmp
tmpfs           1.3G  140K  1.3G   1% /run/user/999
tmpfs           1.3G   68K  1.3G   1% /run/user/0
/dev/sda5       4.0G  173M  3.9G   5% /mnt

3.将/mnt下的state.tgz压缩包备份并解压到/tmp
root@ubuntu:~# cd /mnt

查看是否有state.tgz压缩包

root@ubuntu:/mnt# ls
b.b00         features.gz   lpfc.v00      mtip32xx.v00  nvmxnet3.v00          qfle3.v00     useropts.gz
bnxtnet.v00   gc.v00        lpnic.v00     native_m.v00  nvmxnet3.v01          qflge.v00     vdfs.v00
bnxtroce.v00  i40en.v00     lsimr3.v00    ne1000.v00    onetime.tgz           qlnative.v00  vim.v00
boot.cfg      i40iwn.v00    lsimsgpt.v00  nenic.v00     payload.v00           rste.v00      vmkata.v00
brcmfcoe.v00  icen.v00      lsi_msgp.v00  nfnic.v00     preupgrade-state.tgz  sb.v00        vmkfcoe.v00
brcmnvme.v00  igbn.v00      lsi_msgp.v01  nhpsa.v00     procfs.b00            sfvmk.v00     vmkusb.v00
btldr.v00     imgdb.tgz     lsuv2_hp.v00  nmlx4_co.v00  pvscsi.v00            smartpqi.v00  vmw_ahci.v00
crx.v00       intelnvm.v00  lsuv2_in.v00  nmlx4_en.v00  qcnic.v00             state.tgz     vmware_e.v00
elx_esx_.v00  iser.v00      lsuv2_ls.v00  nmlx4_rd.v00  qedentv.v00           s.v00         vmx.v00
elxiscsi.v00  ixgben.v00    lsuv2_nv.v00  nmlx5cor.v00  qedf.v00              tpmesxup.v00  vsanheal.v00
elxnet.v00    jumpstrt.gz   lsuv2_oe.v00  nmlx5rdm.v00  qedi.v00              tpm.v00       vsanmgmt.v00
esx_dvfi.v00  k.b00         lsuv2_oe.v01  ntg3.v00      qedrntv.v00           uc_amd.b00    vsan.v00
esx_ui.v00    lnvcusto.v00  lsuv2_oe.v02  nvme_pci.v00  qfle3f.v00            uc_hygon.b00  weaselin.v00
esxupdt.v00   loadesx.v00   lsuv2_sm.v00  nvmerdma.v00  qfle3i.v00            uc_intel.b00  xorg.v00

将state.tgz备份

root@ubuntu:/mnt# cp state.tgz state.tgz.bak

将state.tgz复制到/opt

root@ubuntu:/mnt# cp state.tgz /opt
root@ubuntu:/mnt# cd /opt
root@ubuntu:/opt# ls
state.tgz

解压state.tgz

root@ubuntu:/opt# tar xzf state.tgz
root@ubuntu:/opt# ls
local.tgz  state.tgz

解压local.tgz

root@ubuntu:/opt# tar xzf local.tgz
root@ubuntu:/opt# ls
etc  local.tgz  state.tgz  var
root@ubuntu:/opt#

4.修改shadow文件
root@ubuntu:/tmp# cd etc

可以看到etc文件夹里的shadow文件

root@ubuntu:/tmp/etc# ls
chkconfig.db          hosts      random-seed  security  shadow  vmsyslog.conf    vmware
dhclient-vmk0.leases  krb5.conf  resolv.conf  sfcb      ssh     vmsyslog.conf.d

编辑shadow文件,并按下面的图片修改内容

root@ubuntu:/tmp/etc# nano shadow

可以看到第一行的root,将前两个冒号之间的全部删除,这是关于root密码的字段内容。

删除后如下图所示,然后保存退出

修改完成

root@ubuntu:/tmp/etc# cat shadow
root::20208:0:99999:7:::
dcui:*:13358:0:99999:7:::
vpxuser:*:14875:0:99999:7:::

  1. 把修改后的文件再打包回去,然后替换挂载点里的源文件

    返回到上一级目录

    root@ubuntu:/opt/etc# cd ..
    root@ubuntu:/opt# ls
    etc  local.tgz  state.tgz  var
    root@ubuntu:/opt# tar czf local.tgz etc
    root@ubuntu:/opt# tar czf  state.tgz  local.tgz
    root@ubuntu:/opt# cp  state.tgz  /mnt/

    卸载文件

    root@ubuntu:/opt# umount /mnt

    重启

    root@ubuntu:/opt# reboot

  2. 重启进入系统查看是否清除root密码
    按F2,若密码清楚成功,则此时root的密码就是为空了。现在直接回车,就可直接进入ESXI。

可以看到回车后直接进入了ESXI设置界面,在这边可以重新设置新的密码

选中Configure Password,然后就可以修改新密码了

这样VMware ESXI7.0.1的root密码就成功重置成功了!