ext4magic

Описание ext4magic

ext4magic — это инструмент администратора Linux, который может помочь восстановить удалённые или перезаписанные файлы на файловых системах ext3 и ext4.

Домашняя страница: https://sourceforge.net/projects/ext4magic/

Автор: Roberto Maar

Лицензия: GPLv2

Справка по ext4magic

Использование:

ext4magic -M [-j <файл_журнала>] [-d <целевая_директория>] <файловая_система>

ext4magic -m [-j <файл_журнала>] [-d <целевая_директория>] <файловая_система>

ext4magic [-S|-J|-H|-V|-T] [-x] [-j <файл_журнала>] [-B n|-I n|-f <имя_файла>|-i <список_ввода>] [-t n|[[-a n][-b n]]] [-d <целевая_директория>] [-R|-r|-L|-l] [-Q] <файловая_система>

Руководство по ext4magic

ИМЯ

ext4magic — восстанавливает удалённые файлы на файловых системах ext3/4.

СИНОПСИС

ext4magic {-M|-m} [-j <файл_журнала>] [-d <целевая_директория>] <файловая_система>

ext4magic [-S|-J|-H|-V|-T] [-x] [-j <файл_журнала>] [-B n|-I n|-f <имя_файла>|-i <список_ввода>] [-t n|[[-a n][-b n]]] [-d <целевая_директория>] [-R|-r|-L|-l] [-Q] <файловая_система>

ОПИСАНИЕ

Удаление файлов в файловых системах ext3/4 не может быть легко отменено. Обнуление индексных дескрипторов делает это невозможным. Опыт работы с другими программами показал, что часто для восстановления данных многих файлов возможно реконструировать необходимую информацию напрямую из Журнала файловой системы. ext4magic может извлекать эту информацию из Журнала и может реконструировать файлы всего дерева каталогов при условии, что содержащейся в Журнале информации достаточно. Этот инструмент может восстанавливать файлы большинства типов, может восстанавливать большие и разреженные файлы, восстановленные файлы имеют оригинальное имя, оригинального владельца и группу, оригинальные права доступа, а также прежние метки времени доступа и времени модификации.

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

ОПЦИИ

Магические опции: Эти опции для восстановления за несколько стадий, особенно для восстановления файлов после рекурсивного удаления частей или всей файловой системы.

Отмонтируйте файловую систему после случайного разрушения и используйте эти опции с размонтированной файловой системой или с копией этой файловой системы. Программа автоматически определит корректные опции времени если удаление отработало короткое время (< 5 минут). Для очень больших удалений, вы должны использовать " время после ".

На первом и втором шагах файлы восстанавливаются копиями файловых дескрипторов. Третий шаг пытается восстановить оставшиеся файлы без копий индексных дескрипторов. Это может занять много времени.

-M

Пытается восстановить все файлы. Эта опция должна использоваться если была удалена вся файловая система.

-m

Пытаться восстановить только все удалённые файлы. Используйте эту опцию с частично удалённой файловой системой.

Информационные опции: Эти опции генерируют общую информацию о состоянии файловой системы и Журнала.

-S

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

-J

Напечатать содержимое Журнального суперблока. Эта опция также может использоваться для принудительной загрузки Журнала. Она оказывает эффект контроля потока в ext4magic с некоторыми другими опциями.

-H

Вывод гистограммы временных меток из всех индексных дескрипторов файловой системы. Позволяет вам определить точное время изменений в файловой системе. Совместно с именем директории или индексным дескриптором директории будут отображены только временные метки дерева указанной директории.

Не происходит оценка каких-либо изменений, только одна запись на Инод. Отображается или время последнего изменения или удаления на каждую Иноду. Если присутствует (ext4), то также создаётся гистограмма временных меток создания.

Дополнительная опция -x позволяет улучшенное разрешение временных интервалов.

-V

Напечатать версию ext4magic и libext2fs.

-T

