mkefs

Построение встраиваемой файловой системы (QNX)

Синтаксис:

mkefs [-c каталог_кэширования] -t ffs2 | ffs3 [-l строка_ввода] [-nv]

[файл_построения_образа [выходной_файл]]


Поддерживаемые платформы:

QNX Neutrino, Linux, Microsoft Windows

Опции:

-c каталог_кэширования

Кэшировать сжатые файлы в каталог_кэширования.

-l строка_ввода

("эль") Обработать строку_ввода до начала интерпретации файла_построения_образа. Строки ввода, передаваемые утилите mkefs, необходимо заключать в кавычки, чтобы предотвратить их обработку командным интерпретатором (поскольку строки ввода mkefs часто содержат пробелы). Несколько опций -l обрабатываются в заданном порядке. Значение по умолчанию отсутствует.

-n

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

-t ffs2 | -t ffs3

Установить тип выходной файловой системы. Опция -t ffs2 используется для создания образа файловой системы флэш- памяти версии 2. Опция -t ffs3 используется для создания образа файловой системы флэш-памяти версии 3. Значение по умолчанию ffs3.

-v

Вывести расширенную информацию. Каждая дополнительная опция -v обеспечивает вывод более подробной информации. Значение по умолчанию расширенная информация не выводится.

Описание:

Утилита mkefs читает текстовый файл построения образа с описанием встраиваемой файловой системы и создает двоичный файл образа, содержащий встраиваемую файловую систему. Этот файл можно впоследствии скопировать на устройство флэш-памяти или использовать утилиту mkimage, чтобы до загрузки скомбинировать его с образом ОС.

Примечание. Не следует путать эту команду с утилитой mkifs, которая создает файловую систему образа ОС, или с утилитой mketfs, которая создает встраиваемую транзакционную файловую систему (ETFS).

Файлы ввода и вывода задаются в командной строке:

файл_построения_образа

Имя файла построения образа, описывающее содержимое встраиваемой файловой системы. Используйте "-", чтобы задать стандартный ввод (по умолчанию).

выходной_файл

Имя файла образа, содержащего встраиваемую файловую систему. Используйте "-", чтобы указать стандартный поток вывода (по умолчанию). Следует отметить, что выходной_файл можно указать только в том случае, если указан файл_построения_образа.

Примечание. В файловой системе флэш-памяти QNX Neutrino версии 3 встроенная распаковка больше не поддерживается. Функции распаковки файловой системы флэш-памяти перенесены в менеджер ресурсов inflator. Для сжатия файлов используется утилита deflate.

Файлы построения образа

В файле построения образа применяется та же грамматика, что для команды mkifs, но поддерживаются другие атрибуты.

Файл построения образа это, по сути, список файлов, которые требуется добавить в файл образа встраиваемой файловой системы при его создании утилитой mkefs. Кроме файлов, которые требуется включить в файл образа, можно задать различные атрибуты, используемые для установки параметров файловой системы и файлов в ней. Например, можно указать максимальный размер файловой системы или идентификаторы пользователя и группы для отдельных файлов.

Примечание. Использовать обратную косую черту (\) для разбиения длинных строк на более короткие фрагменты невозможно.

