公司内部服务基本都是在虚拟机上的,有次发现一个服务启动不了,一看存储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中,启动虚拟机即可。