У меня виртуальная машина Virtualbox на жестком диске, который вышел из строя. Единственное, что я мог восстановить с диска, - это снимок динамического VDI-диска, используемого виртуальной машиной, и я смог восстановить только первую половину файла. Он по-прежнему содержит заголовок VDI, карту блоков VDI и большое количество блоков.
Я заинтересован только в восстановлении нескольких файлов, и так как я работал над ними до сбоя, и они были меньше, чем размер блока VDI (1 МБ), то я подозреваю, что данные для них присутствуют в снимке. На самом деле я могу выполнить поиск и найти его фрагменты, но блоки в снимке не упорядочены в логическом порядке.
Но так как это не полный VDI-файл, такие инструменты, как virtualbox-fuse или libguestfs, отказываются работать с ним, поэтому я должен написать свой собственный криминалистический сценарий.
Я не понимаю, как работает карта блоков VDI и как написать сценарий, который будет извлекать блоки, которые все еще присутствуют в той части VDI, которую я имею, и перезаписывать их в логическом порядке (возможно, заполняя нераспределенное или пропущенное пространство с легко узнаваемой комбинацией байтов)