MKFS(8)

НАЗВАНИЕ
mkfs - формирует файловую систему.

СИНТАКСИС


/etc/mkfs [-y] [-n] special blocks[:inodes] [gap inblocks]

/etc/mkfs [-y] [-n] special proto [gap inblocks]

                            [-s blocks [:inode]]

ОПИСАНИЕ
mkfs формирует файловую систему, записывая данные в специальный файл special в соответствии с указаниями, заданными в остальной части командной строки.

Если оказывается, что этот специальный файл содержит файловую систему, то, прежде чем переписывать в нем информацию, потребуется подтверждение от оператора. Выбор опции -y ("да") перебивает эту установку и задет перезапись информации без всяких вопросов. Опция -n заставляет mkfs прекратить работу без всяких вопросов, если в назначенном файле содержится существующая файловая система. Выполняемая проверка заключается в том, что читается блок номер 1 (суперблок) и производится сравнение байтов. Если сравнение не проходит, то предполагается, что изменения несут значащую информацию и требуется подтверждение оператора.

Если второй аргумент задается в виде строки цифр, то mkfs строит файловую систему с единственным пустым каталогом в ней. Размер этой файловой системы определяется значением blocks, интерпретируемым как десятичное число. Загрузочная программа остается неинициализированной. Если задано количество inodes индексных дескрипторов, тогда это число должно совпадать с оценочным числом количества файлов в файловой системе. Если этот необязательный аргумент не задается, тогда количество индексных дескрипторов вычисляется как функция размера файловой системы.

Если второй аргумент представляет собой имя файла, который может быть открыт, mkfs предполагает, что это - файл прототипов proto, и черпает из него необходимые инструкции. Файл прототипов содержит лексемы, разделенные пробелами или символами перевода на новую строку. Первая лексема - имя файла, который копируется в блок 0 в качестве программы-загрузчика. Заголовок программы-загрузчика должен быть отсечен (см. strip(1)). Если же это не сделано, то mkfs выдаст предупреждение. Вторая лексема задает размер созданной файловой системы. Обычно это - количество блоков на устройстве, возможно, уменьшенное за счет пространства свопинга. Следующая лексема - это размер индексного списка (i-list) в блоках. Следующие лексемы задают спецификации корневого файла (root file). Спецификации файла состоят из лексем, задающих режим доступа, пользовательский идентификатор, групповой идентификатор и исходное содержание файла. Синтаксис поля содержания зависит от режима доступа к файлу.

Режим доступа к файлу задается строкой из 6 символов. Первый символ задает тип файла. (Символы -bcd задают соответственно файл регулярного типа, специальный файл блочно-ориентированного устройства и файл каталога.) Второй символ может быть либо "u", либо "-", определяя тип пользовательского режима. Третий символ может быть либо "g", либо "-", определяя режим групповых установок. Остальные символы режима доступа представляют собой трехзначное восьмиричное число, задающее разрешения на запись, чтение и выполнение в отношении владельца, группы и прочих пользователей; см. chmod(1).

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

Если файл является регулярным файлом, то следующая лексема представляет собой полное имя файла, размер и содержимое которого копируются. Если файл является специальным файлом блочного или символьного устройства, то далее следуют два десятичных числа, которые представляют главное (большее) и малое (меньшее) числа устройства. Если файл является файлом каталога, то mkfs формирует структуры "." и ".." и затем считывает список имен и (рекурсивным образом) спецификации файлов для входных структур этого каталога. Сканирование прерывается лексемой $.

Ниже приведен пример спецификации прототипа:


  /stand/diskboot

  4872 110

  d--777 3 1

  usr d --773 3 1

     sh ---755 3 1 /bin/sh

     ken d --755 6 1

         $

     b0 b--644 3 1 0 0

     c0 c--644 3 1 0 0

     $

  $

Во второй версии данной команды опция -s перебивает размер и количество индексных дескрипторов в файле proto.

В обоих вариантах этой команды могут быть заданы факторы чередования для диска gap и inblocks. Эти факторы определяют аппаратное функционирование жестких дисков и подробно описываются в Руководстве администратора системы UNIX.

СМ. ТАКЖЕ
chmod(1), filesystem(3), dir(3), strip(1)

ПРИМЕЧАНИЯ
При использовании файла прототипов не существует способа задать количество связей. И если в командной строке задается количество индексных дескрипторов, то максимальное их количество в файловой системе может быть 65500.

Эта утилита использует блоки размера BSIZE. В отношении размеров блоков файловой системы смотрите страницу документации manual(HW).