anysurrect(8)

НАЗВАНИЕ
anysurrect - ищет файлы на устройстве и сохраняет полученную информацию в файле внешней таблицы инф.узлов.

СИНТАКСИС
anysurrect [-b blocksize] [-i input_inode_table]
	[-p path_prefix] [-u file_umask] [-U dir_umask] [-fqvV] [-hH]
	[-g plug-ins] [-e] [-t list_of_types] [-T list_of_types]
	[-l] device inode_table [-- [module module_options [--]] ...]
Синтаксис модуля filesystem_info_ext2fs_group_info:
ext2fs [-g blocks-per-group] [ -i bytes-per-inode] [ -N number-of-inodes]
   [-h] [--]

ОПИСАНИЕ
anysurrect ищет на устройстве файлы исходя из известной структуры различных типов файлов. Информация о найденных файлах также сохраняется в виде внешней таблицы инф.узлов. anysurrect открывает устройство в режиме только для чтения, поэтому данные на нём не будут изменены. На данный момент anysurrect поддерживает следующие типы файлов:
Форматы основанные на Quick Time контейнерах: MOV, и ISO Base Media Файлы: JPEG 2000, MPEG4, 3GP и другие
изображения: PNG, JPEG, BMP, PNM, TIFF
звук: WAV, MIDI, MPEG3
звук и видео: OGG, AVI, MPEG2 stream (при наличии -lmpeg2), program multiplex MPEG2 stream
архивы: TAR, ZIP, RAR, BZIP2 (при наличии -lbzip2), GZIP
документы: PDF, ODF и другие ZIP-основанные форматы будут распознаны как ZIP.
запускаемые: ELF32
простой текст: ASCII, 8-битная кодировка, UTF-8, UTF16-BE, UTF16-LE
образы компакт дисков: ISO9660. Для лучшего восстановления anysurrect может распознавать системные блоки следующих файловых систем:
EXT2FS/EXT3FS: блоки DIRECT, INDIRECT и DOUBLE INDIRECT ссылками, блоки таблицы инф.узлов (см. описание опции -e). При этом поиск текстов является дорогой (в смысле использования процессорного времени) операцией. Поэтому по умолчанию распознаются только ASCII тексты. Список распознаваемых форматов может быть изменён опцией -t. Распознаваемые окончания строк (Unix, DOS и MAC) настраиваются на стадии компиляции правкой файла anyfs-tools/src/anysurrect/config.h Итак поиск файлов утилитой anysurrect основан на знании внутренней структуры этих файлов. Такой поиск не зависит от файловой системы носителя. Однако при этом оригинальные имена файлов и структура каталогов теряются. Некоторые способы восстановления имён файлов демонстрирует пакет anyrename который также может быть скачан в разделе Download сайта anyfs-tools. anysurrect не найдёт файлы если они не выровнены по границе блока (например, на ReiserFS файлы меньше 4 Кб хранятся в таком упакованном формате), файлы с tail-packing'ом на Reiser4 или если они заархивированы/зашифрованы на_уровне_файловой_системы (такую возможность, например, имеет NTFS -- да, конечно, Microsoft не поддерживает Unix-way).

О ФРАГМЕНТИРОВАННЫХ ФАЙЛАХ
Экспериментальная реализация восстановления фрагментированных файлов показала, что вероятность соединить при этом что-то с чем-то, да не с тем слишком высока. Поэтому максимум на что можно надеяться это на использование двух-проходного восстановления, когда на первом проходе восстанавливаются нефрагментированные файлы, а на втором -- фрагментированные, фрагменты которых разделены ранее восстановленными нефрагментированными файлами. (при указании опции -i производится именно такой поиск). Но вообще говоря обычно фрагментированных файлов на разделе не столь много, чтобы всерьёз об этом беспокоится. Восстановление же фрагментированных файлов может быть с бОльшим успехом реализовано при попытке поисков файлов по системной информации файловой системы (см. описание опций -e, -T)

ОПЦИИ

-b blocksize
    Размер блока файловой системы устройства. Это число должно быть степенью двойки, и не меньше 512. По умолчанию принимается равным 512 (и может быть увеличено для больших устройств)

-i input_inode_table
    Входящий файл внешней таблицы инф.узлов, вероятно полученный применением утилиты build_it. При указании этой опции поиск будет производится только по свободным блокам устройства. Разумеется, если есть возможность (если файловая система не бита и нужно восстановить удалённые файлы) надо пользоваться этой опцией.

-p path_prefix
    Префикс к путям для создаваемых файлов. Полезно при использовании совместно с опцией -i когда в корне уже достаточно директорий, чтобы переместить все восстанавливаемые файлы в другую более удобную для вас директорию.

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

-U dir_umask
    Аналогично -u но для директорий.

-f  По умолчанию нулевой блок помечается занятым (т.к. обычно там содержится суперблок файловой системы) и не просматривается. Эта опция позволяет пометить нулевой блок свободным. Вызов `anysurrect -qvf <файл> /dev/null` удобно использовать для теста anysurrect на то найдёт ли он конкретный файл.

-q  Не выводить ни каких сообщений.

-v  Выводить типы найденных файлов, их начальный блок и размер.