Отобразить весь список транзакций копий блоков данных в Журнале. В паре с -B ; -I и -f , отображаются соответствующие блоки данных для заданных параметров. Необязательная опция -x позволяет дополнительное время передачи транзакций, но только если блок является блоком индексного дескриптора. Печатается в том же порядке, как и данные в журнале. Вы можете сделать заключение из полученных в Журнале данных. После импорта резервных копий или после изменений временных меток файлов, дополнительное время передачи будет отображать не всегда реальное время трансмиссии. Если здесь абсолютно некорректные записи времени, то проверьте, используете ли вы журнал файловой системы открытый для чтения и записи.

-x

Управляет дополнительным форматом вывода и информационным содержимым некоторых команд. Влияет на следующие опции: -S ; -H ; -T ; -B ; -I ; -f ; -L ; -l. Дополнительную информацию смотрите в описаниях этих опций.

Опции выбора: Эти опции определяют точные файлы, каталоги и блоки данных. С одной стороны они производят конкретную информацию, а с другой стороны, используются для обращения к данным для Опций действия. ext4magic примет в команде только одну из этих опций.

-B n

n — это номер блока данных из данных блока файловой системы. Без последующих опций она печатает «однобайтное» шестнадцатеричное число+ASCII дамп из блока данных файловой системы, наподобие команды "hexdump -C". Опция -x производит «четырёхбайтное» шестнадцатеричное число+ASCII вывод.

С опцией -t n она печатает копию данных блока файловой системы с номером транзакции из Журнала. Пример:

ext4magic /dir/filesytem.iso -B 97 -t 22

напечатает шестнадцатеричный дамп копии блока файловой системы под номером 97, который писал в Журнал с номером транзакции 22. Все копии определённого блока данных в Журнале и связанные номера транзакций вы можете найти с дополнительной опцией -T. Например:

ext4magic /dir/filesystem.iso -B 97 -T

напечатает список всех копий файловой системы с номером блока 97, а также номера транзакций. Если блок данных является блоком индексного дескриптора, с опцией -x выводится точное время для транзакции.

-I n

n — это номер индексного дескриптора. Без других опций, вывод представляет собой содержимое реального дескриптора файловой системы. С опцией -x дополнительно выводится список всех блоков данных, адресованных этим индексным дескриптором. Если индексный дескриптор является Инодом директории, также печатается содержимое записей директории.

Вместе с последующей опцией -T ; -J, вывод не является содержимым индексного дескриптора реальной файловой системы. Печатается содержимое всех различных копий индексных дескрипторов, найденных в Журнале.

С опцией -t n печатается содержимое Инода из транзакции " n ".

Опция -I n также может использоваться в паре с опциями -L ; -l ; -r или -R.

-f <имя_файла>

Это такая же функция как и -I n, только здесь задаётся <имя_файла> вместо номера Инода. ext4magic обыскивает файловую систему в поисках номера индексного дескриптора. Имя файла может быть директорией или файлом и здесь должно быть указано из корневой директории системы Linux.

Например: точка монтирования для этой файловой системы это " /home ", а имя файла для Linux это " /home/usr1/Document ", можно использовать так:

ext4magic /dev/sda3 -f usr1/Document

Для рут директории файловой системы вы можете использовать

-f /
или
-f ""

для ext4magic это одинаково.

Вам следует указать начальный "/" для всех других имён файлов. А имена директорий вам следует указывать без завершающего "/" .

Экспертные опции: (начиная с 0.2.1) Дополнительный экспертный режим нужно включать опцией "--enable-expert-mode". Это делает возможным открывать и восстанавливать лицевую сторону повреждённых файловых систем. В текущей версии возможно обращаться к резервным суперблокам и пытаться восстановить журнальный адрес из данных суперблока, и восстановить все неповреждённые файлы после частичного повреждения или перезаписи файловой системы.

-s размер блока -n номер блока

С этими опциями вы можете выбрать резервный суперблок. Размер блока может быть 1024, 2048 или 4096. Номер блока — это номер резервного суперблока, который зависит от размера блока. Используйте те же значения, что и с "fsck" или "debugfs" или используйте вывод "mkfs -n .." для определения корректной величины.

Эти опции нужно использовать в порядке "-s … -n ..."

-c

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

-D

