公司内部服务基本都是在虚拟机上的,有次发现一个服务启动不了,一看存储vmdk文件不见了,找了一下资料,解决了,记录一下过程:

虚拟文件中有个xxx-flat.vmdk的文件,就是通过它来恢复。

假设Flat.vmdk文件名为a-flat.vmdk.

1.       新建一台虚拟机Test,不挂磁盘;

2.       使用SSH客户端(putty)登陆主机,查看a.flat.vmdk文件所在目录,命令为

#find / -name a-flat.vmdk –print

假设为/vmfs/volumes/a/a-flat.vmdk.

3.       查看a-flat.vmdk文件大小,命令为

#ls –la /vmfs/volumes/a

假设为50000000000bytes(50G)

4.       查看Test所在目录,命令为

#find / -name Test –print

假设为/vmfs/volumes/Test

5.       在/Test下创建Test.vmdk文件,大小和a-flat.vmdk大小一样,命令为

#vmkfstools -c 50000000000 -a lsilogic -d zeroedthick Test.vmdk

6.       用源文件a-flat.vmdk覆盖新建的Test-flat.vmdk(在创建Test.vmdk时自动创建)命令为

#mv /vmfs/volumes/a/a-flat.vmdk /vmfs/volumes/Test/Test-flat.vmdk

7.       将新建的硬盘添加至虚拟机Test中,启动虚拟机即可。