Производственно-внедренческий кооператив

"И Н Т Е Р Ф Е Й С"













Диалоговая Единая Мобильная

Операционная Система

Демос/P 2.1










Программа проверки

файловой системы

fsck












Москва

1988















АННОТАЦИЯ
Описывается программа fsck, предназначенная для автоматичес-
кой проверки и восстановления файловой системы.































































1. Предварительные сведения

1.1. Назначение программы fsck

Программа fsck предназначена для проверки и, в случаях
нарушения целостности, исправления файловой системы ДЕМОС.

Нарушение целостности файловой системы может произойти,
например, в таких случаях:

- при неверной последовательности останова ОС, например,
когда не была выполнена команда sync(8) перед остановом
центрального процессора;

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

Программа fsck может работать в одном из следующих
режимов.

1. Этот режим предназначен для автоматической проверки и
коррекции файловой системы, без потерь информации.
Применяется при вызове ОС во время выполнения старто-
вого файла /etc/rc для мо ет а
св не равн у т с ен ну ,
с ь отс динен к
s_ + und вели ны обоих с от ны от ну равн д мен наче одяще-
го нешней пам ет на значе






1









. Д ир в ны
и и
) ди
с ни мер , б мого
ом едел х мер от д к у оста х слу аях ра едел х для в че го мера . аружены у в про у ля на ду н го . Без ис ия имого ф с ами, и, определ кой из в
нарушен и жен б стер до уч ранним времен я ля е и жен б ер

Это лов возн ну при вместн с димы о врем ля ля оста х
ловой оя а ду оже от тс е на тк бо

О и ч ы
ь и
ди
о твляет у ,
мого значен , меньше че ьше че дн мер вы пазон, зна о чен ьш а в в е ля от тс е на тк бо

. П вер аз ро в

32-битн (4- ное) пол . Эт з ет о си ол ле с оо
1









ующ параметров ер атны шестн цати
си олам о фа не от ву ру у a ет й ницу бит a сл ел ип
Р ер a жен б кратен шестн цат ь a б 2 а - 1 б имя гa

По й выда ред еж . и, б для я Бы я п к дк ротиворе ость поля ов ла получением из поля н ом и ением с им ом -
о
вы ет на я -
щи зом исло в исло ол при я 5 ре ь ля . о . тс ет исленном пред еж в е файла. Но еж-
у не а мы льном по д . св ы
длеж След х не л принадлежат вы сл тиворе я
захвачен им и в вы гра ц мы рр ки противоре с , ни я п к 2.2. и 2.2. , ед о до х ны ет - ан ов. П ты , ящую ле. и ов. ост имого.

1 Проверк ующ противоре я а в т сп едел ы о че й неверное о для "." и ".." и, н нец тс динен от и н з учтен л о у . си я ну , б нены ны истем а ел е и з ет конец f у . Это оя во
н я а дл "." й ю в е . Е ели на
у а дл ".." вто ой ю в е . Е ели на
у род е и ли мер не й

и н а неверн ет их зност мы и
обнар о и н ны стемой,
при няет ге s_ + und. я
, когда ы з истем а оо а - . п ск в об но го р тв го ринадлежат лед в не я
т не ре ь мог лен отиворе я вы т апазон;
в вы стимые границы при-
нен е и ти об п.
2.1.2.





1









Диа г ти
сс бот амма вы сти ия, при ко обнар ен ловой о ки и не ильное опе мов про
нар ив о к об не и, но, ла ору ри ро же я главе оп ны ност ки ще я на ос аммы и
я, в лн получения то иагност ки об ия с п м
е 1 приведены ения для
да ы .

. . П д го и ель ые е в я

Перед мы ет вн та ы т е димые ном ел ра атри ся гност возн при от е , по ня гност ки ения зн лед е не ил ебо вы ение ам т ия ,
ловой .


C o p io ?

л ч C?

я C име мысл Дост ны сл и:
, , N, u , p, , S. пре .


Bad o p io

П о к ч

ано имя пре .


I val id argum , d faul a um d

Не и ы ар г , сп ь т у ча
стоя параметры 3, и параметр
ко че тво б оков н ц нд к че тво п оп ск е ых б око
По умол ол 4 б оков н ц нд и 9
п оп ск е ых б око 1










I om pa ibl o p io a d S

Не в е и е чи и S

С в ции . пре .


Ca ' g m mor

Не х а а т а
О f димо ой ти. пре .


F o a hara r d v i

F н е и оль е р
чес f мя обы ци-
Проверк пре а .


Ca ' o p F

Не г о ры ь F

F б от а для ения Про ерк ьте
ост а F.


S iz h iz X size Y

П верь е аз ры ра .ф л. темы X . . в Y