Пытаться восстановить все файлы с сильно повреждённой файловой системы. Комбинации всех экспертных опций пытаются восстановить файловую систему, если суперблок сломан, и начало файловой системы повреждено или перезаписано. Это только работает, если e2fsck ещё не внёс каких-либо изменений в неисправную файловую систему.

Пример: первые несколько мегабайт файловой системы перезаписаны. Делается попытка скопировать все неповреждённые файлы файловой системы. Целевой директорией является "/tmp/recoverdir"

ext4magic /dev/sda1 -s 4096 -n 32768 -c -D -d /tmp/recoverdir

-Q

Эта опция для повышения качества восстановления, она оказывает влияние только с " -r " и " -R ". Без этой опции восстанавливаются любые валидные имена файлов из директорий и вы можете видеть временную метку " до " на времени, в которое все файлы были удалены. Т.е. вы найдёте максимальное количество возможных файлов. В Журнале могут быть найдены блоки с данными о старых директориях. Некоторые файлы находятся не один раз. В этом режиме не замечаются повторно используемые имена файлов и повторно используемые индексные дескрипторы. Как результат, некоторые файлы могут создаваться с расширением "#" или некоторые файлы создаются с неверным содержимым. Вы сами должны проверить эти файлы, найти среди них плохие и удалить.

С опцией " -Q " ext4magic работает более аккуратно, и может избежать таких фальшивых и повторных файлов. Это требует в Журнале старых данных блоков директорий. Вы не найдёте в Журнале эти старые блоки для всех директорий, а только от директорий, которые были ранее созданы или удалены. Но не для директорий, в которых не было изменений на протяжении долгого времени. Вам нужно установить временную метку " до " непосредственно перед временем уничтожения файлов. Если доступные данные о директории не являются достаточными, возможно, ext4magic не сможет найти удалённые файлы или содержимое целых директорий. Эта опция должна использоваться очень осторожно и она приведёт к хорошим результатам только для некоторых директорий.

Опции времени: С этими опциями вы можете указать временное окно, в котором программа ищет соответствующие временные метки в данных Журнала. Для большинства внутренних функций ext4magic требует два времени: время "после" и время "до".

Найденные индексные дескрипторы принимаются только если временная метка не удалена и время меньше чем "до". Если время удаления меньше чем "после", Инода также не используется. Ещё ext4magic пытается найти валидный индексный дескриптор директории также по данным директории с соответствующим временим. Для действия восстановления "до" устанавливает значение, в которое данные удалены, а "после" устанавливает значение, в которое данные доступны. Иноды и данные директорий с другими временными метками будут пропущены и не использутся.

По умолчанию, без каких либо опций, ext4magic будет искать с "сейчас" для внутреннего времени "до", и "сейчас -24 часа" для внутреннего времени "после". Если вы будете пытаться восстановить без указания опций времени, то ваш поиск будет проводиться за последние 24 часа. Если вы ждали пару дней перед попыткой восстановления удалённых данных, вы всегда должны использовать опции времени или вы ничего не найдёте.

-a n

С этой опцией вы можете установить время " после "

-b n

С этой опцией вы можете установить время " до ".

n — это число секунд после 1970-01-01 00:00:00 UTC. Информацию в таком формате часто показывается в ext4magic. Вы можете рассчитать её в консоли командой "date", а также вставить её напрямую в командную строку ext4magic.

-a $(date -d "-3day" +%s) -b $(date -d "-2day" +%s)

в этом примере установлено "после=сейчас-36h" и "до=сейчас-24h".

-t n

Это непрямой вариант времени, вы можете использовать её с опциями -B ; -I ; -f. Значение n — это номер транзакции. С этой опцией вы можете вывести, составить список или восстановить данные из транзакционного номера, вы можете найти эти транзакционные номера опцией -T или в выводе содержимого индексного дескриптора.

Опции ввода и вывода: С группой этих опций вы выбираете файловую систему и другой необязательный файл ввода и вывода для управления ext4magic.

<файловая_система>

Выбирает файловую систему и всегда должна быть указана. <файловая_система> может быть блочным устройством с файловой системой ext3/4, это может быть несжатый файл образа такого разрдела.

-j <файл_журнала>

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

-d <целевая_директория>

