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