如何从虚拟磁盘中提取文件?

时间:2011-08-20 07:56:12

标签: c++ c filesystems ntfs ext3

给定一个数据块(文件系统认为是整个驱动器)和文件系统的类型(fat32,ntfs,ext3)我想知道如何从该数据块中提取文件。关于如何做到这一点的任何想法?

2 个答案:

答案 0 :(得分:2)

您最终有两种选择:

  1. 将虚拟磁盘映像中包含的文件系统挂载到主机上。像losetup这样的工具可以帮助您实现这一目标。
  2. 找到一个合适的库,允许您在用户空间中查看卷。基本上,您需要一个用户模式文件系统驱动程序,它将让程序检查目录结构并提取文件。您可以重新调整fuse-ext2和ntfs-3g的部分内容。
  3. 这一切都假设虚拟磁盘只是一个平面图像文件,而不是像VMDK或VDI这样的专用容器。如果是,您将需要提取平面图像或找到能够向其他库提供平面内容的库。

答案 1 :(得分:0)

使用

将其挂载到某个点
mount image /mount/point -o loop,ro

并访问其中的文件。之后,您可以再次卸载。

但我不知道这与C或C ++有什么关系。