错误描述

在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文件就不见了)

总结

相比重新创建一个同名虚拟机,然后mv原来的xxx-flat.vmdk硬盘文件到新的虚拟机,更节省时间;此外也无需再次配置网卡地址。

xxx.vmdk本身是一个不到1k的文本文件,通过vi编辑查看可知真正存放数据的是xxx-flat.vmdk磁盘文件,所以只要这个文件还存在,就可以恢复。

原文来自: https://www.linuxprobe.com/restore-vmck-file.html

转载于:https://my.oschina.net/ssdlinux/blog/3086474

利用-flat.vmdk文件恢复ESXI虚拟机的vmdk文件相关推荐

  1. 使用-flat.vmdk文件恢复ESXI虚拟机的vmdk文件

    使用-flat.vmdk文件恢复ESXI虚拟机的vmdk文件 前言 前言 网上搜索半天,看了好几个人,都写的太辣鸡了,所以在解决问题后记录下 1.用SSH登录Esxi,(esxi5.5默认是不开启的, ...

  2. U盘html文件恢复不了,u盘文件突然不见了怎么恢复?恢复小技巧来了

    u盘文件突然不见了怎么恢复?u盘是我们常用的一种数据存储工具,但使用久了也会遇到一些问题,如u盘损坏.数据丢失等,今天将围绕这几个问题给大家分享一下u盘恢复方法,一起来了解下吧.#u盘数据恢复# 其实 ...

  3. 如何向虚拟服务器传送文件,如何往虚拟机内传文件的3种方法

    多分享,总有用到的时候. ------------------------------------------------------------------------ 一.创建共享文件夹(这种方法 ...

  4. suse linux系统误删除文件恢复,Linux系统下部署文件恢复神器extundelete恢复误删的文件...

    Linux系统下部署文件恢复神器extundelete恢复误删的文件 最近看到群里提到如何恢复LINUX下ext4误删的文件,之前听说过ext3分区恢复工具ext3grep,恢复ext4刚是用extu ...

  5. linux 恢复已删除的文件,恢复已删除的Linux文件

    恢复已删除的Linux文件 发布时间:2008-09-08 17:09:31   作者:佚名   我要评论 作为一个多用户.多任务的操作系统,Linux下的文件一旦被删除,是难以恢复的.尽管删除命令只 ...

  6. linux mysql 文件恢复_linux下误删数据文件恢复

    linux下文件被删除可以用很多工具进行恢复,例如undelete(适合ext2,ext3).giis(不能恢复安装giis之前的文件).ext3grep(仅限ext3).R-linux(支持ext3 ...

  7. Windows向Linux自动传输文件,Windows向虚拟机Linux传输文件方法

    在Windows中装了个centOS,进行文件操作时,把mv写成了rm,然后就悲剧了.. 赶紧从网上找来文件的具体内容,然后由Windows向Linux挂载共享文件夹. 具体做法: 在Windows中 ...

  8. 如何往linux虚拟机传文件,Windows中虚拟机Linux传输文件的两个简单的方法

    有的时候,我们可能需要把Windows中的文件上传到虚拟机Linux上去,除了常用的samba服务器,还有那些方法呢? 1.在Windows中设置共享文件,在Linux中挂载共享文件夹 2.使用fil ...

  9. android文件恢复功能,安卓手机恢复删除文件,如何恢复

    原标题:安卓手机恢复删除文件,如何恢复 安卓手机恢复删除文件,如何恢复?手机文档或许很多的人都陌生,因为我们现在手机的发展越来越好,而且我们的手机携带比我们的电脑方便,所以我们很多的人有的时候会选择手 ...

最新文章

  1. 基于OpenCV的实用图像处理操作
  2. 1%学者拥有21%引用量,全球学术圈两极分化扩大
  3. 《1---关于解决MySQL在控制台插入中文乱码问题》
  4. JVM(2)之 JAVA堆
  5. Dataset之MNIST:MNIST(手写数字图片识别+ubyte.gz文件)数据集简介、下载、使用方法(包括数据增强)之详细攻略
  6. Validation of XML with XSD
  7. es嵌套聚合dsl(求均值,求和)
  8. python apscheduler 脚本 动态_用apscheduler写python定时脚本
  9. PID控制器开发笔记(转)
  10. c c++函数资源释放时避免goto的方法
  11. 图片渲染延迟_Qt入门DirectX11学习之旅(六)DirectX11 GBuffer Deffered延迟渲染
  12. Edraw Office Viewer 8.X Edraw Office Viewer
  13. Altium Designer PCB等长线设计终极技巧(单端和差分线)
  14. OpenCore引导配置说明第十三版-基于OpenCore-0.6.6正式版
  15. matlab解耦合方程,如何在Matlab中求解耦合随机微分方程
  16. 为什么世界是由数学构成的
  17. C#-Windows计算器
  18. 专业技能与职业素养报告计算机,职业技能与职业素养的心得体会
  19. bzoj3772: 精神污染
  20. Linux学习(1)-常用快捷键、文件管理和查询 阅读目录

热门文章

  1. win10电脑如何隐藏下方任务栏
  2. 亚洲的音乐史料及其历史研究状况
  3. 电商库存系统设计mysql_详解:电商系统库存逻辑的设计
  4. SpringBoot+MongoDB GridFS文件上传、下载、预览实战
  5. 时间序列 R 08 指数平滑 Exponential smoothing
  6. 版本管理工具-Git
  7. ProxmoxVE6.2 VLAN配置
  8. FloC背后联邦计算
  9. AI学习知识点思维导图
  10. 小程序前端view内容重叠问题