虚拟机文件丢失,虚拟机无法启动,通过xx-flat.vmdk和xx-delta.vmdk恢复虚拟机
突然掉电,导致虚拟机文件夹里面的文件丢失,只剩余-flat.vmdk和-delta.vmdk文件,其他文件全部丢失,文件格式原本为"文件"格式。新建虚拟机无法直接使用此文件夹里面的文件。
解释一下这两个文件,可以帮助我们解决问题:
-flat.vmdk文件,这是个默认的大型虚拟磁盘数据文件,创建于你添加虚拟硬盘驱动到虚拟机时,而不是RDM。当使用厚磁盘时,这个文件的大小相当于你创建虚拟硬盘驱动时所指定的大小。
-delta.vmdk文件,这些虚拟磁盘数据文件只用于创建虚拟机快照时。当创建了快照,对原始flat.vmdk的所有写入都停止,并变成只读;然后这些对虚拟磁盘的更改将写入delta文件。这些文件的初始大小是16MB,然后随着对虚拟机虚拟硬盘的更改需要而以16MB的速度增长。因为这些文件是虚拟磁盘所作更改的位图,一个单一delta.vmdk文件不能超过原始flat.vmdk文件的大小。每为虚拟机创建一个快照就会生成一个delta文件,并且它们的文件名以数字递增(如myvm-000001-delta.vmdk和myvm-000002-delta.vmdk)。当快照融合到原始–flat.vmdk文件后再删除时,这些文件将自动删除。
环境:
1、旧的虚拟机test-1 无法启动,只剩下test-1-flat.vmdk test-1-delta.vmdk 文件
2、新建一台虚拟机test-2(去掉磁盘)
恢复步骤:
第一步:恢复磁盘文件(恢复虚拟机)
1、新建一台
1、SSH登录到ESX主机的控制台界面;
https://www.cnblogs.com/xiaoyou2018/p/16567306.html
2、切换到test-1磁盘所在目录:
find / -name test-1-flat.vmdk
查看文件大小
ls -la test-1-flat.vmdk
3、切换到test-2虚拟机目录,创建一个新的 vmdk 文件,大小和 test-1-flat.vmdk文件保持一致。命令为 vmkfstools -c 磁盘文件大小 -a lsilogic 磁盘名称
vmkfstools -c 3298534883328 -a lsilogic test-2.vmdk
-c:磁盘大小
-a:磁盘控制器类型(BusLogic 或者 LSILogic)
-d:磁盘类型
创建完毕,重新查看test-2虚拟机磁盘文件可以看到新建的 test-2.vmdk 和 test-2-flat.vmdk 文件了
4、用test-1-flat.vmdk覆盖掉test-2-flat.vmdk
mv test-1-flat.vmdk /vmfs/volumes/56e7c670-42015160-4e1a-001e67ca37fe/test-2-flat.vmdk
5、test-2虚拟机添加磁盘
6、虚拟机网卡Mac自动获取(先改手动再改自动)
7、启动虚拟机
第二步:恢复虚拟机最近快照的数据(验证失败)
使用test-1虚拟机最近的快照文件test-1-000002-delta.vmdk文件恢复快照:
1.此时test-2系统已经起来,我们再执行一个快照。生成一个test-2-000001-delta.vmdk
2. 用test-1虚拟机的test-1-000002-delta.vmdk,覆盖掉新建的快照数据文件
3.恢复虚拟机快照
参考:
https://blog.51cto.com/liyanxin/1395713
https://www.cnblogs.com/dsl146/p/13739957.html
https://blog.csdn.net/u011180520/article/details/103635045
https://www.txisfine.cn/archives/2c2332aa#%E5%A4%84%E7%90%86%E8%BF%87%E7%A8%8B
虚拟机文件丢失,虚拟机无法启动,通过xx-flat.vmdk和xx-delta.vmdk恢复虚拟机的更多相关文章
- Hyper-V虚拟机故障导致数据文件丢失的数据恢复全过程
简介: 由于MD3200存储中虚拟机的数据文件丢失,导致整个Hyper-V服务瘫痪,虚拟机无法使用,故障环境为Windows Server 2012服务器,系统中部署了Hyper-V虚拟机环境,虚拟机 ...
- 拯救无法启动的虚拟机文件.vmdk中的数据
FROM: http://blog.csdn.net/npy_lp/article/details/7686583 从事Linux开发的软件工程师几乎都使用过虚拟机软件,如VMware worksta ...
- Linux系统在启动过程中内核文件丢失的解决方法
在/boot目录下有两个重要的文件,分别是: vmlinuz-3.10.0-123.el7.x86_64 内核文件 initamfs-3.10.0-123.el7.x86_64.img ...
- Hyper-V下的Linux虚拟机网卡丢失问题原因及解决办法
Hyper-V下的Linux虚拟机网卡丢失问题原因及解决办法 虚拟化大势所趋 公司推行了虚拟化,全部用的是Microsoft Windows 2008 R2 Enterprise with Hyp ...
- 虚拟机centos7服务器下,启动oracle11g数据库和关闭数据库
转载:https://blog.csdn.net/ShelleyWhile/article/details/74898033 一.前提条件:虚拟机centos7服务器下,已经安装好oracle11g数 ...
- Flask13 面试要能吹 、安装虚拟机、虚拟机全局设置、导入虚拟机文件、虚拟机局部设置
1 web开发工作的三个能力 1.1 开发思想 易维护:开发成本远低于维护成本 可扩展:随着访问量的增加会自动使用多个数据库 高可用:程序就像小强一样,开发的系统能够经得住狂风暴雨的吹残(例如:一台主 ...
- Mac挂载NTFS移动硬盘读取VMware虚拟机文件
一.Mac 挂载NTFS移动硬盘进行读写操作 (Read-only file system) 注意如下图所示先卸载,然后按照下图的命令进行挂载.然后cd /opt/003_vm/ &&am ...
- "无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开"解决办法
当程序用ado的jet4.0方式连接mdb数据库的时候,对于设有access数据库密码的mdb的访问居然报错“无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开”. ADOConne ...
- 烂泥:KVM虚拟机随KVM服务器的启动而启动
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 要使KVM虚拟机随KVM服务器的启动而启动,我们所需要做的工作很少.只需要把KVM虚拟机的XML配置文件做一个软连接到/etc/libvirt/qemu ...
- Access无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开
使用SQL Server导入有密码的Access数据库内容,连接时出现错误提示: Access无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开 参考百度信息,可以点上图中的高级,在 ...
随机推荐
- 91、mysql批量删除表
## 存储过程实现 drop PROCEDURE if EXISTS rush; create PROCEDURE rush() BEGIN ## 创建临时表,插入快照数据 drop table if ...
- 【ZYNQ学习】如何使用ZYNQ
本篇博客建立一套ZYNQ系统开发的一般方法和流程,并对ZYNQ的硬件和软件的设计流程进行概述 设计工具: vivado IDE:创建SoC设计中的硬件系统部分,同时和设计套件中的其他工具有交互,包含集 ...
- 记录php遇到的那些坑
首先按照网上指南搭建php.阿帕奇.数据库环境. 具体放上网站 http://www.cnblogs.com/ypr-09-23/p/10797153.html 这是mysql安装指南 需要注意的是 ...
- 查看Linux系统的一些信息
1.查看物理cpu个数 grep 'physical id' /proc/cpuinfo | sort -u | wc -l cat /proc/cpuinfo | grep "physic ...
- 关于el-dialog弹窗组件关闭报错事件
以下写法,向父组件抛出关闭事件, (正常点击弹窗footer的关闭时没有报错,但是点击空白处及右上角的×号,就会报以上错误) 原因, close事件为已经关闭了弹窗后的事件,官方还给出了 befor ...
- taro, h5拨打电话和发送短信
1. h5的实现方式 首先加个允许meta <meta name="format-detection" content="telephone=yes"/& ...
- 3927Circular Sequence 思维题(求环形最大子列和)
Given a sequence with n elements, if the last element is also adjacent to the first element of the s ...
- 点击div实现选中效果
先上一份效果图.原来的checked多选框还是存在的,我只不过隐藏了,让他的整个div的范围都是可以点击的,右上角三个点是可以删除当前元素,左下角的播放按钮可以点击播放语音,主要是利用z-index把 ...
- SQL-建表注释
ddl 是对表结构的操作 create(创建)命令.alter(修改)命令.drop(删除)dml 是对表数据的操作 insert(插入)命令.update(更新)命令.delete(删除) alte ...
- 2021/9/26 Leetcode 两数之和
题目:给你两个整数 a 和 b ,不使用 运算符 + 和 - ,计算并返回两整数之和. int getSum(int a, int b) { while(b != 0){ unsigne ...