спасение остатков файловой системы ext4 с testdisk

330
pathfinder

Приступая к делу: testdisk может перемещаться по файловой системе и иерархии (очевидно, как если бы она была целой) и восстанавливать файлы по отдельности Есть ли способ сделать так, чтобы все они выполнялись автоматически?


История:

Я работаю от клона dd неизменяемого клона gddrescue (от сектора к сектору) на ненадежном внешнем USB-накопителе емкостью 3 ТБ, использовавшемся на ИЦП ~ 2016 до октября 2017 года. Я считаю, что он содержал 2 раздела: 6 ГБ и ~ 3 ТБ (?? ). 6GB был восстановлен и установлен. При клонировании ddrescue не смог очистить ~ 1 МБ (всего) по 25 областям диска.

Моя цель - спасти как можно большую организацию файлов раздела, файлов и времени модификации. Прежде всего был использован, но теряет организацию (большая часть стоимости).

Сейчас я работаю с Ubuntu 16.04.03LTS, таблица разделов неизменяемого клона имеет неправильные границы, и я использовал testdisk, чтобы записать вероятный диск на диск восстановления - и восстановил файловую систему первого небольшого раздела. Интересно, что fdisk сообщает о типе метки диска как DOS и упоминает ограничение (2 ^ 32 сектора?), А большой раздел, написанный testdisk, отображается как только 2 ТБ. С помощью parted, я изменил его на GPT, и теперь его полный ~ 3 ТБ как ~ 5.86Gsectors.

С файловой системой 2-го раздела можно работать с помощью testdesk, и я могу индивидуально сохранять файлы. Но там, вероятно, более миллиона.


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

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


Другой подход: после «исправления» таблицы разделов с помощью testdisk, e2fsck для раздела 2 (~ 3 ТБ) сообщает:

«Размер файловой системы (в соответствии с суперблоком) составляет 730993525 блоков. Физический размер устройства составляет 536870911 блоков. Вероятно, поврежден либо суперблок, либо таблица разделов!» »

Запуск mke2fs -S, за которым следует e2fsck, повсеместно приводит к ошибкам и ничего не оставляет.

Вполне вероятно, что в октябре 2017 года mke2fs -S был запущен на втором разделе, но с использованием исходной таблицы поврежденных разделов.


Третий подход: Testdisk довольно непрозрачен для меня, поэтому я написал программу для поиска суперблоков, проверил их последнюю точку монтирования и т. Д. Таким образом, я уверен, что диск содержит неповрежденные суперблоки из большого раздела. Если у меня есть один из этих суперблоков, могу ли я каким-то образом использовать его, чтобы e2fsck мог сделать все остальное? Однако я полагаю, что суперблок будет иметь только адрес блока относительно начала раздела. Поскольку суперблок должен был находиться в одном из нескольких мест (и имеет известный шаблон пропуска), может быть, я мог бы использовать эту информацию, чтобы назначить правильное начало расположения раздела?

ТИА!

2

1 ответ на вопрос

0
Xen2050

Вы ищете e2fsckс обнаруженными на тестдиске суперблоками? Под >[ Advanced ] Filesystem Utilsв >[Superblock]команде должен «Расположить ext2 / ext3 / ext4 резервный суперблок», похожее на это:

TestDisk 7.0, Data Recovery Utility, April 2015 Christophe GRENIER <grenier@cgsecurity.org> http://www.cgsecurity.org  Disk 1 - 104 MB / 100 MiB - CHS 13 255 63  Partition Start End Size in sectors  ext2 0 0 1 12 190 50 204800 superblock 0, blocksize=1024 [] superblock 8193, blocksize=1024 [] superblock 24577, blocksize=1024 [] superblock 40961, blocksize=1024 [] superblock 57345, blocksize=1024 [] superblock 73729, blocksize=1024 []  To repair the filesystem using alternate superblock, run fsck.ext2 -p -b superblock -B blocksize device   >[ Quit ] Return to Advanced menu 

А затем попробуйте предлагаемую команду fsck.ext2 / e2fsck с разными суперблоками, пока не найдете «хороший».


Также Testdisk, похоже, способен копировать целые папки, поэтому, если большая часть файловой системы все еще там, то это могут быть только папки в корне, которые нуждаются в ручном копировании, и все их подпапки и файлы также будут скопированы.

Надеемся, что в корне есть только несколько, а не миллионы, хотя :выбор файлов для последующего копирования действительно перемещается к следующему файлу и aвыбирает все файлы (в этой папке).

Вот «скриншот» сразу после копирования папки «Загрузки» из корня (она содержит 2 файла и Copy done! 2 ok, 0 failedсообщение выделено зеленым цветом):

TestDisk 7.0, Data Recovery Utility, April 2015 Christophe GRENIER <grenier@cgsecurity.org> http://www.cgsecurity.org P ext2 0 0 1 12 190 50 204800 Directory / Copy done! 2 ok, 0 failed drwxr-xr-x 0 0 1024 17-Jan-2018 07:50 . drwxr-xr-x 0 0 1024 17-Jan-2018 07:50 .. drwx------ 0 0 12288 17-Jan-2018 07:49 lost+found drwxr-xr-x 0 0 1024 17-Jan-2018 07:50 Documents >drwxr-xr-x 0 0 1024 17-Jan-2018 07:50 Downloads    Next Use Right to change directory, h to hide deleted files q to quit, : to select the current file, a to select all files C to copy the selected files, c to copy the current file 
Ух ты - я действительно упустил возможность копировать деревья каталогов. Это работает сейчас. Корень имеет <10 каталогов - так что это может быть решением. Testdisk не обнаруживает никаких суперблоков в большом разделе. Моя программа намного свободнее от ограничений в отношении того, что она называет суперблоком. (16-битное магическое число @ 0x38 и 0 нулей при 0x19?). Затем он печатает текстовые поля. Но я думаю, что простая копия каталога сделает все, что мне нужно. Первое дерево, которое я скопировал, имеет> 150 тыс. Файлов, которые были найдены в первую очередь, и testdisk имеет 6551 в порядке с 0 неудачами. Спасибо. pathfinder 6 лет назад 0
Жаль, что fsck не смог привести его в достаточно хорошую форму для монтирования, но в любом случае важно получить данные, так что миссия выполнена :) Xen2050 6 лет назад 0

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