Выбор директории вывода. Туда будут записываться восстановленные файлы. Если она не существует, то будет создана. По умолчанию, созданные файлы записываются в поддиректорию RECOVERDIR рабочего пути текущей оболочки. Директория вывода не может быть на той же файловой системе, что и тестируемая файловая система и должна обладать достаточным местом для записи восстановленных файлов. Файловая система в этой директории также должна быть ext3/4, в противном случае не Linux-подобные файловые системы генерируют некоторые ошибки во время записи свойств файла. Необходимо либо в оболочке сменить текущую рабочую директорию, либо указать её с помощью опции -d.

-i <список_ввода>

Список_ввода — это файл ввода. Должен содержать список имён файлов в двойных кавычках. Файлы из этого списка будут восстановлены с опциями -r или -R.

Пустые строки, не заключённые явным образом в кавычки имена файлов и все области до и после " игнорируются. Такой список имён файлов в двойных кавычка можно создать с опциями -l -x или -L -x с ext4magic, скриптом или вручную.

Опции действий: Эти опции включают опции составления списка и восстановления. Все функции рекурсивно работают через деревья директорий, управляемые опциями времени. Начальная точка для поиска определяется именем директории и номером Инода директории. По умолчанию это корень файловой системы. Данные файловой системы, включая данные директории, соответствующие временным опциям, берутся из Журнала.

Если хорошие данные из системных секций доступны в Журнале, то возможно видеть или восстановить состояние файловой системы в разное время.

-L

Печатает список всех имён файлов и номеров индексных дескрипторов выбранного дерева каталогов. Сюда включаются также удалённые файлы и удалённые деревья директорий. С дополнительной опцией -x имена файлов при печати заключаются в двойные кавычки. Вы можете использовать этот вывод в качестве "списка ввода" с опцией -i.

-l

Печатает список всех имён файлов, которым не распределены блоки данных. В начале строке показываются проценты не распределённых блоков данных. После удаления вы найдёте здесь все имена файлов, которые вы можете восстановить из данных Журнала. Если вы видите очень старые значения для времени "до", возможно это файлы, чьи блоки данных повторно использовались в промежутках между удалением. Также в список включаются файлы без блоков данных, символические ссылки, пустые и другие специальные файлы.

Точно также, с опцией -x файлы имена заключаются в двойные кавычки.

-r

Применяется для директорий, все файлы без конфликтов с занятыми блоками будут восстановлены. С этой опцией вы видите всё, что вы видите с опцией -l и являющиеся на 100% не распределёнными. Эта опция восстанавливает только удалённые файлы и файлы без блоков данных, например, символические ссылки или пустые файлы.

Восстанавливаемые файлы записываются в RECOVERDIR/. Можно задать другую директорию с опцией -d.

Все файлы получают старое имя файла и, если возможно, старые свойства файла. Дерево подкаталога может быть установлено с "-f dirname", или с "-I inodenumber" если используется данный номер файлового дескриптора, имя директории устанавливается в <inodenumber>.

Опции времени оказывают влияние на поиск. Если имя файла уже существуют, или вы восстанавливаете его снова, то файл не перезаписывается, создаётся новый файл, к имени которого добавляется символ "#". Максимальным для имени файла может быть расширение " ##### ".

Можно также восстанавливать единичные файлы, возможно искать по временным меткам или транзакционному номеру.

За запуском этой функции из корневой директории последует первый этап магических функций.

Он начинается с «поиска потерянных директорий» и «поиска потерянных файлов» и восстанавливает все удалённые индексные дескрипторы, которые не могут быть назначены имени файла. Эти файлы вы можете найти в директориях MAGIC-1 и MAGIC-2.

-R

Восстанавливает дерево директории, это то же самое что и -r.

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

Она восстанавливает все удалённые и не удалённые файлы, и возможно восстановить более старые версии файла или директории.

В полностью удалённых директориях поведение " -R " и " -r " идентично. Разница только в полном восстановлении всех директорий с опцией " -R ". Вы также можете восстановить отдельные файлы с опциями времени или номером транзакции.

Для всех случаев восстановления, ACL, SEL и другие расширения атрибутов не могут быть восстановлены в текущей версии.

