公司生产环境中的一台esxi虚拟机,访问不了,第一时间查看机器属性发现是一台虚拟机,登录vcenter定位宿主机位置。重置虚拟机电源后显示丢失vmdx文件。下面就开始通过flat.vmdk恢复esxi虚拟机。

        一、需要开启esxi服务器的ssh远程访问

    开启esxi服务器方法有三种:

    第一种方法:通过带外访问esxi

        1,启动控制台                        

        image.png

        2、按F2输入root密码,回车。

        image.png

        3、找到Troubleshoting Options回车

        image.png

        4、选择Enable SSH,回车,右侧显示SSH is Enabled即为开启了SSH

        image.png

        第二种方法:通过网页访问esxi服务器授权开启SSH服务器

        访问esxi页面-->操作-->服务器-->启用安全Shell (SSH),即可通过客户端ssh远程访问esxi服务器。

            image.png

        第三种方法:通过vSphere Client设置esxi服务器开启SSH服务

        登录vSphere Client找到配置安全配置文件,右侧的服务属性。

            image.png

        找到SSH服务器点右下角的选项,启动服务器即可通过客户端连接esxi服务器

            image.png

        二、客户端连接esxi服务器

        

            image.png

        这里我使用了本地PC安装了esxi服务器模拟故障,首先创建了一个虚拟机win7专业版,创建完成后,如下图

            image.png

        开始模拟丢失vmdk配置文件   

     image.png

        这里模拟丢失vmdk文件,rm -rf win7.vmdk

            image.png    

        打开虚拟机电源,会报错如下图

            image.png

    

    vmkfstools -c 107374182400 -a lsilogic -d thin temp.vmdk

    这条命令会创建一个vmdk虚拟机磁盘文件和vmdk配置文件

    将temp.vmdk重命名为win7.vmdk

        image.png

    编辑win7.vmdk,修改图中temp-flat.vmdk为win7-flat.vmdk,ddb.thinProvisioned = "1"注释或者删除。

        image.png   

    修改完后,开启虚拟机win7

        image.png

    正常启动

    

    延伸:如果你的虚拟机目录下只剩下一个flat.vmdk文件怎么办,是否也能恢复系统。

    这里一定要确保你esxi虚拟机的flat.vmdk文件存在而且没有被损坏,今天也测试了只有一个flat.vmdk文件也可以恢复系统。

    前提是在原虚拟机目录。

    执行:vmkfstools -c 107374182400 -a lsilogic -d thin temp.vmdk生成配置文件

    配置文件的修改前面已经讲过,不会的请爬楼。

    你正常创建了一个虚拟机,自动创建虚拟机,添加现有的虚拟磁盘

    image.png

    原目录只要有vmdk配置文件也能在新的虚拟机中添加虚拟磁盘(相当于迁移虚拟机了)

    image.png

    结果证明也可以恢复系统。