Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Реклама    

liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Различные авторы Весь текст 1372.6 Kb

SCO: Пособие администратора системы Unix

Предыдущая страница Следующая страница
1 ... 7 8 9 10 11 12 13  14 15 16 17 18 19 20 ... 118
Руководства, соответствующей fsck(ADM).
.
                            - 4-20 -

     Краткое описание этапов fsck

     Команда fsck просматривает и проверяет каждую из вышеупомя-
нутых структур.  На каждом этапе выполняется сравнение компонен-
тов и проверка согласованности этих компонентов друг с другом.
     На этапе 1 проверяются блоки и размеры.  Команда fsck читает
список индексных дескрипторов файлов,  чтобы определить размеры и
отыскать  блоки,  используемые каждым из файлов.  Эти дескрипторы
файлов проверяются на действительность (проверка типа  и  размера
дескриптора, проверка на равенство нулю счетчика связей) и на на-
личие дефектных или дублированных  блоков.  (Дефектными  являются
блоки,  значения  которых  выходят  за границы файловой системы.)
Когда fsck спрашивает,  следует ли чистить дескриптор файла,  это
означает  обнуление в нем дефектной информации.  В итоге файл или
каталог,  соответствующий этому дескриптору, будет удален. Дубли-
рованный блок означает,  что два дескриптора указывают один и тот
же блок на диске.  Команда fsck пытается определить  оригинальный
дескриптор, чтобы скорректировать дубликат на этапе 2.
     На этапе 2 проверяются имена путей. Должны быть удалены эле-
менты каталога для файлов,  удаленных на этапе 1. На этапе 2 исп-
равляются ошибки,  вызванные  неправильным  состоянием  индексных
дескрипторов файлов, выходом указателей этих дескрипторов за пре-
делы диапазона;  исправляются каталоги,  указывающие на дефектные
дескрипторы файлов,  как описано выше. В случае файлов с дублиро-
ванными блоками,  обнаруженными на этапе 1,  fsck попытается уда-
лить  оба файла (это одна из немногих ситуаций,  требующих вмеша-
тельства администратора системы).
     На этапе 3 проверяются связи.  На этапе 2 удалены каталоги,
не указывающие на действительные файлы.  На этапе 3 восстанавли-
ваются связи  с  файлами,  которые выпали из структуры каталога.
Все действительные файлы,  на которые нет ссылки,  помещаются  в
специальный каталог под названием lost+found.  Поскольку каталог
был отсоединен,  имя файла теряется; в каталоге lost+found файлу
присваивается номер.
     На этапе 4 проверяются счетчики обращений. Команда fsck про-
веряет счетчик связей для каждого элемента,  благополучно прошед-
шего этапы 2 и 3.  В некоторых случаях файлы,  на которые не было
указателя  в  структуре каталога,  но которые все же обладают ин-
дексными дескрипторами,  могут  быть  вновь  связаны  с  файловой
системой по каталогу lost+found.
     На этапе 5 проверяется свободный список.  Команда fsck изу-
чает список свободных блоков,  составляемый файловой системой, и
разрешает отсутствующие или неназначенные блоки,   которые  были
ранее назначены  или удалены.  При обнаружении нарушения целост-
ности fsck выдает приглашение перестроить список.
     На этапе 6 восстанавливается свободный список.  Система ре-
конструирует список свободных блоков в соответствии с измененной
файловой системой, если это было определено на этапе 5.
.
                            - 4-21 -

     Автоматическая проверка файловой системы

     Иногда операционная  система  во время старта выдает запрос
на проверку файловой системы.  Обычно это имеет место после  не-
нормального останова  (например,  в результате потери мощности в
питании). После проверки файловой системы все файлы, разрушенные
в процессе останова, восстанавливаются.

     Исправление файловой системы с помощью команды fsdb

     Если после  фатального сбоя суперблок файловой системы ока-
зывается настолько поврежден,  что fsck не в состоянии его  вос-
становить, можно с помощью команды fsdb ("filesystem debugger" -
"отладчик файловой системы") вручную исправить суперблок, наста-
вив "заплат".   С большой вероятностью команда fsdb понадобится,
если fsck аварийно прекращается или выдает слишком много ошибок.
     Так как  fsdb  -  очень  мощное  средство,  позволяющее  не-
