Как извлечь файл из виртуального диска? - PullRequest
1 голос
/ 20 августа 2011

Учитывая блок данных (который файловая система считает целым диском) и тип файловой системы (fat32, ntfs, ext3), я хотел бы знать, как извлечь файлы из этого блока данных.Есть идеи как это сделать?

Ответы [ 2 ]

2 голосов
/ 20 августа 2011

В конечном итоге у вас есть два варианта:

  1. Смонтируйте файловую систему, содержащуюся в образе виртуального диска, на хост-компьютере. Для этого могут помочь такие инструменты, как losetup.
  2. Найдите подходящую библиотеку, которая позволит вам тыкать в том в пространстве пользователя. По сути, вам нужен драйвер файловой системы пользовательского режима, который позволит программе проверять структуру каталогов и извлекать файлы. Возможно, вы сможете повторно использовать части fuse-ext2 и ntfs-3g.

Все это предполагает, что виртуальный диск представляет собой простой файл образа, а не специализированный контейнер, такой как VMDK или VDI. Если это так, то вам нужно либо извлечь плоское изображение, либо найти библиотеку, способную предоставить плоский контент другим библиотекам.

0 голосов
/ 20 августа 2011

Вы монтируете его в какую-то точку с помощью

mount image /mount/point -o loop,ro

и получаете доступ к файлам в нем.После этого вы можете снова размонтировать.

Но я не понимаю, какое это имеет отношение к C или C ++.

...