解析VMDK,碰到一些问题

问题遇到的现象和发生背景

我要解析 VMDK文件,请提供技术支持,付费

如果是vm的.vmdk文件,我是用360压缩软件(没有一定要用360压缩,其他的压缩软件也行)打开就能直接看到里的文件。

img

img

遇到什么问题呢

VDDK

摘自官方文档:The Virtual Disk Development Kit (VDDK) is a collection of C/C++ libraries, code samples, utilities, and documentation to help you create and access VMware virtual disk storage. The VDDK is useful in conjunction with the vSphere API for writing backup and recovery software, or similar applications.

从上述内容可知,VDDK(虚拟磁盘开发包) 主要提供了 C/C++ Lib 库,让开发者能够连接并且访问 VMware 虚拟磁盘存储文件(VMDK File),是编写虚拟机数据备份和恢复的常用工具。简单来说 VDDK 就是一套 C 库及相关的 Sample 和 Docs。

©著作权归作者所有:来自51CTO博客作者云物互联的原创作品,请联系作者获取转载授权,否则将追究法律责任
VMware 虚拟机的虚拟磁盘编程知识点扫盲之二
https://blog.51cto.com/u_15301988/3081298

是需要通过vmdk文件新建虚拟机?

#include <bits/stdc++.h>

qemu-img 转为raw硬盘

对单个VMDK文件解析算法大致如下:

if( 所读取的数据在同一GT )  
{  
    if ( 所读取的数据在同一grain )  
    {  
        if( 所对应GDE的值 == 0 )  
        {  
            // 直接读0  
            … …  
        }  
        else  
            // 正常读取数据  
            … …  
        }  
    else // 所读取的数据不在同一grain  
    {  
        // 读取第一个grain中的数据  
        … …  
  
        // 读取中间grain中的数据  
        … …  
        //读取最后一个grain中的数据  
        … …  
    }  
}  
else // 所读取的数据不在同一GT  
{  
    // 读取第一个grain table所对应的数据  
    … …  
    // 先读不完整的grain到下一个grain之间的数据  
    … …  
    // 读取其后完整的grain  
    … …  
  
    // 读取中间grain table所对应的数据  
    … …  
  
    // 读取最后grain table所对应的数据  
    // 同第一个grain table类似,这里先读取完整的grain  
    … …  
    // 读取不完整的grain  
    … …  
}  

对于多文件的读取与对单文件的读取类似:

if ( 所读取的数据在同一文件 )  
{  
    // 直接按单文件读取即可  
    … …  
}  
else // 所读取的数据在多个文件中  
{  
    // 读取开始文件中的数据  
    … …  
  
    // 读取中间文件中的数据  
    … …  
  
    // 读取最后文件中的数据  
    … …  
}  

https://download.csdn.net/download/onethingstudio/81720652?spm=1005.2026.3001.5635&utm_medium=distribute.pc_relevant_ask_down.none-task-download-2~default~OPENSEARCH~Rate-4-81720652-ask-7770828.pc_feed_download_top3ask&depth_1-utm_source=distribute.pc_relevant_ask_down.none-task-download-2~default~OPENSEARCH~Rate-4-81720652-ask-7770828.pc_feed_download_top3ask

可以提供 技术支持,望采纳