FSDB(1M)
FSDB(1M)
НАЗВАНИЕ
fsdb - отладчик файловых систем
СИНТАКСИС
/etc/fsdb файловая_система [-]
ОПИСАНИЕ
Отладчик fsdb обычно используется для исправления файловой системы, испорченной в результате аварии. Отладчик может преобразовывать номера блоков и описателей файлов в соответствующие дисковые адреса. Для доступа к отдельным полям описателей файлов существуют мнемонические обозначения. Все это сильно упрощает исправление управляющей информации или обход дерева файлов.
Файловая_система задается именем содержащего ее специального файла.
Отладчик использует несколько подпрограмм для контроля корректности адресов блоков и описателей файлов. В качестве основы для проверок из суперблока извлекаются размер в блоках списка описателей файлов и размер в блоках всего тома. При необходимости контроль можно отключить, если при вызове fsdb указать опцию -, или воспользоваться командой O (см. ниже).
По умолчанию числа считаются десятичными. Восьмеричные числа должны начинаться с нуля. Во время любой операции присваивания проверяется, не отбрасываются ли значащие цифры из-за несоответствия типов левой и правой частей.
Отладчик fsdb читает данные порциями размером в блок и, следовательно, может работать как с бесструктурным, так и с блочным вводом/выводом. Для уменьшения числа системных вызовов чтения используются буфера, хранящие наиболее часто используемые блоки данных. Все операции присваивания приводят к немедленной записи измененного блока.
Отладчик fsdb распознает следуюшие символы:
Абсолютный адрес. |
Преобразование номера описателя файла в адрес описателя. |
Преобразование в адрес блока. |
Смещение элемента каталога. |
Адресная арифметика. |
Выход. |
Сохранение/восстановление адреса |
Числовое присваивание. |
Присваивание с увеличением. |
Присваивание с уменьшением. |
Присваивание цепочки символов. |
Включение/выключение контроля корректности адресов. |
Общее средство печати. |
Средство печати файлов. |
Байтный режим. |
Полусловный режим. |
Словный режим (слово считается 32-битным). |
Вызов shell'а. |
При печати выводимую информацию можно форматировать различными способами. До начала печати текущий адрес приводится к границе, определяемой режимом. В процессе печати текущий адрес увеличивается и в итоге становится равным адресу последнего напечатанного элемента. Вывод можно прервать, введя символ прерывания. Если за символом p идет число, то выводится указанное количество элементов. Производится проверка на выход за границу блока, так как логически последовательные блоки в общем случае физически не последовательны. Если после символа p задан 0, то выводятся все элементы до конца текущего блока. Доступны следующие опции печати:
Печатать как описатели файлов. |
Печатать как каталоги. |
Печатать как восьмеричные слова. |
Печатать как десятичные слова. |
Печатать как символы. |
Печатать как восьмеричные байты. |
Точки, табуляции и пробелы можно использовать в качестве разделителей функций, что, впрочем, не обязательно. Строка с единственным символом перевода строки увеличит текущий адрес на размер выведенного последним элемента данных. Тем самым адрес устанавливается на следующий байт, полуслово, слово, элемент каталога или описатель файла, это позволяет перемещаться по однородным элементам файловой системы. Информация выводится в формате, соответствующем типу данных. Байты, полуслова и слова изображаются следующим образом: сначала идет восьмеричный адрес, а за ним значение в восьмеричном и десятичном виде. Окончания .B или .D добавляются соответственно к адресам байтных или словных величин. Каталоги выводятся так: сначала смещение элемента каталога, за ним десятичный номер описателя файла и символьное представление имени элемента. Описатели файлов выводятся с поименованными полями:
Режим доступа. |
Число ссылок. |
Числовой идентификатор владельца. |
Числовой идентификатор группы. |
Размер файла в байтах. |
Номера блоков данных (0-12). |
Время последнего доступа. |
Время последней модификации. |
Время последнего изменения описателя. |
Старший номер устройства. |
Младший номер устройства. |
ПРИМЕРЫ
3689i
ln=4
ln=+1
fc
2i.fd
d5i.fc
512B.p0o
2i.a0b.d7=3
d7.nm="name"
a2b.p0d
СМ. ТАКЖЕ
.
, в Справочнике программиста.