Вывод начинается строкой "——--" перед именем восстановленного файла. Это знак успешного восстановления. Если недостаточно прав для записи восстановленных файлов, вы увидите несколько "x" в строке.

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

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

ОШИБКИ

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

Примеры запуска ext4magic

Напечатать содержимое Иноды, для этого есть несколько вариантов:

ext4magic /dev/sda3 -f /

Вывод является текущим индексным дескриптором корневой фйловой системы. В первом примере вводится путь, во втором Inode 2 — это также корневая директория.

ext4magic /dev/sda3 -I 2

Использовать образ файловой системы "/tmp/filesystem.iso", найти и напечатать все транзакции блока, который включён в корневую иноду и напечатать все различные Иноды. Включая блоклист данных блоков. Если это директория, тогда также напечатать для каждой отдельной Иноды содержимое директории:

ext4magic /tmp/filesystem.iso -f / -T -x

Использовать образ файловой системы "/tmp/filesystem.iso" и прочитать Журнал из внешнего файла "/tmp/journal.backup" и напечатать содержимое Иноды под номером 8195 из журнального транзакционного номера 182:

ext4magic /tmp/filesystem.iso -j /tmp/journal.backup -I 8195 -t 182

Напечатать не удалённые Иноды для пути "user1/Documents" в интервале между двумя и тремя днями назад. Если это директория, тогда также содержимое этой директории. Если в Журнале не могут быть найдены блоки старой директории, содержимое директории будет фактически из файловой системы.

ext4magic /dev/sda3 -f user1/Documents -a $(date -d "-3 day" +%s) -b $(date -d "-2 day" +%s)

Примеры простого восстановления

Восстановить файл "/home/user1/picture/cim01234.jpg", который только что был удалён. Файловая система смонтирована в "/home". Помните, путь до файла определяется из корневой директории файловой системы, а не из корня текущей Linux системы. Когда возможно, для восстановления отмонтируйте файловую систему. Файл будет записан как "/tmp/user1/picture/cim01234.jpg":

ext4magic /dev/sda3 -r -f user1/picture/cim01234.jpg -d /tmp

Попытка восстановить все файлы, удалённые за последние 24 часа. Запись идёт в директорию "./RECOVERDIR/"

ext4magic /dev/sda3 -r

Попытки восстановить все файлы, даже если они частично перезаписаны, восстановить также все не удалённые файлы. Время удаления 4 дня назад:

ext4magic /dev/sda3 -R -a $(date -d "-5day" +%s)

Попытка восстановления в несколько стадий всех файлов после удаления файловой системы командой "rm -rf *". Записать все файлы в "/home/recover". (на ext4: в этой версии пропускается последний шаг.):

ext4magic /dev/sda3 -M -d /home/recover

Попытка восстановить дерево каталога "user1/Dokuments/". Временная метка "-b" должна быть установлена на время сразу перед удалением файлов, временная метка "-a" предотвращает поиск старых версий файлов. Это хорошо сработает только если вы создали или удалили файлы перед временем "-b". Записать в директорию "/mnt/testrecover/". Если восстановлено только несколько файлов, попробуйте это же без опции -Q:

ext4magic /dev/sda3 -RQ -f user1/Dokuments -a 1274210280 -b 1274211280 -d /mnt/testrecover

Попытка восстановить только все удалённые файлы из дерева каталога "user1/", и имеющие в имени файла "jpg", за последние 24 часа, и записать в "/mnt/testrecover". Использовать временный файл "./tmpfile" для списка имён файлов:

ext4magic /home/filesystem.iso -Lx -f user1 | grep "jpg" > ./tmpfile
ext4magic /home/filesystem.iso -i ./tmpfile -r -d /mnt/testrecover

Установка ext4magic

Программа предустановлена в Kali Linux.

Установка в BlackArch

Программа предустановлена в BlackArch.

Информация об установке в другие операционные системы будет добавлена позже.

Скриншоты ext4magic

Это утилита командной строки.

Инструкции по ext4magic

Ссылки на инструкции будут добавлены позже.

Рекомендуемые статьи: