fsdb - отладчик файловых систем.
/etc/fsdb special [-]
fsdb может быть использована для залатывания поврежденной файловой системы после сбоя. Она содержит средства преобразования индексов и номеров блоков в соответствующие адреса на диске. Она содержит также мнемонические смещения для получения доступа к различным частям индексных дескрипторов. Это существенно упрощает процесс корректировки структур управляющего блока или спуска по дереву файловой системы.
fsdb содержит в себе несколько процедур контроля ошибок для проверки адресов индексных дескрипторов и блоков. Эти процедуры можно отключить, вызвав fsdb с необязательным аргументом - или с символом O. (fsdb читает структуры размеров дескрипторов и файлов из суперблока файловой системы в качестве базиса для этой проверки.)
Все числа считаются по умолчанию десятичными. Восьмиричные числа распознаются по нулевому префиксу. Во время операций присваивания числа проверяются на ошибки усечения, возникающие из-за несоответствия исходных и результирующих размеров.
fsdb читает поблочно и поэтому может работать как с символьными, так и с блочными устройствами ввода/вывода. Для обращения к часто используемым блокам данных используется специальная процедура буферного управления, чтобы уменьшить количество системных вызовов операций чтения. Все операции присваивания сопровождаются немедленной записью в соответствующий блок.
Символы, распознаваемые fsdb:
# | абсолютный адрес |
i | преобразование индекса в адрес дескриптора |
b | преобразование к адресу блока |
d | смещение поля каталога |
+,- | адресная арифметика |
q | выход |
>,< | сохранение, восстановление адреса |
= | численное присваивание |
=+ | присваивание со сложением |
=- | присваивание с вычитанием |
=" | присваивание символьной строки |
O | переключатель проверки ошибок |
p | общие средства печати |
f | средство печати файлов |
B | байт |
W | слово |
D | двойное слово |
! | выход в оболочку |
Средства печати генерируют форматированный вывод различных типов. Перед началом печати текущий адрес нормализуется в подходящие пределы. По мере печати он увеличивается и принимает значение адреса последнего напечатанного элемента. Выдача может быть прекращена в любой момент введением символа удаления. Если за символом p следует число, то печатается ровно столько записей. Выполняется проверка на выход за границы блока, поскольку логический порядок блоков в общем случае не совпадает с физическим. Если встречается нулевой указатель, то печатаются все записи до конца текущего блока. Допустимые опции печати таковы:
i | печатать как индексный дескриптор |
d | печатать как каталог |
o | печатать в восьмиричном виде |
e | печатать десятичными словами |
c | печатать в символьном виде |
b | печатать восьмиричными байтами |
md | режим |
ln | указатель цепи (link count) |
uid | пользовательский идентификатор |
gid | групповой идентификатор |
sz | размер файла |
a# | номера блоков данных (0 - 12) |
at | время доступа |
mt | время модификации |
maj | главное (большее) число устройство |
min | малое ( меньшее) число устройства |