Проект ЦИТадель
Обзоры • курсы • практикумы
Не «что нажать», а «как устроено»
НАЗВАНИЕ
fsck - проверяет и восстанавливает файловые системы.
СИНТАКСИС
/bin/fsck [option] [filesystem]
ОПИСАНИЕ
fsck проверяет и восстанавливает в интерактивном режиме
несогласующиеся места файловых систем XENIX. Если файловая система
внутренне согласованна, то выдается сообщение о количестве файлов,
количестве занятых и свободных блоков. Если же файловая система
содержит внутренние противоречия, то оператор получает подсказки по
согласованию перед каждой корректировкой. Следует отметить, что
большинство корректировок приводит к какой-либо потере информации.
Уровень и объем потерь может быть определен по диагностической
выдаче. (Опытный оператор может снять противоречия вручную с
помощью отладчика файловых систем fsdb(8).) По умолчанию во всех
случаях согласующих корректировок ожидается ответ оператора "yes"
(да) или "no" (нет). Если оператор не имеет разрешения на запись
fsck активизирует по умолчанию действие опции -n.
fsck воспринимает следующие аргументы:
| -y | Предполагает ответ "yes" на все вопросы fsck. |
| -n | Предполагает ответ "no" на все вопросы fsck; открытие файловой системы для записи не допускается. |
| -sb:c | Игнорирует существующий список свободных блоков и (безусловно) создает новый, перезаписывая супер-блок файловой системы. В
этот период файловая система должна быть демонтирована.
Опция -sb:c позволяет сформировать оптимальную организацию списка свободных блоков. Поддерживаются следующие варианты:
-s Если b:c не задается, то используются величины, которые использовались во время создания файловой системы. Если они тоже не заданы, тогда по умолчанию устанавливаются некоторые разумные значения. |
| -S | Перестраивает список свободных блоков по условию. Эта опция аналогична опции sb:c за исключением того, что список свободных блоков перестраивается только в том случае, когда в файловой системе противоречий не обнаружено. Использование опции -S принудительно определяет ответ "no" на все вопросы, задаваемые fsck. Эта опция полезна для принудительной реорганизации списка свободных блоков у неиспорченных файловых систем. |
| -t | Если fsck не может получить достаточный объем памяти для хранения своих таблиц, она использует временный файл. При использовании опции -t в следующем аргументе задается имя временного файла, если это необходимо. Следите, чтобы между -t и этим именем был пробел, иначе fsck будет использовать в качестве этого файла всю файловую систему и затрет весь диск. Если во время инсталляции вы создали временную файловую систему, то тогда вы можете использовать в качестве имени этого файла /dev/scratch, при устовии, что временная файловая система - не больше корневой файловой системы. В отсутствие аргумента -t fsck выводит подсказку для ввода имени временного файла. Выбранный файл не должен находиться в проверяемой файловой системе, и если этот файл не является специальным или уже существующим, то по завершении работы fsck он удаляется. Если система занимает большой жесткий диск, то в другой файловой системе может не оказаться достаточного пространства для этого временного файла. В таких случаях при наличии дисковода гибких дисков используйте в качестве временного файла, к примеру, /dev/fd0 на чистой отформатированной дискете. |
| -q | fsck в режиме без сообщений. На этапе 1 сообщения о проверке размеров не выводятся. Неадресуемые файлы fif05 выборочно удаляются. Если fsck потребует этого, значения в суперблоке автоматически фиксируются, а список свободных блоков сохраняется. |
| -D | Каталоги сканируются в поисках плохих блоков. Опция полезна после системного сбоя. |
| -f | Быстрая проверка. Проверяются блоки и размеры (этап 1) и список свободных блоков (этап 5). При необходимости список свободных блоков будет перестроен (этап 6). |
| -rr | Восстанавливает корневую файловую систему. Требуемый аргумент filesystem должен относиться к корневой файловой системе и предпочтительно к устройству блочного типа (обычно /dev/root). При этом устанавливается опция -y и перебивается -n. Если требуются какие-либо изменения файловой системы, система автоматически разгружается для обеспечения целостности данной файловой системы. |
| -c | Вызывает преобразование любой поддерживаемой файловой системы к типу текущей файловой системы. Пользователю предлагается подтвердить запрос на каждую файловую систему, требующию преобразования, если только не задана опция -y. Рекомендуется проверка с помощью этой опции каждой файловой системы в демонтированном состоянии, если она будет использоваться в текущей версии системы XENIX. Для модификации активной корневой файловой системы, последюю следует проверить следующим образом: fsck -c -rr /dev/root |
Если значение fylesystem не задано, fsck читает список устанавливаемых по умолчанию файловых систем в файле /etc/checklist.
Выполняется проверка следующих возможных рассогласований:
Беспризорные файлы и каталоги (зарезервированные, но не адресуемые) с согласия оператора присоединяются к каталогу lost+found. При этом им присваивается в качестве имени номер индексного дескриптора. Единственным ограничением является то, что каталог lost+found должен предварительно существовать в проверенной корневой файловой системе и должен иметь свободные поля для записи входных структур. Это достигается созданием lost+found, копированием в него некоторого количества файлов и их последующего удаления (перед выполнением fsck).
ФАЙЛЫ
/etc/checklist Содержит список файловых систем, задаваемых
для проверки по умолчанию.
/etc/default/boot Автоматическое управление загрузкой.
СМ. ТАКЖЕ
autoboot(8), fsdb(8), checklist(3), filesystem(3), init(5)
fsck может быть запущена для смонтированной вторичной файловой системы только, если эта файловая система является корневой, или задана опция -n и не будет записи за пределами этой файловой системы. Если подобная попытка будет иметь место, то будет высвечено предупреждение, и для заданного устройства обработка будет прекращена.
Хотя проверка первичного устройства почти всегда осуществляется быстрее, не существует способа определить, является ли данная файловая система смонтированной. Любая чистка смонтированной файловой системы почти наверняка приводит к рассогласованиям в суперблоке.
ПРЕДУПРЕЖДЕНИЕ
Файловые системы, созданные под управлением XENIX-86 версии 3.0, не
поддерживаются системой XENIX System V, потому что организация
слова в типе переменных long изменена. fsck способна проверять и
восстанавливать файловые системы XENIX версии 3.0, если организация
слова - правильная.
Для корневой файловой системы следует запускать "fsck -rr /dev/root". Для всех прочих файловых систем следует использовать "fsck /dev/??" на несмонтированном устройстве блочного типа.
ДИАГНОСТИКА
Этап инициализации
Проверяется синтаксис команды. Перед выполнением проверки файловой
системы fsck устанавливает некоторые таблицы и открывает некоторые
файлы. При возникновении ошибок инициализации fsck прекращает
работу.
Общие ошибки
На любом этапе могут появляться три типа сообщений. В то время, как
они предлагают выбрать некоторую опцию для продолжения, в принципе
лучше считать эти сообщения фатальными, закончить выполнение
программы и выяснить причину затруднений.
| Подсказка | n(no) | y(yes) |
|---|---|---|
| CONTINUE? | Прерывает программу.(Это - рекомендуемый ответ.) | Попытка продолжения выполнения проверки файловой системы. Однако, часто проблема остается. Состояние ошибки не позволяет осуществить полную проверку файловой системы. Для перепроверки файловой системы следует запустить fsck повторно. |
| Подсказка | n(no) | y(yes) |
|---|---|---|
| CONTINUE? | Прерывает программу.(Это - рекомендуемый ответ.) | Попытка продолжения выполнения программы. Эта ошибка означает, что полная проверка файловой системы невозможна. Для перепроверки файловой системы следует запустить fsck повторно. |
| CLEAR? | Состояние ошибки игнорируется. Ответ NO допустим только в том случае, когда пользователь намерен предпринять другие меры для выяснения причин ошибки. | Индексный дескриптор I освобождается обнулением его содержимого. Это может повлечь ошибку UNALLOCATED (свободного состояния) на этапе 2 для каждой входной структуры каталога, указывающей на этот дескриптор. |
Сообщения об ошибках на этапе 1
Этап 1B: Повторный поиск двойных блоков
Если в файловой системе обнаруживается двойной блок, то эта
файловая система сканируется повторно в поисках дескриптора,
владевшего этим блоком раньше. При обнаружении двойного блока
выводится следующее сообщение:
Этап 2: Проверка наименований путей
На этом этапе удаляются испорченные индексные дескрипторы,
выявленные на этапах 1 и 1B.
Значение ответов Yes/No - Этап 2
| Подсказка | n(no) | y(yes) |
|---|---|---|
| FIX? | Прерывает программу, так как fsck не способна продолжать работу. | На этапе 2 ответ этот ответ на подсказку FIX? возвращает: Change the root i-node type to "directory." (Измените тип дескриптора на тип "каталог") Если блоки данных корневого дескриптора не являются блоками каталога, то генерируется огромное количество состояний ошибок. |
| Подсказка | n(no) | y(yes) |
|---|---|---|
| CONTINUE? | Прерывает программу. | Игнорирует состояние DUPS/DUP для корневого дескриптора и пытается продолжить выполнение проверки файловой системы. Ошибка в корневом дескрипторе может повлечь массу других ошибочных состояний. |
| REMOVE? | Состояние ошибки игнорируется. Ответ NO допустим только в том случае, когда пользователь намерен предпринять другие меры для выяснения причин ошибки. | Удаляет двойные и свободные блоки. |
Сообщения об ошибках на этапе 2
Этап 3: Контроль связности
На этом этапе выполняются операции, касающиеся связности каталога,
исследовавшейся на этапе 2.
Значение ответов Yes/No - Этап 3
| Подсказка | n(no) | y(yes) |
|---|---|---|
| RECONNECT? | Игнорирует ошибку. На этапе 4 это влечет ошибку UNREF. Ответ NO допустим только в том случае, когда пользователь намерен предпринять другие меры для выяснения причины ошибки. | Восстанавливает дескриптор I каталога в каталоге для потерянных файлов (обычно - lost+found) файловой системы. Если при соединении дескриптора I с каталогом lost+found имеются проблемы, то это может повлечь ошибку состояния lost+found. Если соединение было успешным, то это может повлечь сообщение типа CONNECTED. |
Сообщения об ошибках на этапе 3
Этап 4: Проверка адресации
На этом этапе осуществляется проверка адресации между звеньями,
подготовленная на этапах 2 и 3.
Значение ответов Yes/No - Этап 3
| Подсказка | n(no) | y(yes) |
|---|---|---|
| RECONNECT? | Игнорирует ошибку. | На этапе 4 это влечет ошибку CLEAR. Восстанавливает дескриптор I каталога в каталоге для потерянных файлов (обычно lost+found) файловой системы. Если при соединении дескриптора I с каталогом lost+found имеются проблемы, то это может повлечь ошибку состояния lost+found. |
| CLEAR? | Состояние ошибки игнорируется. Ответ NO допустим только в том случае, когда пользователь намерен предпринять другие меры для выяснения причин ошибки. | Освобождает дескриптор посредством обнуления его содержимого. |
| ADJUST? | Состояние ошибки игнорируется. Ответ NO допустим только в том случае, когда пользователь намерен предпринять другие меры для выяснения причин ошибки. | Заменяет адресацию файлового индексного дескриптора I на Y. |
| FIX? | Состояние ошибки игнорируется. Ответ NO допустим только в том случае, когда пользователь намерен предпринять другие меры для выяснения причин ошибки. | Заменяет адресацию в суперблоке действительными значениями. |
Сообщения об ошибках на этапе 4
Этап 5: Проверка списка свободных блоков
Значение ответов Yes/No - Этап 5
| Подсказка | n(no) | y(yes) |
|---|---|---|
| CONTINUE? | Прерывает программу. | Игнорирует остаток списка свободных блоков и продолжает выполнение fsck. Эта ошибка всегда вызывает состояние BAD BLKS IN FREE LIST впоследствии на этапе 5. |
| FIX? | Состояние ошибки игнорируется. Ответ NO допустим только в том случае, когда пользователь намерен предпринять другие меры для выяснения причин ошибки. | Заменяет адресацию в суперблоке действительными значениями. |
| SALVAGE? | Состояние ошибки игнорируется. Ответ NO допустим только в том случае, когда пользователь намерен предпринять другие меры для выяснения причин ошибки. | Заменяет действующий список свободных блоков новым списком. Новый список будет оптимизирован по времени ожидания доворота диска в соответствии со спецификациями опций -s и -S. |
Сообщения об ошибках на этапе 5
Этап 6: Сохранение списка свободных блоков
На этом этапе реконструируется список свободных блоков. Эдесь
возможно возникновение одной ошибки, проистекающей из неверных
установок величины щели и количества блоков на один цилиндр.
Сообщения об ошибках на этапе 6
Этап чистки
После проверки файловой системы выполняется несколько функций
очистки файловой системы. На этом этапе выдаются сообщения
совещательного типа о файловой системе и о ее статусе.
Сообщения на этапе чистки