Это команда magicrescue, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
magicrescue - сканирует блочное устройство и извлекает известные типы файлов, глядя на магию.
байт.
СИНТАКСИС
волшебное спасение [ кредита ] устройств
ОПИСАНИЕ
Magic Rescue открывается устройств для чтения, сканирует их на предмет типов файлов, он знает, как восстановить
и вызывает внешнюю программу для их извлечения. Он смотрит на "магические байты" в файле
содержимого, поэтому его можно использовать как утилиту для восстановления, так и для восстановления поврежденного
диск или раздел. Он работает в любой файловой системе, но в очень фрагментированных файловых системах
может восстановить только первый фрагмент каждого файла. Эти фрагменты иногда достигают 50 МБ,
Однако.
Вызывать волшебное спасение, необходимо указать хотя бы одно устройство и -d и -r настройки.
См. Раздел «ИСПОЛЬЗОВАНИЕ» в этом руководстве для начала работы.
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
-b размер блока
По умолчанию: 1. Это будет направлять волшебное спасение рассматривать только файлы, начинающиеся с
кратный размер блока аргумент. Опция распространяется только на рецепты
после него, поэтому, указав его несколько раз, его можно использовать для получения разных
поведение по разным рецептам.
Используя эту опцию, вы обычно можете получить лучшую производительность, но меньше файлов будет
нашел. В частности, файлы с ведущим мусором (например, много файлов mp3) и файлы
содержащиеся в других файлах, скорее всего, будут пропущены. Также некоторые файловые системы
не выравнивайте небольшие файлы по границам блоков, чтобы они не были найдены таким образом
либо.
Если вы не знаете размер блока вашей файловой системы, просто используйте значение 512, т.е.
почти всегда размер аппаратного сектора.
-d каталог
Обязательный. Каталог вывода для найденных файлов. Убедитесь, что у вас достаточно свободного
пространство в этом каталоге, особенно при извлечении файлов очень распространенных типов, таких как
файлы jpeg или gzip. Также убедитесь, что файловая система способна обрабатывать тысячи
файлы в одном каталоге, т.е. не используйте FAT, если вы распаковываете много файлов.
Вы не должны размещать выходной каталог на том же блочном устройстве, которое вы пытаетесь
для спасения файлов из. Это может добавить тот же файл к блочному устройству перед
текущая позиция чтения, вызывающая волшебное спасение чтобы снова найти тот же файл
потом. В худшем теоретическом случае это может вызвать цикл, в котором один и тот же файл
извлекается тысячи раз, пока дисковое пространство не будет исчерпано. Вы также вероятно
чтобы перезаписать удаленные файлы, которые вы искали в первую очередь.
-r рецепт
Обязательный. Имя рецепта, файл или каталог. Укажите это как простое имя
(например, "jpeg-jfif") или путь (например, рецепты / jpeg-jfif). Если не найдет такой
файл в текущем каталоге, он будет искать в ./рецепты и
/ usr / share / magicrescue / рецепты.
If рецепт - это каталог, все файлы в этом каталоге будут рассматриваться как рецепты.
Просмотрите / usr / share / magicrescue / рецепты каталог, чтобы узнать, какие рецепты
доступный. Рецепт - это текстовый файл, и вы должны прочитать комментарии внутри него.
перед его использованием. Либо используйте рецепт как есть, либо скопируйте его куда-нибудь и измените
его.
Информацию о создании собственных рецептов см. В разделе «РЕЦЕПТЫ».
-I файл
Читает входные файлы из файл в дополнение к перечисленным в командной строке. Если
файл "-", читается со стандартного ввода. Каждая строка будет интерпретироваться как файл
имя.
-M выходной_режим
Создавать машиночитаемый вывод на стандартный вывод. выходной_режим может быть:
i Распечатайте имя каждого входного файла перед обработкой
o Распечатайте имя каждого выходного файла после обработки
io Выведите имена входных и выходных файлов. Имена входных файлов будут иметь префикс
«я» и пробел. Имена выходных файлов будут иметь префикс «о» и пробел.
В этом режиме на стандартный вывод больше ничего не выводится.
-O [+|-|=][0x]смещение
Резюме из указанного смещение в первом устройстве. Если с префиксом 0x это будет
интерпретироваться как шестнадцатеричное число.
Номер может быть предварен знаком:
= Искать в абсолютной позиции (по умолчанию)
+ Ищите относительную позицию. Для обычных файлов это то же самое, что и выше.
- Ищите EOF за вычетом смещения.
ИСПОЛЬЗОВАНИЕ
Допустим, вы уничтожили файловую систему на / dev / hdb1 и хотите извлечь все файлы jpeg.
файлы, которые вы потеряли. В этом руководстве предполагается, что вы установили Magic Rescue в / USR / местные, который
по умолчанию.
Убедитесь, что на вашем диске включены DMA и другие оптимизации, иначе это займет несколько часов. В
Linux, используйте hdparm, чтобы установить эти параметры:
$ hdparm -d 1 -c 1 -u 1 / dev / hdb
Выберите выходной каталог где-нибудь с большим объемом дискового пространства.
$ мкдир ~ / вывод
Посмотрите в / usr / local / share / magicrescue / рецепты каталог для рецептов, которые вы хотите.
Magic Rescue поставляется с рецептами для некоторых распространенных типов файлов, и вы тоже можете создать свои собственные.
(см. следующий раздел). Откройте рецепты, которые вы хотите использовать, в текстовом редакторе и прочтите их
Комментарии. Для работы большинства рецептов требуется стороннее программное обеспечение, и вы можете захотеть изменить
некоторые параметры (например, min_output_file) в соответствии с вашими потребностями.
Затем вызовите волшебное спасение
$ Magicrescue -r jpeg-jfif -r jpeg-exif -d ~ / вывод / DEV / hdb1
Он просканирует весь ваш жесткий диск, поэтому это может занять некоторое время. Вы можете остановить это и
возобновите позже, если хотите. Для этого прервите его (с помощью CTRL + C) и отметьте прогресс.
информация о том, по какому адресу он попал. Затем перезапустите его позже с -O опцию.
Когда он закончится, вы, вероятно, найдете тысячи файлов .jpg в ~ / вывод, включая
вещи, о которых вы никогда не знали, были в кеше вашего браузера. Сортировка всех этих файлов может быть
огромная задача, поэтому вы можете использовать для ее выполнения программное обеспечение или скрипты.
Во-первых, попробуйте удалить дубликаты с помощью дубликат(1) инструмент, включенный в этот пакет.
$ dupemap delete, отчет ~ / вывод
Если вы выполняете операцию восстановления, вы захотите избавиться от всех спасенных
файлы, которые также появляются в действующей файловой системе. Увидеть дубликат(1) инструкция для
инструкции по выполнению этого.
Если этого недостаточно, вы можете использовать магическая сортировка(1) для лучшего обзора:
$ магическая сортировка ~ / вывод
РЕЦЕПТЫ
Создающий рецепт файлов
Файл рецептов - это относительно простой файл из 3-5 строк текста. Он описывает, как
распознать начало файла и что делать, если файл распознан. Для
Например, все изображения jfif начинаются с байтов «0xff 0xd8». В 6-м байте будет
строка «JFIF». смотреть на рецепты / jpeg-jfif в исходном дистрибутиве, чтобы следовать этому
пример.
Сопоставление магических данных выполняется с помощью «операции сопоставления», которая выглядит следующим образом:
смещение операция параметр
в котором смещение - десятичное целое число, указывающее, сколько байтов от начала файла
эти данные расположены, операция относится к встроенной операции сопоставления в волшебное спасение и
параметр специфичен для этой операции.
· The string операция соответствует строке любой длины. В примере jfif это четыре
байтов. Вы можете использовать escape-символы, такие как «\ n» или «\ xA7».
· The int32 операция соответствует 4 байтам, объединенным И с битовой маской. Чтобы соответствовать всем четырем байтам,
используйте битовую маску «FFFFFFFF». Если вы не знаете, что такое битовая маска, просто используйте
string операция вместо этого. Маска «FFFF0000» в примере jfif соответствует первому
два байта.
· The колесница операция похожа на «строку», за исключением того, что она соответствует только одному символу.
Чтобы изучить эти шаблоны для данного типа файлов, посмотрите файлы нужного типа в шестнадцатеричном формате.
редактор, выполните поиск в файлах ресурсов для файл(1) полезность
(<http://freshmeat.net/projects/file>) и / или поищите в Интернете ссылку на
формат.
Если все операции совпадают, мы нашли начало файла. Нахождение конца
file - гораздо более сложная проблема, и поэтому она делегируется внешней команде оболочки,
который назван команду директива. Эта команда получает файл блочного устройства
дескриптор на stdin и должен писать в файл, указанный ему в переменной $ 1. Помимо
что команда может делать все, что захочет, чтобы попытаться извлечь файл.
Для некоторых типов файлов (например, jpeg) уже существует инструмент, который может это сделать. Однако многие
программы плохо себя ведут, когда им говорят читать из середины огромного блочного устройства. Некоторые стремятся
байт 0 перед чтением (можно исправить, поставив префикс cat |, но некоторые отказываются работать с файлом
они не могут искать). Другие пытаются прочитать весь файл в памяти, прежде чем что-либо делать,
что, конечно же, выйдет из строя на многогигабайтном блочном устройстве. И некоторые полностью не в состоянии
проанализировать частично поврежденный файл.
Это означает, что вам, возможно, придется написать свой собственный инструмент или обернуть существующую программу в какой-то
сценарии, которые улучшают его работу. Например, это может быть извлечение первых 10 МБ
во временный файл, и пусть программа поработает над этим. Или, возможно, вы можете использовать
инструменты / safecat если файл может быть очень большим.
Разработка формат ссылка
Пустые строки и строки, начинающиеся с "#", будут пропущены. Рецепт содержит серию
сопоставить операции для поиска содержимого и ряд директив, чтобы указать, что делать с
его.
Линии формата смещение операция параметр добавит в список операцию сопоставления.
Операции сопоставления будут выполняться в том порядке, в котором они указаны в рецепте, и все они должны
соответствовать рецепту, чтобы добиться успеха. В смещение описывает, какое смещение эти данные будут найдены
в, считая с начала файла. операция может иметь следующие значения:
string string
Параметр представляет собой последовательность символов, которая может содержать escape-последовательности, такие как
\ xFF.
колесница персонаж
Параметр - это одиночный символ (байт) или escape-последовательность.
int32 ценностное битовая
Оба формата ценностное и битовая выражаются в виде восьмизначных шестнадцатеричных строк. битовая будет
Выполните операцию AND с данными, и результат будет сравнен с ценностное . Порядок байтов
как вы видите это в шестнадцатеричном редакторе, то есть с прямым порядком байтов.
Первая операция сопоставления в рецепте особенная, она будет использоваться для сканирования
файл. Только колесница и string там можно использовать операции. Чтобы добавить больше операции
типы, см. инструкции в волшебное спасение.c.
Строка, которая не начинается с целого числа, является директивой. Это может быть:
расширение Ext
Обязательный. Ext называет расширение файла для этого типа, например, «jpg».
команду команду
Обязательный. Когда все операции сопоставления успешны, это команду будет выполнен
извлеките файл из блочного устройства. команду передается в оболочку с
файловый дескриптор блочного устройства (обращенный к правому байту) на стандартном вводе. Оболочка
переменная $ 1 будет содержать файл, в который должен быть записан ее вывод, и она должна
уважайте это. Иначе волшебное спасение не могу сказать, удалось ли это.
переименовать команду
По желанию. После успешного извлечения эта команда будет запущена. Его цель
собрать достаточно информации о файле, чтобы переименовать его во что-то большее
значимый. Сценарий не должен сам выполнять команду переименования, но должен
напишите в стандартный вывод строку «RENAME», за которой следует пробел, за которым следует
новое имя файла. Больше ничего не должно быть записано на стандартный вывод. Если файл
не следует переименовывать, ничего не должно записываться на стандартный вывод. Стандарт
input и $ 1 будет работать как с команду Директивы.
min_output_file размер
По умолчанию: 100. Выходные файлы меньше этого размера будут удалены.
разрешить_перекрытие байт
По умолчанию рецепты не совпадают в перекрывающихся диапазонах байтов. разрешить_перекрытие
отключает это, и его всегда следует использовать для рецептов, в которых извлеченный файл
может быть больше, чем было на диске. Если байт отрицательный, проверка перекрытия будет
полностью отключен. В противном случае проверка перекрытия будет действовать для всего.
но последний байт вывода. Например, если на выходе может быть до 512
байтов больше, чем ввод, разрешить_перекрытие должен быть установлен на 512.
Чтобы проверить, действительно ли ваш рецепт работает, просто запустите его на жестком диске или используйте
инструменты / контрольный рецепт скрипт для выбора файлов, которые должны совпадать, но не совпадают.
Если вы создали рецепт, который работает, отправьте его мне по электронной почте по адресу [электронная почта защищена] Так что я могу
включить его в раздачу.
КОГДА К НЕ ИСПОЛЬЗОВАНИЕ MAGIC ДЕЖУРНАЯ
Magic Rescue - не универсальное приложение для восстановления файлов. Это даст
хорошие результаты при извлечении файлов известных типов из неиспользуемой файловой системы, но
для многих других случаев доступны лучшие инструменты.
· Если где-то есть неповрежденные перегородки, используйте gpart найти их.
· Если внутренние структуры данных файловой системы более или менее не повреждены, используйте The Сыщик
Кит. Однако на момент написания он поддерживает только NTFS, FAT, ext [23] и FFS.
· Если у Magic Rescue нет рецепта для типа файла, который вы пытаетесь восстановить,
стараться в первую очередь вместо. Он распознает больше типов файлов, но в большинстве случаев извлекает
их просто скопировав фиксированное количество байтов после того, как он нашел начало
файл. Это затрудняет постобработку выходных файлов.
Во многих случаях вы захотите использовать Magic Rescue в дополнение к упомянутым выше инструментам.
Они не исключают друг друга, например, объединение волшебное спасение DLS из The Sleuth Kit
может дать хорошие результаты. Во многих случаях вы захотите использовать волшебное спасение извлечь его
известные типы файлов и другая утилита для извлечения остальных.
При объединении результатов более чем одного инструмента, дубликат(1) можно использовать для устранения
дубликаты.
Используйте magicrescue онлайн с помощью сервисов onworks.net