Sunday, May 26, 2019

ESXi 6.5 恢复root密码记录

由于时间悠久,忘及了一台UCS服务器上ESXi 6.5的root密码,试了经常使用的Password还是进不去系统,最终决定重置root 密码。
VMware 官方给出的文档中,ESXi 6.X重置密码只有一种方法,那种是重装ESXi。此做法会删除掉原来系统中的网络配置信息,以及虚拟机的注册信息。
后来查询网络上的还有一种重置密码的方式,并且不会丢任何配置,简直完美。
故决定尝试此方法。

此方法如下:

首先我们要知道如何才能清空或者更改Linux(esxi宿主系统也是基于Linux的)的密码,那就是/etc/shadow文件。下面是一个例子:
  1. [root@server3 ~]# cat /etc/shadow
  2. root:$6$iPXm3umdXcylLJcT$5IGiI4pso/SrkCw3VRqi1lQZDnvtP50REuaN/Q4aXCvcmN7Za4HcCrgjxVRxUxdww8VpMYbj2oPm51ittaPrF/::0:99999:7:::
  3. bin:*:17632:0:99999:7:::
  4. daemon:*:17632:0:99999:7:::
  5. adm:*:17632:0:99999:7:::
我们要做的就是使用第三方系统进入主机,越权操作Esxi宿主机系统的/etc/shadow文件。
在这里我们介绍一下Esxi使用了多个磁盘分区。其中一个比较特别的叫做bootbank。此分区包含管理程序核心文件和主机配置,这最终会被加载到内存中。默认情况下,分区称为/dev/sda5。
我们所关注的/etc/shadow文件位于名为state.tgz的压缩存档中,该存档位于/dev/sda5下。
所以,这就是我们需要做的。
  • 下载Live Linux CD/DVD。从这个列表中选择。我选择了Centos  7。
  • 使用Live CD/DVD刻录USB或CD/DVD,然后启动主机。
  • 挂载/dev/sda5并将state.tgz复制到临时文件夹。
  • 解压缩state.tgz并编辑影子文件。
  • 重新压缩存档并用它覆盖state.tgz
  • 卸载并重新启动主机。

第一步:从Centos 7官网下载相关镜像。保存在本地,然后有两种方法可以使用Centos镜像将Server引导起来,第一种就是平常使用的,将Centos IOS镜像文件使用UltraIOS(中文名叫软碟通)写入的U盘,然后使用U盘引导server启动。此方法适用于所有设备。第二种方法就是比较专业的,真正的Server中才会有的远程管理卡。比如:Dell的叫做iDRAC,CISCO的UCS叫做CIMC(Cisco Integrated Management Controller)等,使用远程管理卡中的JAVA控制台,将IOS虚拟成一个CD来引导系统,此方法对网络要求高,但是不用去现场,比如我这次使用的就是CIMC,server在印度的班加罗尔,但是我在中国大陆。

进入CentOS7系统安装界面
4.png
进入救援模式
5.png

4、救援模式下,挂载磁盘

  1. mkdir /mnt/sda5
  2. mount /dev/sda5 /mnt/sda5 
  3. cp /mnt/sda5/state.tgz /tmp/.
  4. cd /tmp
  5. tar xvfz state.tgz
  6. tar xvfz local.tgz
  7. vi /tmp/etc/shadow
把类似如下图root开头,键盘上下左右键,把光标移动到第1个冒号后面,按"x"键,把画红线内容给清除掉,
666.png


完成后如下图,然后 按 "ESC" 输入:wq  回车就保存退出了。不要忽略了冒号(:)此冒号也是命令的一部分。
777.png

5、把文件恢复原样,拷回原位

  1. rm -f *.tgz
  2. tar cf local.tgz etc
  3. tar cf state.tgz local.tgz
  4. cp state.tgz /mnt/sda5/.
  5. umount /mnt/sda5
  6. reboot

6. 重启后密码就清空了。


注意在第五步中的重启时需要移除Centos的引导,直接使用ESXi 6.5引导系统即可,等开机后按F2进入输入密码的界面,密码为空直接按回车即可进入ESXi。


No comments:

Post a Comment