FSCK(8)
FSCK(8)
НАЗВАНИЕ
fsck - проверяет и восстанавливает файловые системы.
СИНТАКСИС
/bin/fsck [option] [filesystem]
ОПИСАНИЕ
fsck проверяет и восстанавливает в интерактивном режиме несогласующиеся места файловых систем XENIX. Если файловая система внутренне согласованна, то выдается сообщение о количестве файлов, количестве занятых и свободных блоков. Если же файловая система содержит внутренние противоречия, то оператор получает подсказки по согласованию перед каждой корректировкой. Следует отметить, что большинство корректировок приводит к какой-либо потере информации. Уровень и объем потерь может быть определен по диагностической выдаче. (Опытный оператор может снять противоречия вручную с помощью отладчика файловых систем .) По умолчанию во всех случаях согласующих корректировок ожидается ответ оператора "yes" (да) или "no" (нет). Если оператор не имеет разрешения на запись fsck активизирует по умолчанию действие опции -n.
fsck воспринимает следующие аргументы:
-y | Предполагает ответ "yes" на все вопросы fsck. |
-n | Предполагает ответ "no" на все вопросы fsck; открытие файловой системы для записи не допускается. |
-sb:c | Игнорирует существующий список свободных блоков и (безусловно) создает новый, перезаписывая супер-блок файловой системы. В этот период файловая система должна быть демонтирована. |
Опция -sb:c позволяет сформировать оптимальную организацию списка свободных блоков. Поддерживаются следующие варианты:
-s
-sБлок/цилиндр:Пропускаемые блоки (interleave-фактор фактор прослаивания, чередования считываемых и пропускаемых блоков).
Если b:c не задается, то используются величины, которые использовались во время создания файловой системы. Если они тоже не заданы, тогда по умолчанию устанавливаются некоторые разумные значения.
-S
-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
fsck -c -rr /dev/root
Если значение fylesystem не задано, fsck читает список устанавливаемых по умолчанию файловых систем в файле /etc/checklist.
Выполняется проверка следующих возможных рассогласований:
- Несколько индексных дескрипторов, включая список свободных блоков, указывают на один и тот же блок.
- Индексные дескрипторы или список свободных блоков указывают на блок за пределами файловой системы.
- Неправильная адресация в цепи блоков.
- Контроль размеров:
- Неправильное количество блоков.
- Отсутствует выравнивание размера каталога по модулю 16-ти байтов.
Беспризорные файлы и каталоги (зарезервированные, но не адресуемые) с согласия оператора присоединяются к каталогу lost+found. При этом им присваивается в качестве имени номер индексного дескриптора. Единственным ограничением является то, что каталог lost+found должен предварительно существовать в проверенной корневой файловой системе и должен иметь свободные поля для записи входных структур. Это достигается созданием lost+found, копированием в него некоторого количества файлов и их последующего удаления (перед выполнением fsck).
ФАЙЛЫ
/etc/ checklist Содержит список файловых систем, задаваемых для проверки по умолчанию.
/etc/default/boot Автоматическое управление загрузкой.
СМ. ТАКЖЕ
, , 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 прекращает работу.
Общие ошибки
На любом этапе могут появляться три типа сообщений. В то время, как они предлагают выбрать некоторую опцию для продолжения, в принципе лучше считать эти сообщения фатальными, закончить выполнение программы и выяснить причину затруднений.
CAN NOT SEEK: BLK B (CONTINUE?) Попытка переместить заданный блок с номером B не удалась. Возникновение такой ошибки указывает на наличие серьезной проблемы (вероятно, аппаратной поломки), которая может потребовать дополнительной помощи. CAN NOT READ: BLK B (CONTINUE?) Попытка прочесть заданный блок с номером B не удалась. Возникновение такой ошибки указывает на наличие серьезной проблемы (вероятно, аппаратной поломки), которая может потребовать дополнительной помощи. CAN NOT WRITE: BLK B (CONTINUE?) Попытка записать в заданный блок с номером B не удалась. Возможно, что диск защищен от записи.
Значение ответов Yes/No
CONTINUE? | Прерывает программу.(Это - рекомендуемый ответ.) | Попытка продолжения выполнения проверки файловой системы. Однако, часто проблема остается. Состояние ошибки не позволяет осуществить полную проверку файловой системы. Для перепроверки файловой системы следует запустить fsck повторно. |
На этом этапе проверяется список индексных дескрипторов.
Значение ответов Yes/No - Этап 1
CONTINUE? | Прерывает программу.(Это - рекомендуемый ответ.) | Попытка продолжения выполнения программы. Эта ошибка означает, что полная проверка файловой системы невозможна. Для перепроверки файловой системы следует запустить fsck повторно. |
CLEAR? | Состояние ошибки игнорируется. Ответ NO допустим только в том случае, когда пользователь намерен предпринять другие меры для выяснения причин ошибки. | Индексный дескриптор I освобождается обнулением его содержимого. Это может повлечь ошибку UNALLOCATED (свободного состояния) на этапе 2 для каждой входной структуры каталога, указывающей на этот дескриптор. |
UNKNOWN FILE TYPE I=I (CLEAR?) Состояние слова индексного дескриптора I предполагает, что это дескриптор не является ни конвейером, ни специальным дескриптором символьного типа, ни регулярным дескриптором, ни дескриптором каталога. LINK COUNT TABLE OVERFLOW (CONTINUE?) Внутренняя таблица fsck, содержащая резервные дескрипторы с нулевым значением адресации звеньев, переполнена. B BAD I=I Индексный дескриптор I содержит блок с номером B, меньшим, чем номер первого блока данных файловой системы, или большим, чем последний блок этой файловой системы. Эта ошибка может вызвать состояние EXCESSIVE BAD BLKS на этапе 1, если индексный дескриптор I имеет слишком много блоков за пределами файловой системы. Это состояние вызывает ошибку BAD/DUP на этапах 2 и 4. EXCESSIVE BAD BLOCKS I=I (CONTINUE?) Индексный дескриптор I содержит больше допустимого (обычно 10) блоков с номерами меньше номера первого блока данных или больше номера последнего блока файловой системы. B DUP I=I Индексный дескриптор I содержит блок с номером B, принадлежащий другому дескриптору. Эта ошибка может повлечь состояние EXCESSIVE DUP BLKS на этапе 1, если дескриптор I содержит слишком много таких блоков. Это состояние вызывает аналогичную ошибку на этапе 1B и ошибку BAD/DUP на этапах 2 и 4. EXCESSIVE DUP BLKS I=I (CONTINUE?) Дескриптору I принадлежит больше допустимого (обычно 10) блоков, принадлежащих также другим дескрипторам. DUP TABLE OVERFLOW (CONTINUE?) Внутренняя таблица fsck, содержащая номера двойных блоков, переполнена. POSSIBLE FILE SIZE ERROR I=I Размер дескриптора I не соответствует действительному количеству используемых им блоков. Это - лишь предупреждение. Если используется опция -q, то это сообщение не выводится. DIRECTORY MISALIGNED I=I Размер каталога дескриптора I не кратен 16 байтам. Это - лишь предупреждение. Если используется опция -q, то это сообщение не выводится. PARTIALLY ALLOCATED INODE I=I (CLEAR?) Дескриптор I не является ни свободным, ни зарезервированным.
Этап 1B: Повторный поиск двойных блоков
Если в файловой системе обнаруживается двойной блок, то эта файловая система сканируется повторно в поисках дескриптора, владевшего этим блоком раньше. При обнаружении двойного блока выводится следующее сообщение:
B DUP I=I Дескриптор I содержит блок с номером B, на который указывает другой дескриптор. Эта ошибка вызывает состояние BAD/DUP на этапе 2. Индексные дескрипторы с перекрывающими блоками могут быть определены поиском этого состояния и состояния DUP на этапе 1.
Этап 2: Проверка наименований путей
На этом этапе удаляются испорченные индексные дескрипторы, выявленные на этапах 1 и 1B.
Значение ответов Yes/No - Этап 2
FIX? | Прерывает программу, так как fsck не способна продолжать работу. | На этапе 2 ответ этот ответ на подсказку FIX? возвращает: Change the root i-node type to "directory." (Измените тип дескриптора на тип "каталог") Если блоки данных корневого дескриптора не являются блоками каталога, то генерируется огромное количество состояний ошибок. |
CONTINUE? | Прерывает программу. | Игнорирует состояние DUPS/DUP для корневого дескриптора и пытается продолжить выполнение проверки файловой системы. Ошибка в корневом дескрипторе может повлечь массу других ошибочных состояний. |
REMOVE? | Состояние ошибки игнорируется. Ответ NO допустим только в том случае, когда пользователь намерен предпринять другие меры для выяснения причин ошибки. | Удаляет двойные и свободные блоки. |
ROOT INODE UNALLOCATED. TERMINATING Корневой индексный дескриптор (всегда дескриптор с номером 2) не имеет битов режима резевирования. Возникновение этой ошибки указывает на наличие серьезной проблемы. Программа останавливается. ROOT INODE NOT DIRECTORY (FIX?) Корневой индексный дескриптор (всегда дескриптор с номером 2) не является дескриптором каталога. DUPS/BAD IN ROOT INODE (CONTINUE?) В корневом дескрипторе (всегла дескриптор с номером 2) файловой системы на этапах 1 или 1B обнаружены двойные или дефектные блоки. I OUT OF RANGE I=I NAME=F (REMOVE?) Входная структура F католога содержит индексный дескриптор с номером I, выходящим за пределы списка дескрипторов. UNALLOCATED I=I OWNER=O MODE=M SIZE=S MTIME=T NAME=F (REMOVE?) Входная структура F католога содержит индексный дескриптор I без битов режима резервирования. Выводятся имя файла и имя его владельца, а также значения режима, размера, времени модификации этого файла. Если файловая система не смонтирована, и опция -n не задана, то данная входная структура удаляется автоматически при условии, что дескриптор, на который она указывает, имеет нулевой размер. DUP/BAD I=I OWNER=O MODE=M SIZE=S MTIME=T DIR=F (REMOVE?) На этапах 1 или 1B обнаружены двойные или дефектные блоки, связанные со входной структурой F дескриптора I каталога. Выводятся имя файла и имя его владельца, а также значения режима, размера, времени модификации этого файла. P/BAD I=I OWNER=O MODE=M SIZE=S MTIME=T FILE=F (REMOVE?) На этапах 1 или 1B обнаружены двойные или дефектные блоки, связанные со входной структурой F файлового дескриптора I. Выводятся имя файла и имя его владельца, а также значения режима, размера, времени модификации этого файла. BAD BLK B IN DIR I=I OWNER=O MODE=M SIZE=S MTIME=T Это сообщение появляется лишь в случае использования опции -D. Сбойный блок обнаружен в дескрипторе I каталога. Ищутся блоки каталога с ненулевыми фиктивными входными структурами, противоречивыми структурами "." и "..", а также с вкраплениями косых черт в полях имен. Это сообщение означает, что пользователю следует в последующем либо удалить дескриптор каталога, если блок полностью выглядит сбойным, или изменить (удалить) некорректный входные структуры этого каталога.
Этап 3: Контроль связности
На этом этапе выполняются операции, касающиеся связности каталога, исследовавшейся на этапе 2.
Значение ответов Yes/No - Этап 3
RECONNECT? | Игнорирует ошибку. На этапе 4 это влечет ошибку UNREF. Ответ NO допустим только в том случае, когда пользователь намерен предпринять другие меры для выяснения причины ошибки. | Восстанавливает дескриптор I каталога в каталоге для потерянных файлов (обычно - lost+found) файловой системы. Если при соединении дескриптора I с каталогом lost+found имеются проблемы, то это может повлечь ошибку состояния lost+found. Если соединение было успешным, то это может повлечь сообщение типа CONNECTED. |
UNREF DIR I=I OWNER=O MODE=M SIZE=S MTIME=T (RECONNECT?) Дескриптор I каталога при проверке файловой системы не был связан со входной структурой каталога. Выводятся значения режима, размера, времени модификации дескриптора I и владелец O. Программа fsck воссоединяет непустой каталог принудительно. SORRY. NO lost+found DIRECTORY В корневом каталоге файловой системы отсутствует каталог lost+found; fsck игнорирует запрос на соединение каталога в lost+found. Это вызывает состояние ошибки UNREF на этапе 4. Возможно, имеется проблема с режимом доступа для lost+found. SORRY. NO SPACE IN lost+found DIRECTORY В каталоге lost+found корневого каталога файловой системы нет места для добавления еще одной входной структуры; fsck игнорирует запрос на соединение каталога в lost+found. Это вызывает состояние ошибки UNREF на этапе 4. Удалите из lost+found ненужные структуры или расширьте его (См. Процедуру 5.2). DIR I=I1 CONNECTED. PARENT WAS I=I2 Это - сообщение совещательного типа, указывающее на то, что дескриптор I1 каталога был успешно соединен с каталогом lost+found. Родительский дескриптор I2 дескриптора I1 замещается номером дескриптора каталога lost+found.
Этап 4: Проверка адресации
На этом этапе осуществляется проверка адресации между звеньями, подготовленная на этапах 2 и 3.
Значение ответов Yes/No - Этап 3
RECONNECT? | Игнорирует ошибку. | На этапе 4 это влечет ошибку CLEAR. Восстанавливает дескриптор I каталога в каталоге для потерянных файлов (обычно lost+found) файловой системы. Если при соединении дескриптора I с каталогом lost+found имеются проблемы, то это может повлечь ошибку состояния lost+found. |
CLEAR? | Состояние ошибки игнорируется. Ответ NO допустим только в том случае, когда пользователь намерен предпринять другие меры для выяснения причин ошибки. | Освобождает дескриптор посредством обнуления его содержимого. |
ADJUST? | Состояние ошибки игнорируется. Ответ NO допустим только в том случае, когда пользователь намерен предпринять другие меры для выяснения причин ошибки. | Заменяет адресацию файлового индексного дескриптора I на Y. |
FIX? | Состояние ошибки игнорируется. Ответ NO допустим только в том случае, когда пользователь намерен предпринять другие меры для выяснения причин ошибки. | Заменяет адресацию в суперблоке действительными значениями. |
UNREF DIR I=I OWNER=O MODE=M SIZE=S MTIME=T (RECONNECT?) Дескриптор I каталога при проверке файловой системы не был связан со входной структурой каталога. Выводятся значения режима, размера, времени модификации дескриптора I, а также имя владельца. Если опция -n опущена, и файловая система не смонтирована, то пустые файлы чистятся автоматически. Непустые файлы не чистятся. SORRY. NO lost+found DIRECTORY В корневом каталоге файловой системы отсутствует каталог lost+found; fsck игнорирует запрос на соединение каталога в lost+found. Это вызывает состояние ошибки CLEAR на этапе 4. Возможно, имеется проблема с режимом доступа для lost+found. SORRY. NO SPACE IN lost+found DIRECTORY В каталоге lost+found корневого каталога файловой системы нет места для добавления еще одной входной структуры; fsck игнорирует запрос на соединение каталога в lost+found. Это вызывает состояние ошибки CLEAR на этапе 4. Проверьте размер и содержимое lost+found. (CLEAR) Только что упомянутый в сообщении UNREF дескриптор не может быть воссоединен. LINK COUNT FILE I=I OWNER=O MODE=M SIZE=S MTIME=T COUNT=X SHOULD BE Y (ADJUST?) Значение указателя дескриптора I, представляющего собой файл, равняется X, но должно быть равно Y. Выводятся значения режима, размера, времени модификации и владелец O. LINK COUNT DIR I=I OWNER=O MODE=M SIZE=S MTIME=T COUNT=X SHOULD BE Y (ADJUST?) Значение указателя дескриптора I, представляющего собой каталог, равняется X, но должно быть равно Y. Выводятся значения режима, размера, времени модификации дескриптора каталога и владелец O. LINK COUNT F I=I OWNER=O MODE=M SIZE=S MTIME=T COUNT=X SHOULD BE Y (ADJUST?) Значение указателя для имени F дескриптора I, равняется X, но должно быть равно Y. Выводятся значения режима, размера, времени модификации дескриптора, имя файла F и его владелец O. UNREF FILE I=I OWNER=O MODE=M SIZE=S MTIME=T (CLEAR?) Дескриптор I, представляющий собой файл, при проверке файловой системы не был связан со входной структурой каталога. Выводятся значения режима, размера, времени модификации дескриптора I и владелец O. Если опция -n опущена, и файловая система не смонтирована, то пустые файлы чистятся автоматически. Непустые файлы не чистятся. UNREF DIR I=I OWNER=O MODE=M SIZE=S MTIME=T (CLEAR?) Дескриптор I, представляющий собой каталог, при проверке файловой системы не был связан со входной структурой каталога. Выводятся значения режима, размера, времени модификации дескриптора I и владелец O. Если опция -n опущена, и файловая система не смонтирована, то пустые каталоги чистятся автоматически. Непустые каталоги не чистятся. BAD/DUP FILE I=I OWNER=O MODE=M SIZE=S MTIME=T (CLEAR?) На этапах 1 или 1B обнаружены двойные или дефектные блоки, связанные с файловым дескриптором I. Выводятся имя владельца и значения режима, размера, времени модификации дескриптора. BAD/DUP DIR I=I OWNER=O MODE=M SIZE=S MTIME=T (CLEAR?) На этапах 1 или 1B обнаружены двойные или дефектные блоки, связанные с дескриптором I каталога. Выводятся имя владельца и значения режима, размера, времени модификации дескриптора. FREE INODE COUNT WRONG IN SUPERBLK (FIX?) Действительные значения указателей свободных инодов не согласуются со значениями в суперблоке файловой системы. Если задана опция -q, значение указателя в суперблоке будет исправлено автоматически.
Этап 5: Проверка списка свободных блоков
Значение ответов Yes/No - Этап 5
CONTINUE? | Прерывает программу. | Игнорирует остаток списка свободных блоков и продолжает выполнение fsck. Эта ошибка всегда вызывает состояние BAD BLKS IN FREE LIST впоследствии на этапе 5. |
FIX? | Состояние ошибки игнорируется. Ответ NO допустим только в том случае, когда пользователь намерен предпринять другие меры для выяснения причин ошибки. | Заменяет адресацию в суперблоке действительными значениями. |
SALVAGE? | Состояние ошибки игнорируется. Ответ NO допустим только в том случае, когда пользователь намерен предпринять другие меры для выяснения причин ошибки. | Заменяет действующий список свободных блоков новым списком. Новый список будет оптимизирован по времени ожидания доворота диска в соответствии со спецификациями опций -s и -S. |
EXCESSIVE BAD BLKS IN FREE LIST (CONTINUE?) Список свободных блоков содержит больше допустимого (обычно 10) блоков с номерами меньше номера первого блока данных или больше номера последнего блока файловой системы. EXCESSIVE DUP BLKS IN FREE LIST (CONTINUE?) Список свободных блоков содержит больше допустимого (обычно 10) блоков, упомянутых индексными дескрипторами или более ранними частями этого списка. BAD FREEBLK COUNT Указатель свободных блоков в списке свободных блоков больше 50 или меньше 0. Эта ошибка всегда влечет состояние BAD FREE LIST позже на этапе 5. X BAD BLKS IN FREE LIST X блоков в списке свободных блоков имеют номера меньше номера первого блока данных или больше номера последнего блока файловой системы. Эта ошибка всегда влечет состояние BAD FREE LIST позже на этапе 5. X DUP BLKS IN FREE LIST В списке свободных блоков обнаружено X блоков, упомянутых индексными дескрипторами или в более ранних частях этого списка. Эта ошибка всегда влечет состояние BAD FREE LIST позже на этапе 5. X BLK(S) MISSING В списке свободных блоков обнаружено X блоков, неиспользующихся в файловой системе. Эта ошибка всегда влечет состояние BAD FREE LIST позже на этапе 5. FREE BLK COUNT WRONG IN SUPERBLK (FIX?) Действительное количество свободных блоков не согласуются со значениями в суперблоке файловой системы. BAD FREE LIST (SALVAGE?) Этому сообщению всегда предшествует одно или несколько сообщений на этапе 5. Если задана опция -q, то список свободных блоков сохраняется автоматически.
Этап 6: Сохранение списка свободных блоков
На этом этапе реконструируется список свободных блоков. Эдесь возможно возникновение одной ошибки, проистекающей из неверных установок величины щели и количества блоков на один цилиндр.
Сообщения об ошибках на этапе 6
DEFAULT FREE-BLOCK LIST SPACING ASSUMED Это - сообщение совещательного типа, указывающее на то, что количество пропускаемых блоков (величина щели) больше, чем количество блоков в цилиндре, или меньше 1, или, что количество блоков в цилиндре - больше 500. При этом устанавливаются значения: 7 пропускаемых блоков и 400 блоков в цилиндре.
Этап чистки
После проверки файловой системы выполняется несколько функций очистки файловой системы. На этом этапе выдаются сообщения совещательного типа о файловой системе и о ее статусе.
Сообщения на этапе чистки
X files blocks Z free Это информационное сообщение, указывающее на то, что проверенная файловая система содержит X файлов, используя Y блоков и оставив свободными Z блоков. ***** BOOT XENIX (NO SYNC!) ***** Это информационное сообщение указывает, что смонтированная файловая система или корневая файловая система модифицировалась программой fsck. Если систему XENIX немедленно не перезагрузить без использования sync, то работа, проделанная fsck, может быть сведена на нет с помощью встроенных копий таблиц, которые хранит система XENIX. Если в команде fsck была задана опция -b, и данная файловая система является корневой, то перезагрузка выполняется автоматически. ***** FILE SYSTEM WAS MODIFIED ***** Это информационное сообщение указывает, то текущая файловая система модифицировалась программой fsck.