build_it(8)

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

СИНТАКСИС
build_it [-qvVnsafp] directory inode_table

ОПИСАНИЕ
build_it считывает из директории рекурсивно информацию обо всех инф.узлах файловой системы используя драйвер (для чтения) ОС Linux и сохраняет её в виде внешней таблицы инф.узлов. Для работы утилита требует наличия драйвера файловой системы (возможно только для чтения) для ОС Linux с поддержкой системного вызова ioctl(2) FIBMAP. Вызов FIBMAP требует наличия у пользователя прав суперпользователя. Начиная с версии 0.84.9 утилита воспользуется эффективным идентификатором если на файле установлен SUID бит, чтобы произвести эти операции. Так запуск программы становится возможным и от обычного пользователя. Работа утилиты протестирована на файловых системах: EXT2FS/EXT3FS, XFS, ReiserFS, VFAT, JFS, ISO9660, ntfs-3g. Большинство из них (кроме NTFS) имеют полноценную поддержку FIBMAP. В драйвере файловой системы NTFS поддержка FIBMAP присутствует в FUSE драйвере ntfs-3g начиная с версии 0.20061212-BETA. При этом вам необходимо смонтировать файловую систему с опцией blkdev. Читайте losetup(8), если вам необходимо таким образом смонтировать образ ФС, а не блочное устройство. Имейте также в виду, что все достаточно малые файлы в NTFS хранятся в упакованном формате и они будут отображены в таблице инф.узлов как sparse-файлы. Так же sparse-файлами будут отображены все шифрованные/ сжатые файлы на уровне файловой системы. Смотрите описание опции -s. Для ReiserFS(и Reiser4) build_it будет вызывать ioctl вызов UNPACK, чтобы избежать tail-packing'а и получить правильную карту его файлов. Вы можете использовать опцию -n если не хотите изменений на файловой системе (что может быть важно при восстановлении данных), но в этом случае вы можете получить не совсем верную таблицу инф.узлов.

ОПЦИИ

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

-v  Выводить некоторую дополнительную информацию.

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

-n  Не распаковывать файлы ReiserFS и Reiser4FS.

-s  Выводить на стандартный поток вывода список всех sparse-файлов. Используется утилитой anyconvertfs(8) для формирования rescue-списка при конвертировании из ntfs-3g.

-a  Использовать абсолютную адресацию относительно всего диска, а не его отдельного раздела. Имейте ввиду при использовании этой опции что далее для монтирования полученной таблицы инф.узлов необходимо указывать целый диск (например /dev/hda), а не отдельный его раздел (например /dev/hda1, /dev/hdb7). Кроме того это означает автоматическую установку размера блока таблицы инф.узлов в размер сектора (512 байт), т.к. именно в секторах задаётся смещение разделов в таблице разделов.

-f  Обрабатывать другие файловые системы расположенные на разделах того же устройства, что и файловая система указанной директории. Так если /dev/hda1 смонтирован в /mnt/root, /dev/hda3 в /mnt/root/home, а /dev/hdb1 в /mnt/root/usr, то при указании утилите директории /mnt/root, в таблицу инф.узлов будет включено также всё содержимое /mnt/home, но содержимое /mnt/usr по-прежнему не будет включено в неё. Опция может быть использована только одновременно с -a.

-p  Создать в таблице инф.узлов также все директории от корня до указанной директории.

directory
    Директория, обычно корень/точка монтирования файловой системы, построение таблицы инф.узлов которой будет производится.

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

ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ
Построение внешней таблицы инф.узлов файловой системы на устройстве смонтированной в домашней директории пользователя user:
# build_it /home/user /tmp/inode.table Замечание: будет лучше, если будущая таблица инф. узлов будет располагаться на другом устройстве (или директории расположенной вне рекурсивной обработки дерева), как и в примере. Замечание: если точка монтирования в этом примере /home (не /home/user) то построенная внешняя таблица инф.узлов не будет включать файлов из других директорий, чем /home/user -- это будет частичная таблица инф.узлов устройства. Замечание: если там будет другая точка монтирования в рекурсивно обрабатываемом дереве (например /home/user/mount/point) -- она не будет обработана (таблица инф.узлов не может содержать информации о нескольких различных устройствах)

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

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

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

СМ. ТАКЖЕ
anyfs-tools(8), ioctl(2), ioctl_list(2), anyfs_inode_table(5)