посредственно изменять суперблок (который содержит важную  инфор-
мацию о файловой системе),  использовать его следует с величайшей
осторожностью.  Почти во всех случаях,  когда требуется применить
fsdb,  приходится  менять  только одну или две ячейки суперблока,
представляющие fsize и isize;  им возвращаются значения,  обычные
для вашей файловой системы. fsize - общее число блоков в файловой
системе; isize - количество индексных дескрипторов файлов, назна-
ченных файловой системе.
     Далее приводятся порядок использования fsdb в целях измене-
ния значений fsize и isize.
     1. Получите нормальные значения fsize и isize в вашей файло-
вой  системе.  Вы  должны  были записать их согласно инструкции в
конце процедуры установки,  описанной  в  документе  Installation
Guide.  Если вы этого не сделали,  можно получить размер файловой
системы с помощью divvy и оценить  число  индексных  дескрипторов
файлов.  Для  определения размера файловой системы воспользуйтесь
командой

     divvy -b 1 -c 1

Размеры файловых  систем выводятся на экран в виде диапазона но-
меров блоков.  Нужно вычесть номер начального  блока  из  номера
последнего, и получится размер файловой системы. Приблизительное
число индексных дескрипторов файлов равно размеру, умноженному на
.125.
     2. Убедитесь в том, что fsize и isize вашей файловой систе-
мы запорчены.
     3. Найдите fsize и isize в суперблоке.
     4. Установите fsize и isize равными их нормальным значениям.
.
                            - 4-22 -

     Все эти шаги подробно описаны в  последующих  разделах.   В
странице Руководства,  соответствующей fsdb(ADM), приведено нес-
колько других способов применения fsdb для просмотра и обработки
суперблока; однако  эти  возможности  рекомендуется использовать
только опытным администраторам системы.

     Проверка нарушения значений fsize и isize

     При проверке файловой системы после фатального сбоя команда
fsck считывает из суперблока размер файловой системы.  Если зна-
чения fsize и isize,  хранящиеся в этот момент в суперблоке,  не
являются нормальными значениями для файловой системы, fsck выда-
ет на экран результаты проверки размера  и  заканчивает  работу,
как показано в следующем примере:

+--------------------------------------------------------------
|  # fsck /dev/root
|  /dev/root
|  /dev/root   File System: /  Volume: root
|  Size check: fsize 0 isize 0
|  #
|
     Сравните значения fsize и isize,  выданные командой fsck (в
нашем примере - 0), с нормальными значениями вашей файловой сис-
темы. Если они отличаются,  придется выполнить fsdb, чтобы заме-
нить значения  в суперблоке на нормальные значения файловой сис-
темы.
     Иногда неправильной  оказывается  только одна из этих вели-
чин, хотя информация,  выданная fsck, показывает нарушение обоих
значений. При  выполнении  fsdb  вы увидите фактические значения
fsize и isize,  записанные в суперблоке, и поймете, сколько зна-
чений вам  придется  менять - одно или оба.  Для выполнения fsdb
введите следующую команду,  задав в качестве filesystem имя фай-
ловой системы:

        Ъ2fsdb /dev/filesystem

     Полученный в  результате вывод будет аналогичен приведенно-
му в следующем примере:

+--------------------------------------------------------------
|  # fsdb /dev/root
|  /dev/root(/): 1K byte Block File System
|  FSIZE =  1895959976, ISIZE = 7216
|
     В данном  примере  fsdb показывает,  что некорректно только
значение fsize (хотя fsck выдала  некорректность  обоих).   fsdb
всегда работает аккуратнее.
.
                            - 4-23 -

     Поиск fsize и isize в суперблоке

     Чтобы заново  установить значения fsize и/или isize,  нужно
уметь отыскивать эти значения в суперблоке.  Это можно  сделать,
перейдя к первому адресу суперблока и проверив первые два значе-
ния, которые и есть суть fsize и isize. В файловых системах UNIX
суперблок начинается по адресу 512,  а в файловых системах XENIX
- по адресу 1024. Вот пример для файловой системы UNIX:

+--------------------------------------------------------------
|  # fsdb /dev/root
|  /dev/root(/): 1K byte Block File System
|  FSIZE = 28890, ISIZE = 7216
|  512
|  001000:      000705 (453)
|  
|  001002:      000000 (0)
|  
|  001004:      070332 (28890)
|

(Клавиша  используется для перехода от одного значения в
суперблоке к  другому.)  Выводятся следующие величины:  адрес (в
восьмеричном виде), записанное по этому адресу значение (также в
восьмеричном виде) и его десятичный эквивалент (в скобках). Убе-
диться в том, что вы находитесь в нужном месте суперблока, можно
следующим образом:   третья  выведенная на экран величина (после
второго нажатия клавиши )  - fsize - должна совпадать со
значением, выведенным командой fsdb при ее запуске (FSIZE).  За-
метим, что fsdb выдает значения в блоках по 1К. Если вы возьмете
размер файловой системы у команды df, то он окажется ровно вдвое
больше размера,  сообщаемого командой fsdb.  Это связано с  тем,
что df выдает ответы в 512-байтных блоках.  Если вам нужно изме-
нить значение FSIZE, имея размер, выданный командой df, его сле-
дует разделить на два.  Если же вы использовали номер из команды
divvy, его преобразовывать не надо,  так как divvy,  как и fsdb,
пользуется блоками 1К.
     Со значением ISIZE дело обстоит иначе. Это значение, выдан-
ное командой fsdb, нужно преобразовать, прежде чем сравнивать со
значением первой величины в суперблоке (isize).
     Значение isize,  записанное  в суперблоке,  является адресом
первого блока,  расположенного после блоков, которые выделены для
индексных дескрипторов файлов. Чтобы сделать значение isize более
выразительным,  fsdb преобразует этот адрес в  число  назначенных
индексный дескрипторов файлов (ISIZE). Это число нужно преобразо-
вать обратно в адрес блока путем деления ISIZE на 16 (число деск-
рипторов  в блоке) и сложения с 2 (для учета первых блоков файло-
вой системы,  которые используются для других целей: блок началь-
ной  загрузки  и  суперблок).  Результат (isize) должен равняться
числу, выведенному на экран в качестве первого адреса в супербло-
ке.
.
                            - 4-24 -

     Установка нормальных значений для fsize и isize

     Теперь, когда вы знаете точное местоположение fsize и isize
в суперблоке,  вы можете использовать fsdb, чтобы перейти непос-
редственно к соответствующему адресу, пройти суперблок по словам
и присвоить адресу новое значение.

     Замечание
     Прежде чем пользоваться командой fsdb, убедитесь в том, что
файловая система демонтирована.

     Чтобы перейти к первому адресу суперблока,  введите команду
абсолютного адреса, который фиксирован для файловой системы (512
для файловых  систем  UNIX и 1024 для файловых систем XENIX).  В
следующем примере проверяется файловая система UNIX:

+--------------------------------------------------------------
|  512
|  001000:      000173 (123)
|

По умолчанию  fsdb считывает адреса,  вводимые вами в виде деся-
тичных слов  (512),   а  выводит  адреса  восьмеричными  байтами
(001000). Значение,  хранящееся по заданному адресу, также выво-
дится в восьмеричном виде (в скобках дается  десятичный  эквива-
лент).
     Введя адрес в виде слова,  можете нажимать ,  чтобы
продвигаться в суперблоке каждый раз на одно слово.

+--------------------------------------------------------------
|  002000:      000173 (123)
|  
|  002002:      000000 (0)
|  
|  002004:      007461 (3889)
|

В файловых  системах  UNIX  для  достижения значения fsize нужно
дважды нажать ,  а в файловых системах  XENIX  -  только
один раз. (Это связано со способом хранения значений в супербло-
ке для файловых систем UNIX.)
.
                            - 4-25 -

     Замечание
     Если при вводе начального адреса на экране появится следую-
щее сообщение об ошибке:

         block out of range          (блок вне диапазона)
Предыдущая страница Следующая страница
1 ... 7 8 9 10 11 12 13  14 15 16 17 18 19 20 ... 118
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (6)

Реклама