име в
сам й , ней 6553
ов. Проверк я (см.
п. 1.1.


Ca ' r a F

Не г а ь F

врем го ф ен Про ерк ьте
ост а F.

17









Ca o s bl B o i u )

Не г ици ир вать B р до а ь)

пере к с мером B ен.
Серьез ны ующ на ос o i u п аться верк Данн не ли зв лную про верку . Не ди ти в про ы для и
ью рту кэш- вып ение
у пре ено с ением Fa al I O rror
( а а ь а о и в од а вы од а

o Пр ра лне про

Ca o r ad bl B o i u )

Не г р и а ь B р до а ь)

го не ен. Серьез ловой ны ующ на ос o i u Про рку . Данная
по ли ти лн у . Не ди зв по вызов
програ f ля верки ыл
ь рту кэш- вып f
рекращен с об Fa al I O rror
( а а ь а о и в од а вы од а

o Пр ра лне про

Ca o wr i bl B o i u )

Не г са ь B р до а ь)

го не ен. Диск щи и ны ующ на ос o i u Про рку . Эта не
п зв рку . Не ди ти ой он про ы
и был ью 1 рту кэш- бу прек ен с об Fa al I O rror а а ь а
в од а вы од а

o Пр ра лне про
Ша г 1 р вер в аз ро в

На ом г ов. ном
ел оп ны иагност ки об ия зн при в лне та ы недост
лов ( ко с в е в ис в тнося о ду . в чен не о врем в рк
U ow il p I=N l ar)

Неи е ы и л I=N ти ь)

Дескрип N з ет о не ля ри им м м см. п. 1.

В ны ующ на ос CLEA нули мое N ом та
ет г 2 о ку u allo a d для
дой з ще л o Игнорирова к

L i ou abl ov rflow o i u )

П ре е а иц дсчет в е ( р до а ь)

Пере вн ней та ы
и недост . Пере пили ь значен м max ncnt На во o i u во ы ующ ты Про вып рамм Эта не в рку Не ди ов . обнар ении ще
ет ом нулевых с й ая
по ся.

19 o вып рамм

B bad I=N

B н ед и ы I=N

мер B ко го меньше а
пер ловой ьше мера
едн -
од стимый пазон ой вы г 1 о к Excess v bad b ks е , о да ку bad/du ении 2 и (см. п. 2.4


E x iv bad bl I=N o i u )

С и ш м о н ед и х в I=N р до а ь)

