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

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

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

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

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

Насколько я понимаю, помимо идиотизма действия, диск не был ни форматирован, ни очищен. « Just » его первые более 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.

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

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

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

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

-1
задан 5 December 2018 в 09:35
1 ответ

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

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

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

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

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

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

1
ответ дан 5 December 2019 в 19:39

Теги

Похожие вопросы