-V  Вывести только номер версии и выйти.

-h  Выводит список опций.

-H  Выводит список опций для всех модулей (используйте совместно с опцией -e).

-g plug-ins
    Начиная с версии 0.83.2 anysurrect поддерживает дополнительную загрузку динамических библиотек для восстановления новых типов файлов. Перечислите подгружаемые библиотеки через пробел. Для списка всех известных типов файлов используйте опцию -l. Для включения новых типов файлов в список восстанавливаемых используйте опцию -t.

-e  Эквивалентно
    -t "filesystem_info_ext2fs_direct_blocks_links filesystem_info_ext2fs_double_indirect_blocks_links filesystem_info_ext2fs_indirect_blocks_links filesystem_info_ext2fs_inode_table filesystem_info_ext2fs_group_info"
    При этом anysurrect будет пытаться использовать информацию из найденных блоков, и будет вызывать surrecter'ы из списка -T чтобы найти другие файлы. Распознанные таким образом файлы будут помещены в директорию /filesystem_files. При этом, при известном размере файла (если эта информация найдена в таблице инф.узлов), но не опознанном типе ни одним из surrecter'ов файл будет помещён в директорию /filesystem_files/UNKNOWN. Для достижения максимального эффекта при восстановлении с EXT2FS/EXT3FS используйте восстановление в два прохода:
    1) сначала с опцией -e, и указанием РЕАЛЬНОГО размера блока опцией -b (и опцией -iприпредварительномиспользовании build_it, а также опций модуля ext2fs)
    2) затем с передачей опцией -i полученной таблицы инф.узлов в первом пункте

-t list_of_types
    Начиная с версии 0.83.2 вы можете изменять список восстанавливаемых файлов без перекомпиляции -- просто перечислите их через пробел в этой опции. Для списка поддерживаемых типов файлов используйте опцию -l.

-T list_of_types
    Эта опция впервые появилась в версии 0.84.12 пакета. Опция задаёт вторичный список восстанавливаемых типов файлов и может быть использован совместно с опцией -e для задания типов файлов которые будут искаться с использованием системной информацией ФС.

-l  Выдаёт полный список известных типов файлов для восстановления.

device
    Устройство (или простой файл, образ устройства) для восстановления файлов.

inode_table
    Файл, в который будет сохранена сформированная внешняя таблица инф.узлов.

--  Конец опций главного модуля (дальше предполагается название следующего модуля).

ОПЦИИ МОДУЛЯ filesystem_info_ext2fs_group_info
Этот модуль ищет группы блоков на файловой системе ext2fs, а точнее их системную информацию -- суперблок, таблицу инф.узлов, карты распределения блоков и инф.узлов. Кроме того он пытается использовать информацию найденную в таблице инф.узлов. По умолчанию модуль пытается найти первый суперблок и узнать параметры файловой системы оттуда. Однако, вы можете форсировать другие значения нижеследующими опциями. Значения опций соответсвует значению соотвутсвующих опций mke2fs(8).

-g blocks-per-group
    Размер группы блоков в блоках.

-i bytes-per-inode
    Соотношение байт/инф.узел.

-N number-of-inodes
    Число инф.узлов на файловой системе.

-h  Выдать опции модуля.

--  Конец опций модуля (дальше предполагается название следующего модуля).

ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ
Восстановление из /dev/hda1 в inode.table:
$ anysurrect /dev/hda1 inode.table Поиск системной информации ext2fs/ext3fs (4096 это обычный размер блока ext2fs/ext3fs):
$ anysurrect -b 4096 -e /dev/hda2 inode.table Восстановление jpeg и png файлов из /dev/hda2 используя таблицу инф.узлов из предыдущей стадии:
$ anusurrect -i inode.table -t "image_JPEG image_PNG" /dev/hda2 inode.table Замечание: так как anysurrect считывает всю информацию из входящей таблицы инф.узлов сразу перед поиском, вы можете использовать тот же исходящий файл, что и входящий (впрочем как и различные, как в следующем примере). Восстановление с использованием таблицы инф.узлов полученной build_it и помещением новых файлов в директорию ANYSURRECT:
$ anusurrect -i inode.table -p "/ANYSURRECT/" /dev/hda3 inode.table2 Замечание: последний слеш в префиксе пути необходим. Иначе будут созданы директории с названиями вроде "ANYSURRECTarchieve", "ANYSURRECTimage", но в корневой директории. Список опций модуля filesystem_info_ext2fs_group_info можно увидеть командой
$ anysurrect -eH Восстановление ФС ext2fs, с указанием её параметров:
$ anysurrect -b 4096 -e /dev/sda10 sda10.it -- ext2fs -i 4194304

АВТОР
Николай Кривченков aka unDEFER <undefer@gmail.com>

СООБЩЕНИЯ ОБ ОШИБКАХ
Сообщения о любых проблемах с применением пакета anyfs-tools направляйте по адресу: undefer@gmail.com

ДОСТУПНОСТЬ
последнюю версию пакета вы можете получить на сайте проекта: http://anyfs-tools.sourceforge.net

СМ. ТАКЖЕ
anyfs-tools(8), anyfs_inode_table(5), anysurrect-plugins(3)