Как восстановить файл TAR с частично перезаписанного диска XFS?

Это сценарий.

Среда Linux (на самом деле Arch Linux).

Несжатый 1,3TB tar Файл был записан на диск размером 2 ТБ в формате XFS в качестве резервной копии.

Позже загрузочный образ UEFI размером 586 МБ был записан (по ошибке) на то же самое дисковое устройство с помощью этой самой команды: dd if=./bootimage of=/dev/sdd bs=4M,

Что я понимаю, кроме идиотизма в том, что диск не был ни переформатирован, ни стерт. " Просто " его первые 500+ МБ секторов были перезаписаны.

Моя первая попытка была основана на предположении, что блоки были распределены линейно XFS и что я знал точный размер перезаписанной части. Идея состояла в том, чтобы пропустить все эти блоки, а затем попытаться передать все последующие блоки в cpio инструмент: он может сделать все возможное, чтобы справиться с поврежденным tar файл (мой был усечен на голове).

FILESIZE=614465536
SECTSIZE=$(( 2 * 1024 * 1024 )) # 2M
SKIPSIZE=$(( $FILESIZE / $SECTSIZE ))

dd if=/dev/sdd ibs=$SECTSIZE obs=$SECTSIZE skip=$SKIPSIZE | cpio -ivd -H ustar

(Я переключился на передачу блока 2M, потому что размер файла - это много, но не 4M). Не везет на выздоровление. Но теперь я знаю, что структура диска, используемая в XFS, не является линейной.

Следующим шагом было попытаться восстановить файловую систему (хорошо ее копию) с xfs_repair после того, как таблица разделов была исправлена ​​с fdisk, Он нашел "подпись XFS", и я получил доступ к этому единственному разделу с помощью loop устройство. к несчастью xfs_repair не удалось выполнить "только для чтения 0 из 512 байт". Более того, кажется, что нет способа восстановить потерянные файлы в XFS.

Третья попытка была сделана с помощью таких инструментов, как foremost а также testdisk, Но мои попытки пока не принесли большого успеха. Они фактически смогли восстановить некоторые файлы, в основном мультимедийные файлы (GIF, JPG, PNG, WAV и MP3). Но это часть реального содержимого резервной копии. Это выглядит как foremost имеет фокус на типичных файлах Windows. Но они покрывают около 15% от 1,3 ТБ данных. Там также должно быть много текстовых файлов, файлов libreoffice, а также gzip а также bzip2 файлы. Пока что 15% лучше, чем 0%.

Я также просмотрел всю имеющуюся у меня документацию и также "погуглил" аналогичные сценарии (также здесь, на сервере). Более актуальными были вопросы об отправке диска фирмам, занимающимся восстановлением данных. Похоже, что в Интернете нет аналогичных заданий.

Какова была бы лучшая стратегия для максимального восстановления файла?

Идеальный будет стремиться восстановить уцелевшую часть этого сингла tar файл, восстанавливая оставшуюся часть цепочки i-узла.

1 ответ

Многие вещи могут быть восстановлены, если имеется время и понимание соответствующих деталей.

В этом случае я не вижу готового решения, и одна реальная проблема состоит в том, что, скорее всего, интересные части файловой системы и сигнатур tar-файлов были перезаписаны.

Если вы действительно стремитесь сделать это самостоятельно, вот шаги, которые я бы попробовал сделать:

  • Сделайте резервную копию 1:1 исходной испорченной файловой системы.
  • Выполняйте только действия записи для копий сломанной файловой системы, поскольку весьма вероятно, что для успеха потребуется более одной попытки. Каждая запись связана с риском того, что больше данных будет уничтожено.
  • Проверьте, как XFS записывает данные на диск. Скорее всего, это будет сделано последовательно, но убедитесь, что вы знаете, верно ли это предположение, и какой тип данных использует порядок байтов.
  • Прочитайте и поймите формат файла tar, попробуйте идентифицировать сигнатуры начала / конца файла tar и повторяющиеся шаблоны (например, контрольные суммы, ...) для сбора информации для фрагментов поиска. Копайтесь в исходный код tar, чтобы понять, как данные записываются в файловую систему.
  • Попытайтесь восстановить файл tar и попробуйте исправить его, чтобы вы могли извлечь ваши файлы.

Все упомянутые инструменты, такие как photorec, testdisk, прежде всего, ... обеспечат вам лишь ограниченный успех при восстановлении файлов, и даже если восстановленное количество будет достаточно хорошим, часто возникают такие проблемы, как: множество ложных срабатываний, пропущенные имена файлов, нет структуры папок. Думая о 1,3 Тб данных, все это будет важно, чтобы оценить этот процесс как успешный.

С предоставленной вами информацией, похоже, что "только" 500 Мб данных действительно обрезаны, а все остальное должно быть в "хорошем" состоянии, и, следовательно, должна быть возможность получить хороший результат, но это зависит от того, как xfs & tar обработал данные. Поскольку tar поступает из области ленты, расположение данных должно быть очень прямым. Тем не менее, этот процесс не будет легким вообще и будет включать обработку необработанных данных до определенного момента.

Другие вопросы по тегам