虚拟机文件丢失,通过xx-flat.vmdk与xx-delta.vmdk文件还原虚拟机

背景

环境:VMware Sphere 6.0下Windows Server 2012 R2虚拟机

某天在进行服务器运维时,将虚拟机关机后,重启提示报错,错误信息如下图所示
报错截图从报错信息看来,应该是某些文件缺失了,思来想去想到之前曾有一次进行空间清理过程中,不小心删除了部分文件,突然感觉世界一片黑暗,还好这个问题不止我碰到,通过度娘,我终于找到了解决办法,让我不用背负骂名,在此记录下整个服务器还原过程,帮助那些和我一样的兄弟们,也告诫自己以后不要手痒乱删了。

VM虚机服务器文件介绍

常见的文件说明可以查看我另一片文章:
VMWare虚拟机快照技术深入理解

此处我先介绍 flat.vmdk、delta.vmdk两个文件的作用。

flat.vmdk介绍

这是个默认的大型虚拟磁盘数据文件,创建于你添加虚拟硬盘驱动到虚拟机时,大小相当于你添加的磁盘大小,我的理解,就是你添加的硬盘。

delta.vmdk介绍

这是当虚拟机创建快照后,产生的虚拟磁盘数据,当创建快照后,原有的flat.vmdk是不在写入数据了,变成只读状态,后续都会往delta.vmdk写入数据,初始大小为16MB,后续会以16MB的速度进行增长。由于原始的磁盘大小是由flat.vmdk的大小,所以delta.vmdk的大小是不会超过flat.vmdk的。

由于上述文件都还在,这说明数据都是存在的,只是系统缺少了部分配置文件。

解决方案

解决步骤

  • 根据flat.vmdk文件先将系统还原到快照前状态。

    1. 新建一个同等配置的虚拟机,但是在配置时不要添加硬盘。
    2. 通过ssh登录主机(需要在服务器管理页面开启ssh服务)。
    3. 通过指令『find / -name xxx.flat.vmdk』查找原有虚机安装位置,找到flat.vmdk文件,查看文件大小。
    4. .进入新建虚拟机的文件根目录下, 通过指令『vmkfstools -c 文件大小 -a lsilogic xxx-flat.vmdk』创建一个虚拟磁盘(注意大小必须和原有磁盘大小相同)
    5. 使用mv命令将原有主机的flat.vmdk复制到当前新主机路径下,替换掉我们创建的flat.vmdk文件。
    6. 进入虚拟机配置界面,将该新建磁盘添加到当前虚拟机配置中。
    7. 完成后启动虚拟机,即可完快照前系统的还原了。
  • 根据delta-vmdk文件恢复快照

    1. 当系统起来后,我们先给当前系统执行一次快照。
    2. 使用mv指令将源delta.vmdk覆盖掉当前的delta.vmdk
    3. 之后我们还原快照即可还原到原有快照时的状态。

总结

经过如上配置即可完成虚拟机重建,虽然恢复完成时已经是凌晨1点了,但是还是很庆幸服务器能够恢复正常,通过此次的事件,也让我对VMware的机制、原理有了一定的了解了,也希望这篇文章能够帮助到其他朋友。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值