В файле построения образа для определения начала комментария используется символ решетки (#): все символы после него и до конца строки игнорируются. Между командой в файле построения образа и символом решетки необходимо вставить пробел.

Все строки имеют следующую форму:

[атрибуты] спецификация_файла

причем атрибуты (заключенные в квадратные скобки) и спецификацию файла указывать необязательно.

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

# правильно

[uid=5 gid=5] имя файла

# неправильно

[uid=5] [gid=5] имя файла

Существуют атрибуты двух типов:

булевы атрибуты

Это атрибуты, которым предшествует знак плюс ("+") или минус ("-").

атрибуты значения

Это атрибуты, которые заканчиваются знаком равенства ("="), а за ним следует значение. Вставлять пробелы до и после знака равенства не следует.

Вопросительный знак (?) перед атрибутом делает параметр условным. Атрибут устанавливается только в том случае, если он еще не установлен. Например, синтаксис ?+bigendian устанавливает атрибут +bigendian только в том случае, если атрибут +bigendian или -bigendian еще не задан.

Аргумент спецификация_файла принимает одну из следующих форм:

путь

Путь на хосте совпадает с путем в образе.

путь_в_целевой_системе=путь_на_хосте

Указанный файл или содержимое указанного каталога извлекается из файловой системы хоста и помещается в образ.

путь_в_целевой_системе={содержимое}

Встроенное определение. Содержимое файла приводится списком в самом файле построения образ в фигурных скобках ({ }). Этот файл на хосте не существует. Содержимое inline-файла не может находиться в той же строке, что и открывающая или закрывающая фигурная скобка.

Примечание.

Утилита mkefs выполняет синтаксический анализ содержимого inline-файла только на предмет поиска закрывающей фигурной скобки. Например, утилита mkefs не интерпретирует знак решетки (#) в inline-файле как знак начала комментария. Синтаксис inline-файла определяется его назначением в целевой системе.

Закрывающие фигурные скобки (}) и символы обратной косой черты (\) в inline-файле необходимо экранировать обратной косой чертой.

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

Атрибуты

Команда mkefs поддерживает следующие атрибуты:
Примечание. Вертикальная черта указывает на необходимость наличия либо первого, либо второго элемента, но не обоих элементов одновременно (например, запись "+|- bigendian" означает "+bigendian или -bigendian, а не +-bigendian").

Атрибут bigendian (булев)

+|-bigendian

Установить порядок байтов для встраиваемой файловой системы: либо обратный порядок байтов (с использованием синтаксиса +bigendian), либо прямой порядок байтов (с использованием синтаксиса -bigendian). Значение по умолчанию прямой порядок байтов.

Атрибут block_size

block_size=размер_блока

Установить размер блока для встраиваемой файловой системы. Размер блока зависит от того, какие запоминающие устройства присутствуют в целевом оборудовании и каким образом они организованы. Например, два чередующихся 8-битовых устройства по 64 КБ, сконфигурированные на 16-битовый интерфейс, имеют размер блока, равный 128 КБ. Размер блока по умолчанию 64 КБ.

Атрибут cd

cd=имя_файла

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

Атрибут dperms

dperms=права_доступа_к_каталогу

Установить права доступа к каталогу. Если задать числовое значение, то права устанавливаются по этому числу (в точности как при выполнении команды chmod). Если в качестве значения указать звездочку ("*"), то используются права доступа к каталогу на хосте. Для встроенного каталога права извлекаются из результатов выполнения утилиты umask пользователем, запустившим утилиту mkefs. В противном случае для удаления, добавления или установки прав используется строка символьного режима (которая является подмножеством chmod).

Строка символьного режима состоит из следующих элементов:
  1. сочетание символов u, g, o и a;

  2. символ -, = или +;

  3. сочетание символов r, w, x, s, g и t.

Можно указать несколько строк символьного режима с разделением запятой (,).

Значение права_доступа_к_каталогу по умолчанию "*".

Атрибут filter

filter=спецификация_фильтра

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

Чаще всего для встраиваемой файловой системы используется фильтр deflate. До копирования файла во встраиваемую файловую систему этот фильтр выполняет его сжатие. Пример.

[filter="deflate"]

В качестве значения спецификация_фильтра можно указать значение none. Это целесообразно при необходимости переопределения глобальной спецификации фильтра.

Атрибут followlink (булев)

[+|-followlink]путь_в_целевой_системе=путь_на_хосте

Если указать атрибут +followlink или опустить его, утилита mkefs переходит по всем ссылкам и в качестве пути_в целевой_системе использует копию пути_на_хосте.

Если указать атрибут -followlink, утилита mkefs создает ссылку путь_в_целевой_системе, которая указывает на то же местоположение, на которое указывает путь_на_хосте. Пользователь сам должен убедиться, что файл, на который указывает ссылка, находится в образе.

Атрибут gid

gid=спецификация_идентификатора

Установить идентификатор группы для файла. В качестве значения этого атрибута можно указать число или звездочку (*). Если указать в качестве значения звездочку, то идентификатор группы берется из файла хостов. Для inline-файла идентификатор группы это группа, в которую входит пользователь, запустивший утилиту mkefs. Значение по умолчанию для этого атрибута *.

Атрибут max_size

max_size=размер

Установить максимальный размер встраиваемой файловой системы. Этот атрибут устанавливается в том случае, когда требуется, чтобы размер файловой системы не превысил некоторое максимальное значение. Если это происходит в процессе построения файловой системы утилитой mkefs, выводится предупреждающее сообщение. Значение по умолчанию 4 ГБ.

Атрибут min_size

min_size=размер

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

Атрибут mount

mount=имя_файла

Установить точку монтирования для встраиваемой файловой системы. Точку монтирования можно переопределить путем ввода опции -n для команды flashctl.

Значение по умолчанию "". При этом драйверы файловой системы флэш-памяти (devf-*) используют соответствующее значение по умолчанию. Как правило, это значение /fs1p1.

Атрибут optional (булев)

+|-optional

Если значение атрибута истинное и при этом не удается найти файл хостов, то вывести предупреждающее сообщение и продолжить создание встраиваемой файловой системы. Если значение атрибута ложное и при этом не удается найти файл хостов, то вывести сообщение об ошибке и завершить работу утилиты mkefs. Значение по умолчанию ложь.

Атрибут perms

perms=права_доступа

Установить права доступа к файлу. Если задать числовое значение, то права устанавливаются по этому числу (в точности как при выполнении команды chmod). Если указать в качестве значения звездочку ("*"), то используются права доступа к файлу хостов. Для inline-файла используются права доступа 0666. В противном случае для удаления, добавления или установки прав используется строка символьного режима (которая является подмножеством chmod).

Строка символьного режима состоит из следующих элементов:
  1. сочетание символов u, g, o и a;

  2. символ -, = или +;

  3. сочетание символов r, w, x, s, g и t.

Можно указать несколько строк символьного режима с разделением запятой (,).

Значение права_доступа по умолчанию "*".

Примечание. При запуске на хосте под управлением Windows утилита mkefs не может получить из файла права на выполнение (x), setuid ("set user ID") или setgid ("set group ID"). Используйте атрибут perms, чтобы явно задать эти права. Возможно, также потребуется использовать атрибуты uid и gid для корректной установки принадлежности. В целях определения необходимости установки для утилиты прав setuid или setgid см. описание этой утилиты в руководстве по утилитам.

Атрибут prefix

prefix=спецификация_префикса

Установить префикс для имен целевых файлов. Значение по умолчанию пустая строка.

Атрибут search

search=путь:путь:

Этот атрибут определяет для утилиты mkefs необходимость поиска файла в указанных папках в системе хоста. Часть имени файла хостов с именем каталога поиска не добавляется к имени, хранящемуся в файловой системе образа.

Примечание. Такие разделители как двоеточие, и косая черта в пути соответствуют стандартным соглашениям об именовании Unix, однако для поиска в системе Windows необходимо использовать стандартные правила именования Windows (например, разделитель в виде точки с запятой и обратная косая черта в пути).

Атрибут spare_blocks

spare_blocks=резервные_блоки

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

Атрибут type

type=тип_файла

Установить тип файлов, создаваемых во встраиваемой файловой системе. Допустимые типы файлов:
Примечание. Значение [type=dir] означает, что утилита mkefs должна создать указанный файл как каталог. При копировании содержимого каталога указывать тип необязательно. Например, следующая команда:

[type=dir]/usr/bin=/usr/nto/x86/bin

отмечает все содержимое каталога /usr/bin как каталоги. Для копирования каталога /usr/nto/x86/bin в каталог /usr/bin необходимо указать:

/usr/bin=/usr/nto/x86/bin

Атрибут uid

uid=спецификация_идентификатора

Установить идентификатор пользователя для файла. В качестве значения этого атрибута можно указать число или звездочку (*). Если указать в качестве значения звездочку, то идентификатор пользователя берется из файла хостов. Для inline-файла идентификатор пользователя это пользователь, запустивший утилиту mkefs. Значение по умолчанию для этого атрибута "*".

Примеры:

Рассмотрим пример файла построения образа my_efs.bld:

# Пример файла построения образа для утилиты mkefs

[block_size=128k spare_blocks=1]

/home/jwall/nto_flash

В этом примере заданы размер блока 128 КБ и один резервный блок. Файлы и подкаталоги из каталога /home/jwall/nto_flash в системе хоста рекурсивно копируются в корневой каталог встраиваемой файловой системы.

Для создания файла образа встраиваемой файловой системы с использованием приведенного выше файла построения образа вызовите утилиту mkefs следующим образом:

mkefs my_efs.bld my_image.efs


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

Статус завершения:

0

Завершено успешно.

1

Возникла ошибка.