Как файлы выложены в ext2 / ext3 / ext4?

8

Несколько дней назад все мои метаданные на флэш-карте формата ext4 были перезаписаны.

Сейчас я собираюсь порассуждать о том, как это произошло. Это чистое предположение. Это случилось сразу после того, как я использовал другую карту. Метка тома на карте теперь такая же, как на другой карте. Поэтому я подозреваю, что мне не удалось синхронизировать / размонтировать другую карту, когда я ее извлек. Устройство чтения карт не уведомляет систему должным образом, когда карта извлекается, поэтому следующая система сгенерировала синхронизацию, система не знала, что я сменил карты, и перезаписала метаданные.

Первое, что я сделал, когда это произошло, это создал изображение с помощью dd. Во-вторых, я сделал изображение доступным только для чтения. Третье, что я сделал, это сделал копию изображения для записи.

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

Поскольку некоторые из восстановленных файлов являются текстовыми, я подозреваю, что photorec использует минимальную информацию о формате файла, если таковая имеется.

Чтобы попытаться восстановить любые другие файлы с карты, мне нужно знать, как файлы выложены в ext2. Я подозреваю, что основным является то, что файлы разбиты на блоки, которые записаны в секторах, а информация о том, как найти следующий сектор, записана каким-либо образом в данном секторе.

Что мне нужно для начала, так это информация о том, как пишется указатель на следующий сектор.

PS: Я читаю код PhotoRec, но у меня возникли проблемы с его чтением. Я не знаю, будь это я или уродливый код.

PPS: Я нашел некоторую информацию о том, как устроены файловые системы ext, но не могу найти основную информацию о расположении файлов.

Mouse.The.Lucky.Dog
источник

Ответы:

4

PhotoRec сканирует диск (или образ диска) в поисках смежных фрагментов форматов, которые выглядят как известные файлы (например, он может распознавать JFIF / EXIF ​​(JPEG) по заголовкам сегмента). Довольно просто, но ограничено.

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

Для инструмента, который более глубоко понимает ext, попробуйте ext4magic ? (У меня еще не было необходимости использовать это.)

Documentation/filesystems/ext2.txtв исходниках ядра есть общий обзор общей структуры. В Ext4 Wiki есть хорошая информация, в том числе Ext4 Disk Layout, содержащая больше деталей (в основном это касается и ext [23]).

Но да, данные файла разбиты на блоки. В ext2 каждый файл представлен индексом, который содержит прямые блоки (указатели на блоки данных), косвенные блоки (которые содержат указатели на прямые блоки), двойные косвенные блоки и тройные косвенные блоки. Обратных ссылок нет, поэтому, чтобы найти братьев и сестер блока данных, вам придется сканировать все inode и указатели блоков, чтобы сначала найти его владельца.

ephemient
источник