怎么利用flat.vmdk文件恢复ESXI虚拟机的vmdk文件

84次阅读
没有评论

共计 2656 个字符,预计需要花费 7 分钟才能阅读完成。

这篇文章主要讲解了“怎么利用 flat.vmdk 文件恢复 ESXI 虚拟机的 vmdk 文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“怎么利用 flat.vmdk 文件恢复 ESXI 虚拟机的 vmdk 文件”吧!

错误描述

在 vSphere 上,一次重启虚拟服务器时出现启动不了,提示找不到 vmdk 虚拟磁盘文件

原因分析

查看这台虚拟服务器的摘要信息,对比 datastore 上其他可用的虚拟机,发现损坏的服务器上确实缺少一个 vmdk 磁盘文件,但是可以看见一个 50G 的 xxx-flat.vmdk 文件;而正常的服务器只有 xxx.vmdk,没有 xxx-flat.vmdk,关机之后两个文件都存在,而且真实的磁盘容量从 vmdk 转移到了 xxx-flat.vmdk。

虚拟主机在运行的时候,实际在使用的是 xxx-flat.vmdk,然而 xxx.vmdk 是可以同时被删除的,才导致了问题。

这里需要说明,虚拟机的每个磁盘驱动器都包含了一对.vmdk 文件。一个是文本文件,包含了关于虚拟硬盘的描述数据;另外一个是磁盘的实际内容。例如,一个名为 examplevm 的虚拟机连接有一个硬盘。这个磁盘由如下两个文件构成:一个小于 1KB 的 examplevm.vmdk 描述文件和一个 10GB 大小的 examplevm- flat.vmdk 平面(数据)文件,该文件包含虚拟机的实际数据,而这些数据又是以二进制的形式存放在物理磁盘上,examplevm.vmdk 描述文件就是描述这种映射关系的。.

解决办法

1) 用 ssh 登录 vsphere 主机,查找 xxx-flat.vmdk 文件所在的位置以及目录,并记录文件的大小

~ # find / -name  新建虚拟机 -flat.vmdk 
/vmfs/volumes/50a98441-ab02c8b7-e60a-001517712dce/ 新建虚拟机 / 新建虚拟机 -flat.vmdk
~ # ls -l /vmfs/volumes/50a98441-ab02c8b7-e60a-001517712dce/ 新建虚拟机 / 新建虚拟机 -flat.vmdk
-rw------- 1 root root 53687091200 Apr 16 09:13 /vmfs/volumes/50a98441-ab02c8b7-e60a-001517712dce/ 新建虚拟机 / 新建虚拟机 -flat.vmdk

注意,ESXi5 默认没有开启 ssh,需要通过 vsphere client 登录服务器,【配置】【安全配置文件】【服务 - 属性】手动开启。

2) 重命名 xxx-flat.vmdk 文件

~# cd /vmfs/volumes/50a98441-ab02c8b7-e60a-001517712dce/ 新建虚拟机 /
/vmfs/volumes/50a98441-ab02c8b7-e60a-001517712dce/ 新建虚拟机_1 # mv  新建虚拟机 -flat.vmdk tmp_新建虚拟机 -flat.vmdk
/vmfs/volumes/50a98441-ab02c8b7-e60a-001517712dce/ 新建虚拟机  # ls -la
drwxr-xr-x 1 root root 1680 Apr 21 05:47 .
drwxr-xr-t 1 root root 2660 Apr 18 03:16 ..
-rw-r--r-- 1 root root 102076 Apr 18 10:05 vmware.log
-rw------- 1 root root 96468992 Apr 18 05:43 vmx- 新建虚拟机 -578288005-1.vswp
-rw------- 1 root root 2147483648 Apr 18 05:43  新建虚拟机 -2277f985.vswp
-rw------- 1 root root 53687091200 Apr 21 05:47  新建虚拟机 -flat.vmdk
-rw------- 1 root root 8684 Apr 21 05:47  新建虚拟机.nvram
-rw------- 1 root root 503 Apr 18 05:44  新建虚拟机.vmdk
-rw-r--r-- 1 root root 0 Apr 16 09:13  新建虚拟机.vmsd
-rwxr-xr-- 1 root root 3690 Apr 18 05:43  新建虚拟机.vmx
-rw------- 1 root root 0 Apr 18 05:43  新建虚拟机.vmx.lck
-rwxr-xr-- 1 root root 3690 Apr 18 05:43  新建虚拟机.vmx~

3) 在虚拟机目录下创建 xxx.vmdk 文件,大小要和 xxx-flat.vmdk 一样大

/vmfs/volumes/50a98441-ab02c8b7-e60a-001517712dce/ 新建虚拟机  # vmkfstools -c 53687091200 -a lsilogic  新建虚拟机.vmdk
Create: 100% done.
/vmfs/volumes/50a98441-ab02c8b7-e60a-001517712dce/ 新建虚拟机  # ls -la *vmdk
-rw------- 1 root root 53687091200 Apr 21 05:49  新建虚拟机 -flat.vmdk
-rw------- 1 root root 503 Apr 18 05:44  新建虚拟机.vmdk

4) 将原来的 (tmp_)xxx-flat.vmdk 覆盖掉刚创建的同样大小的 xxx-flat.vmdk

/vmfs/volumes/50a98441-ab02c8b7-e60a-001517712dce/ 新建虚拟机  # mv tmp_新建虚拟机 -flat.vmdk  新建虚拟机 -flat.vmdk

重命名操作很快完成,启动虚拟机既可以恢复。(改完名后新建虚拟机 -flat.vmdk 文件就不见了)

感谢各位的阅读,以上就是“怎么利用 flat.vmdk 文件恢复 ESXI 虚拟机的 vmdk 文件”的内容了,经过本文的学习后,相信大家对怎么利用 flat.vmdk 文件恢复 ESXI 虚拟机的 vmdk 文件这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计2656字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)