стем св й с ом N исло верн ко меньше мера пер ьше мера едн й ) вы оп имо
10)(см. п. 2.4

На вопрос continue возможны следующие ответы:

yes Игнорировать в данном i-узле лишние блоки и продол-
жить проверку следующего i-узла файловой системы.
Данная ошибка не позволит осуществить полную про-
верку файловой системы. Для повторной проверки
необходимо еще раз вызвать программу fsck.

no Остановить программу fsck.


B dup I=N

B дважды использованный I=N

i-узел N содержит блок номер B, который уже отнесен к дру-
гому i-узлу. Если i-узел N содержит слишком большое число
блоков, отнесенных к другим i-узлам, то на шаге 1 может воз-
никнуть ошибка Excessive dup blks. Кроме того, данная ошибка
всегда приводит к выполнению шага 1b и ошибке bad/dup на
шагах 2 и 4 (см. п. 3.2.3).


Excessive dup blks I=N (continue)

Слишком много дважды использованных блоков I=N (продолжать)



- 20 -










Число блоков, отнесенных к другим i-узлам, превышает допус-
тимое (обычно 10); см. п. 3.2.3.

На вопрос continue возможны следующие ответы:

yes Игнорировать лишние блоки данного i-узла и продол-
жить проверку в следующем i-узле файловой системы.
Данная ошибка не позволит осуществить полную про-
верку файловой системы. Необходим еще повторный
вызов программы fsck.

no Остановить программу fsck.


Dup table overflow (continue)

Переполнение таблицы дважды использованных блоков (продол-
жать)

Переполнение таблицы fsck, содержащей номера дублированных
блоков. Необходимо перекомпилировать fsck с большей величи-
ной duptblsize.

На вопрос continue возможны следующие ответы:

yes Продолжть выполнение программы. Данная ошибка не
позволит осуществить полную проверку фйловой сис-
темы. Необходим повторный вызов fsck. При обнаруже-
нии еще одного дублированного блока эта ошибка пов-
торяется.

no Остановить выполнение программы fsck.


Possible file size error I=N

Возможная ошибка в размере файла I=N

Размер i-узла не соответствует фактическому числу блоков,
используемых данным i-узлом. Это сообщение является предуп-
реждающим (см. п. 3.2.5).


Directory misaligned I=N

Размер каталога не кратен размеру входа каталога I=N

Рассогласование каталога, т.е. размер i-узла каталога не
кратен размеру записи (обычно 16). Это сообщение является
предупреждающим (см. п. 3.2.5).





- 21 -










Partially allocated inode I=N (clear)

Распределение i-узла не закончено I=N (очистить)

i-узел ни выделен, ни невыделен файловой системе (см. п.
3.2.1).

На вопрос clear возможны следующие ответы:

yes Обнулить содержимое i-узла.

no Игнорировать ошибку.

4.3. Шаг 1b: поиск оставшихся дублированных блоков

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


B dup I=N

B дважды использованный I=N

i-узел содержит блок номер B, который уже закреплен за дру-
гим i-узлом. Эта ошибка всегда вызывает ошибку "bad/dup" на
шаге 2. Исследовав ошибку dup при выполнении шагов 1 и 2,
можно определить, в каких i-узлах содержатся блоки, номера
которых закреплены за несколькими i-узлами (см. п. 3.2.3).

4.4. Шаг 2: проверка полных имен файлов

На шаге 2 уничтожаются записи каталогов, указывающие на
аварийные i-узлы, обнаруженные на шагах 1 и 1b. В этом раз-
деле описаны ошибки, относящиеся к типу и состоянию корне-
вого i-узла, диапазону величин указателей на i-узлы катало-
гов, записям каталогов, указывающим на дефектные i-узлы.


Root inode unallocated, terminating

Корневой i-узел свободен, кончаем

В корневом i-узле (которым является обычно второй i-узел) не
проставлены биты, определяющие тип. Выполнение программы
прекращается (см. п. 3.2.1).


Root inode not directory (fix)

Корневой i-узел не каталог (исправить)

Корневой i-узел (которым является обычно второй i-узел)


- 22 -










имеет тип i-узла, отличный от типа каталог (см. п. 3.2.1).

На вопрос fix возможны следующие ответы:

yes Установить для корневого i-узла тип каталога. Если
блоки данных корневого i-узла не являются блоками
каталога, то возникает очень большое число ошибок.

no Остановить выполнение программы fsck.


Dups/bad in root inode (continue)

Дважды использованные или недопустимые блоки в корневом i-
узле (продолжать)

На шаге 1 в корневом i-узле (обычно, второй i-узел) были
обнаружены дублированные или ошибочные блоки файловой сис-
темы (см. п. 3.2.3 и п. 3.2.4).

На вопрос continue можно давать следующие ответы:

yes Игнорировать ошибку Dups/bad в корневом i-узле и
попытаться продолжить проверку файловой системы.
Некорректность корневого i-узла может привести к
очень большому числу ошибок.

no Остановить выполнение программы.


I out of range I=N name=F (remove)

Недопустимый номер i-узла I= имя=F (удалить)

Запись каталога F содержит i-узел номер N, значение которого
больше верхней границы списка i-узлов (см. п. 3.2.4).

На вопрос remove дают следующие ответы:

yes Удалить запись каталога файловой системы F.

no Игнорировать ошибку.


Unallocated I=N owner=O mode=M size=S mtime=T name=F
(remove)

Не занят I=N владелец=O код дост.=M размер=S вр.посл.мод.=T
имя=F (удалить)

Запись каталога F содержит i-узел N, тип которого не опре-
делен. Печатаются следующие параметры: владелец O, тип файла
M, размер S, время модификации T и имя файла F (см. п.


- 23 -










3.2.4).

На вопрос remove возможны следующие ответы:

yes Удалить запись каталога F.

no Игнорировать ошибку.


Dup/bad I=N owner=O mode=M size=S mtime=T dir=F (remove)

Дважды использованный или недопустимый I=N владелец=O код
дост.=M размер=S вр.посл.мод.=T каталог=F (удалить)

На шагах 1 или 1b были обнаружены дублированные или ошибоч-
ные блоки, связанные с записью каталога F, i-узлом N. Печа-
таются следующие параметры: владелец O, тип файла M, размер
S, время модификации T и имя каталога F (см. п. 3.2.3 и п.
3.2.4).

На вопрос remove возможны следующие ответы:

yes Удалить запись каталога F.

no Игнорировать ошибку.


Dup/bad I=N owner=O mode=M size=S mtime=T file=F (remove)

Дважды использованный или недопустимый I=N владелец=O код
дост.=M размер=S вр.посл.мод.=T файл=F (удалить)

На шагах 1 или 1b были обнаружены дублированные или ошибоч-
ные блоки, связанные с записью каталога F, i-узлом N. Печа-
таются следующие параметры: владелец O, тип файла M, размер
S, время модификации T и имя файла F (см. п. 3.2.3 и п.
3.2.4).

На вопрос remove возможны следующие ответы:

yes Удалить запись каталога F.

no Игнорировать ошибку.

4.5. Шаг 3: проверка связности

В данном разделе приводится список ошибок, возникающих
из-за отсутствия ссылок на каталоги, а также отсутствия или
переполнения каталогов lost+found.

Unref dir I=N owner=O mode=M size=S mtime=T (reconnect)




- 24 -










Нет ссылок на каталог I=N владелец=O код дост.=M размер=S
вр.посл.мод.=T (делать связьR)

При проходе по файловой системе i-узел N каталога не был
соединен с записью каталога. Печатаются следующие параметры:
владелец O, тип файла M, размер S и время модификации T i-
узла N каталога (см. п. 3.2.4 и п. 3.2.2).

На вопрос reconnect возможны следующие ответы:

yes Заново присоединить i-узел N к каталогу потерянных
файлов (обычно lost+found) в данной файловой сис-
теме; если при этом возникают какие-либо ошибки, то
при проходе шага 3 выдается аварийная диагностика
по lost+found. Кроме того, если было проведено нор-
мальное соединение, то на шаге 3 может возникнуть
ошибка типа connected.

no Игнорировать ошибку. Этот ответ, при выполнении
шага 4, может вызвать ошибку типа unref.

Sorry, no lost+found directory

Извините, нет каталога lost+found

В корневом каталоге файловой системы отсутствует каталог
lost+found; fsck игнорирует команду присоединить каталог
lost+found. При выполнении шага 4 может быть выдано аварий-
ное сообщение типа unref.


Sorry, no space in lost+found directory

Извините, нет места в каталоге lost+found

В корневом каталоге файловой системы нет места для добавле-
ния еще одной записи в каталог lost+found; fsck игнорирует
команду "присоединить каталог к lost+found". Эта ошибка
является причиной ошибки типа unref при выполнении шага 4.
Уничтожьте ненужные записи в lost+found или увеличьте его
размеры.

Dir I=11 connected, parent was I=12

Каталог I=11 присоединен, ссылка вверх была I=12

Это сообщение носит информационный характер: сообщается, что
i-узел 11 успешно соединен со каталогом lost+found. i-узел
12, являющийся родителем i-узла 11, заменяется номером i-
узла каталога lost+found (см. п. 3.2.4 и п. 3.2.2).





- 25 -










4.6. Шаг 4: проверка счетчиков ссылок

В данном разделе приводятся сообщения об ошибках, при-
чинами которых являются: существование файлов или каталогов,
не имеющих ссылок; отсутствие или переполнение каталога
lost+found; неверные счетчики ссылок для файлов, каталогов
или специальных файлов; ошибочные и дублированные блоки в
файлах и каталогах; неверные счетчики всех свободных i-
узлов.


Unref file I=N owner=O mode=M size=S mtime=T (reconnect)

Нет ссылок на файл I=N владелец=O код дост.=M размер=S
вр.посл.мод.=T (делать связьR)

При проходе по файловой системе i-узел N не был соединен с
записью каталога. Печатаются следующие параметры: владелец
O, тип файла M, размер S и время модификации T i-узла N (см.
п. 3.2.2).

На вопрос reconnect возможны следующие ответы:

yes Еще раз присоединить i-узел N к каталогу потерянных
файлов (обычно lost+found) данной файловой системы.
Если при этом возникают какие-либо затруднения, то
при выполнении шага 4 может возникнуть ошибка, свя-
занная со каталогом lost+found.

no Игнорировать ошибку. Этот ответ может вызвать
ошибку типа clear при выполнении шага 4.


Sorry, no lost+found directory

Извините, нет каталога lost+found

В корневом каталоге файловой системы отсутствует каталог
lost+found; fsck в этом случае не присоединяет файл к
lost+found. Эта ошибка влечет за собой ошибку типа CLEAR при
выполнении шага 4. Проверьте режимы доступа к lost+found.


Sorry, no space in lost+found directory

Извините, нет места в каталоге lost+found

В корневом каталоге файловой системы нет места для еще одной
записи в каталоге lost+found; fsck игнорирует команду присо-
единить файл к lost+found. Эта ошибка влечет за собой
ошибку типа clear при выполнении шага 4. Проверьте размер и
содержимое каталога lost+found.



- 26 -










Link count file I=N owner=O mode=M size=S mtime=T count=X
should be Y (adjust)

Счетчик ссылок файла I=N владелец=O код дост.=M размер=S
вр.посл.мод.=T сейчас=X должно быть Y (исправить)

Счетчик связей i-узла N, являющегося файлом, должен быть не
X, а Y. Печатаются следующие параметры: владелец O, тип
файла M, размер S и время модификации T (см. п. 3.2.2).

На вопрос adjust возможны следующие ответы:

yes Заменить счетчик связей i-узла N файла на Y.

no Игнорировать ошибку.


Link count dir I=N owner=O mode=M size=S mtime=T count=X