虚拟平台管理术:忘记 ESXi 主机的 root 密码该怎么办?
无论是哪一种操作系统,从实体主机到虚拟主机,从 Intranet 到 Cloud 如此繁多,不同的系统可能都有不同的密码规则,久而久之对于一些已经不常登录管理的系统,就可能忘记最重要的管理员密码。
而对于已经正在运行且拥有多个虚拟机的 ESXi 主机,忘记了唯一的 root 帐号密码,此时不管是透过 ESXi 主控台来登录,或是以 vSphere Client 来登录,皆无法通过身份验证,这时应怎么办呢?
以下操作可能会对系统造成不可逆的破坏,请谨慎操作。
从 ESXi 主控台登录
当您尝试以错误的密码来登录 ESXi 主控台时会出现如下图所示的验证失败讯息,此时若再尝试以 vSphere Client 来登录也肯定无法成功的。这时候如果您的 ESXi 主机有事先纳入了 vCenter Server 的管理范围,其实是可以透过 vSphere Web Client 的登录来修改该主机的 root 密码。但是如果没有事先作 vCenter Server 的管理,那么就需要透过接下来的做法来解决这个问题了。
验证失败
原则上您只要准备一个有提供 LiveDVD 的 Linux 发行版本,然后透过它来开机启动 ESXi 主机并且重置 root 帐户密码即可。在此笔者以 Ubuntu 15.04 安装映像档为例。当启动至如下图所示的 Welcome 页面之后,请直接点选[Try Ubuntu]按钮来启动系统即可。
Ubuntu 映像档启动选单
成功进入到 Ubuntu 桌面之后,请如下图所示在桌面任何一个位置按下鼠标右键点选[Open Terminal]以启动终端。当然这操作也可从菜单的搜索功能中来开启。
Ubuntu 桌面右键选单
开启 Terminal 命令提示列之后,我们必须先下达 sudo passwd root 来设定 Ubuntu 的默认 root 密码,然后再下达 su – 命令来切换到 root 的执行身份,切换过程中会询问刚刚所设定的 root 密码。也唯有 root 权限才能够继续完成接下来的操作设定。
设定 Ubuntu 管理员密码
接下来请开启 Ubuntu 的搜索页面,来找到并开启如下图所示的 GParted 磁盘管理工具,以便确认目前 ESXi 主机系统资料存放位置。在这个范例中就是 /dev/sda5 这个磁盘分区。
GParted 磁盘管理工具
接下来请回到 Terminal 命令提示列并下达 mount /dev/sda5 /mnt,来将这个系统分区挂载至 /mnt 这个目录。在执行 ls -l /mnt 便可以看到此分区中的文件清单,如下图所示其中 state.tgz 便是我们需要修改的文件,请下达 cp /mnt/state.tgz /tmp 命令来将它复制一份至 /tmp 的目录之中。
复制 ESXi 主机档案
接着我们必须在 /tmp 的路径下,如下图所示透过 tar 命令将 state.tgz 解压缩,然后将解压缩出来的 local.tar 档案,再执行一次解压缩操作。这两个连续动作都只要下达 tar -zxvf 命令参数即可达成。
解压缩档案
完成 local.tar 档案的解压缩之后,请进入到 etc 目录下。如下图所示透过下达 ls 命令,便可以看到一个关于 Linux 系统专门用来储存账户信息的 shadow 文件。请使用任何文字编辑器来开启它,在此笔者直接输入 vi shadow。
查看 etc 目录内容
如下图所示便是 shadow 文件的内容,其中帐户的密码部分都是经过编码处理过的,因此对于 root 的帐户而言,我们只能够选择将它的密码字段先清空,然后再透过 ESXi 主控台来变更其密码即可。
修改 shadow 设定档
完成 shadow 文件内容的修改之后,我们必须重新打包前面步骤中所解压缩的两个系统文件。如下图所示请切换至 /tmp 目录下,然后下达 tar czf local.tgz etc 命令参数,来先将 etc 目录打包成 local.tgz 文件。最后再下达 tar czf state.tgz local.tgz 命令参数来将 local.tgz 档案打包至 state.tgz。确认以上打包的顺序无误之后,请下达 cp state.tgz /mnt/ 命令参数,来将 state.tgz 档案复制到 /mnt 路径下。完成复制后请下达 umount /dev/sda5 来卸载此磁盘分区。
重新打包系统压缩档
重新启动此 ESXi 主机再次进入到 ESXi 主控台。请按下[F2]键并以没有密码的 root 帐户登入系统。在[System Customization]选单页面中,请选择进入[Configure Password]页面,然后如下图所示重新设定新密码即可。按下[Enter]完成设定。终于解除忘记 root 密码的窘境!
修改 root 密码
小提醒:为了避免其它系统也可能因发生忘记默认管理员密码,而导致无法进行连线管理的窘境,建议您最好能够为每一个系统都建立好第二组的管理员帐密,甚至于建立第三组、第四组给其他 IT 人员来管理使用,然后停用默认的管理员帐户。如此一来不仅让系统更安全,也不会发生无其他管理员帐户可登入的情况。
结论
vSphere ESXi 6.0 的细微管理技巧当然不仅于此,因为光是藏在 vSphere Client 以及 vSphere Web Client 图形接口之中的细微之处,就已经难以道尽了,更遑论其他藏在 vSphere CLI 以及 vSphere Power CLI 命令主控台中的各项技巧了,要是全部都让您领悟与精通,那么可以说无论 vSphere 的整体架构设计如何复杂,您都将可化繁为简轻松应付每一天的维护作业,以及各式各样突如其来的紧急状况。还想知道更多有关于 vSphere 6.0 从 ESXi 主机到虚拟机器、网络、储存设备以及安全控管的技巧吗?未来笔者将会持续不定期的与大家来分享。