mketfs
Построение
встраиваемой
транзакционной
файловой системы (QNX)
Синтаксис:
mketfs
[-l
строка_ввода] [-nv] [файл_построения_образа
[выходной_файл]]
Поддерживаемые
платформы:
QNX
Neutrino, Linux, Microsoft Windows
Опции:
-l строка_ввода
("эль")
Обработать строку_ввода до
начала интерпретации файла_построения_образа.
Строки ввода, передаваемые утилите mketfs,
необходимо заключать в кавычки, чтобы предотвратить их
обработку командным интерпретатором (поскольку строки ввода
mketfs часто
содержат пробелы). Несколько опций -l
обрабатываются в заданном порядке. Значение по умолчанию
отсутствует.
-n
Не использовать
в файлах метки времени. Опция -n
позволяет использовать идентичные образы в двоичном формате.
Если указаны дополнительные опции -n, из
файлов удаляются все данные времени.
-v[v..]
Вывести
расширенную информацию. Каждая дополнительная опция -v
обеспечивает вывод более подробной информации. Значение по
умолчанию – расширенная информация не выводится.
Описание:
Утилита
mketfs читает
текстовый файл построения образа, описывающий встраиваемую
транзакционную файловую систему (ETFS), и создает двоичный
файл образа, содержащий ETFS в виде последовательности
транзакций. Этот файл можно впоследствии скопировать на
устройство флэш-памяти с использованием команды etfsctl.
Примечание.
Не следует путать эту команду с утилитой mkifs,
которая создает файловую систему образа ОС, или с
утилитой mkefs, которая создает
встраиваемую файловую систему.
Файлы
ввода и вывода задаются в командной строке:
файл_построения_образа
Имя файла
построения образа, описывающее содержимое встраиваемой
файловой системы. Используйте "- ",
чтобы задать стандартный ввод (по умолчанию).
выходной_файл
Имя файла
образа, содержащего встраиваемую транзакционную файловую
систему. Для определения стандартного потока вывода
используется "-" (по
умолчанию). Следует отметить, что выходной_файл можно
указать только в том случае, если указан файл_построения_образа.
Файлы
построения образа
В файле
построения образа применяется та же грамматика, что для
команды mkifs, но
поддерживаются другие атрибуты.
Файл
построения образа – это, по сути, список файлов, которые
требуется добавить в файл образа встраиваемой транзакционной
файловой системы при его создании утилитой mkefs. Кроме
файлов, которые требуется включить в файл образа, можно
задать различные атрибуты, используемые для установки
параметров файловой системы и файлов в ней. Например, можно
указать максимальный размер файловой системы или
идентификаторы пользователя и группы для отдельных файлов.
Примечание.
Использовать обратную косую черту (\) для
разбиения длинных строк на более короткие фрагменты
невозможно.
В файле
построения образа для определения начала комментария
используется символ решетки (#): все
символы после него и до конца строки игнорируются. Между
командой в файле построения образа и символом решетки
необходимо вставить пробел.
Все
строки имеют следующую форму:
[атрибуты]
спецификация_файла
причем атрибуты
(заключенные в квадратные скобки) и спецификацию файла
указывать необязательно.
Атрибуты
предоставляют
сведения
о файле, который следует за атрибутом. Они заключены в
квадратные скобки. Для комбинирования атрибутов (например,
чтобы одновременно задать идентификатор пользователя и
идентификатор группы) необходимо заключить маркеры обоих
атрибутов в одни и те же квадратные скобки. Пример.
# правильно
[uid=5 gid=5] имя
файла
# неправильно
[uid=5] [gid=5]
имя файла
Существуют
атрибуты двух типов:
булевы
атрибуты
Это атрибуты,
которым предшествует знак плюс ("+") или минус ("-").
атрибуты
значения
Это атрибуты,
которые заканчиваются знаком равенства ("="), а за ним
следует значение. Не вставляйте пробелы до и после знака
равенства.
Вопросительный
знак (?) перед
атрибутом делает параметр условным. Атрибут устанавливается
только в том случае, если он еще не установлен. Например,
синтаксис ?+bigendian
устанавливает атрибут +bigendian только
в том случае, если атрибут +bigendian или -bigendian еще не
задан.
Аргумент
спецификация_файла принимает одну из следующих форм:
путь
Путь на хосте
совпадает с путем в образе.
путь_в_целевой_системе=путь_на_хосте
Указанный файл или
содержимое указанного каталога извлекается из файловой системы
хоста и помещается в образ.
путь_в_целевой_системе={содержимое}
Встроенное
определение. Содержимое файла приводится списком в самом
файле построения образ в фигурных скобках ({ }). Этот
файл на хосте не существует. Содержимое inline-файла не
может находиться в той же строке, что и открывающая или
закрывающая фигурная скобка.
Примечание.
Утилита
mketfs
выполняет синтаксический анализ содержимого inline-файла
только на предмет поиска закрывающей фигурной скобки.
Например, утилита mketfs не интерпретирует
знак решетки (#) в inline-файле как знак
начала комментария. Синтаксис inline-файла определяется его
назначением в целевой системе.
Закрывающие
фигурные
скобки
(})
и символы обратной косой черты (\) в
inline-файле необходимо экранировать обратной косой чертой.
Если
имя файла содержит пробелы или специальные символы, его
можно заключить в двойные кавычки ("").
Атрибуты
Команда
mketfs
поддерживает следующие атрибуты.
-
+|-bigendian
-
block_size=размер_блока
-
cd=имя_файла
-
cluster_size=размер_кластера
-
dperms=права_доступа_к_каталогу
-
filter=спецификация_фильтра
-
+|-followlink
-
gid=спецификация_идентификатора
-
num_blocks=число
-
+|-optional
-
perms=права_доступа
-
prefix=спецификация_префикса
-
search=путь:путь…
-
type=тип_файла
-
uid=спецификация_идентификатора
Примечание.
Значения атрибутов cluster_size, block_size
и num_blocks необходимо задать явно, с
учетом используемого устройства флэш-памяти, чтобы созданный
образ был полностью совместим с конкретным устройством.
Примечание.
Вертикальная черта указывает на необходимость наличия либо
первого, либо второго элемента, но не обоих элементов
одновременно (например, запись "+|-
bigendian"
означает "+bigendian или -bigendian,
а не +-bigendian").
Атрибут bigendian
(булев)
+|-bigendian
Установить
порядок байтов для встраиваемой файловой системы: либо
обратный порядок байтов (с использованием синтаксиса +bigendian), либо
прямой порядок байтов (с использованием синтаксиса -bigendian).
Значение по умолчанию – прямой порядок байтов.
Атрибут block_size
block_size=размер_блока
Установить
размер блока для ETFS. Размер блока зависит от того, какое
запоминающее устройство присутствует в целевом оборудовании.
Размер блока по умолчанию – 16 KБ.
Атрибут cd
cd=имя_файла
До попытки
открытия файла хостов установить в качестве текущего
рабочего каталога каталог, расположенный по указанному пути.
По умолчанию определен каталог, из которого была вызвана
утилита mketfs.
Атрибут cluster_size
cluster_size=размер_кластера
Установить
размер кластера для ETFS. Размер кластера зависит от того,
какое запоминающее устройство присутствует в целевом
оборудовании. Размер кластера по умолчанию – 1 KБ.
Атрибут dperms
dperms=права_доступа_к_каталогу
Установить права
доступа к каталогу. Если задать числовое значение, то права
устанавливаются по этому числу (в точности как при
выполнении команды chmod). Если
в качестве значения указать звездочку (*), то
используются права доступа к каталогу на хосте. Для
встроенного каталога права извлекаются из результатов
выполнения утилиты umask
пользователем, запустившим утилиту mketfs. В
противном случае для удаления, добавления или установки прав
используется строка символьного режима (которая является
подмножеством chmod).
Строка
символьного режима состоит из следующих элементов:
-
сочетание
символов
u, g, o и
a;
-
символ
-, =
или +;
-
сочетание
символов
r, w, x, s, g и
t.
Можно указать
несколько строк символьного режима с разделением запятой (,).
Значение права_доступа_к_каталогу по умолчанию – *.
Атрибут filter
filter=спецификация_фильтра
Прогнать файл
хостов через заданную программу-фильтр, используя данные
файла хостов как стандартный поток ввода для программы, а
данные стандартного потока вывода программы – как данные,
размещаемые во встраиваемой файловой системе. По умолчанию
фильтр не используется.
В
качестве значения спецификация_фильтра можно
указать значение none. Это
целесообразно при необходимости переопределения глобальной
спецификации фильтра.
Атрибут followlink
(булев)
[+|-followlink]путь_в_целевой_системе=путь_на_хосте
Если указать
атрибут +followlink или
опустить его, утилита mketfs
переходит по всем ссылкам и в качестве пути_в
целевой_системе использует
копию пути_на_хосте.
Если
указать атрибут -followlink,
утилита mketfs
создает ссылку путь_в_целевой_системе,
которая указывает на то же местоположение, на которое
указывает путь_на_хосте.
Пользователь сам должен убедиться, что файл, на который
указывает ссылка, находится в образе.
Атрибут gid
gid=спецификация_идентификатора
Установить
идентификатор группы для файла. В качестве значения этого
атрибута можно указать число или звездочку (*). Если
указать в качестве значения звездочку, то идентификатор
группы берется из файла хостов. Для inline-файла
идентификатор группы – это группа, в которую входит
пользователь, запустивший утилиту mketfs.
Значение по умолчанию для этого атрибута – *.
Атрибут num_blocks
num_blocks=число
Установить
количество блоков во встраиваемой транзакционной файловой
системе. Если количество блоков указано, то файл образа
будет дополнен с учетом этого размера.
Атрибут optional
(булев)
+|-optional
Если значение
атрибута истинное и при этом не удается найти файл хостов,
то вывести предупреждающее сообщение и продолжить создание
встраиваемой файловой системы. Если значение атрибута ложное
и при этом не удается найти файл хостов, то вывести
сообщение об ошибке и завершить работу утилиты mketfs.
Значение по умолчанию – ложь.
Атрибут perms
perms=права_доступа
Установить права
доступа к файлу. Если задать числовое значение, то права
устанавливаются по этому числу (в точности как при
выполнении команды chmod). Если
указать в качестве значения звездочку ("*"), то используются
права доступа к файлу хостов. Для inline-файла используются
права доступа 0666. В противном случае для удаления,
добавления или установки прав используется строка
символьного режима (которая является подмножеством chmod).
Строка
символьного режима состоит из следующих элементов:
-
сочетание
символов
u, g, o и
a;
-
символ
-, =
или +;
-
сочетание
символов
r, w, x, s, g и
t.
Можно указать
несколько строк символьного режима с разделением запятой (,).
Значение
права_доступа по
умолчанию – *.
Примечание.
При запуске на хосте под управлением Windows утилита mketfs
не может получить из файла права на выполнение (x),
setuid ("set user ID") или setgid ("set group ID").
Используйте атрибут perms, чтобы явно задать
эти права. Возможно, также потребуется использовать атрибуты
uid
и gid для корректной установки
принадлежности. В целях определения необходимости установки
для утилиты прав setuid или setgid см. описание этой утилиты
в руководстве по утилитам.
Атрибут prefix
prefix=спецификация_префикса
Установить префикс
для имен целевых файлов. Значение по умолчанию – пустая
строка.
Атрибут search
search=путь:путь:…
Этот атрибут
определяет для утилиты mketfs
необходимость поиска файла в указанных папках в системе
хоста. Часть имени файла хостов с именем каталога поиска не
добавляется к имени, хранящемуся во встраиваемой
транзакционной файловой системе.
Примечание.
Такие разделители как двоеточие, и косая черта в пути
соответствуют стандартным соглашениям об именовании Unix,
однако для поиска в системе Windows необходимо использовать
стандартные правила именования Windows (например,
разделитель в виде точки с запятой и обратная косая черта в
пути).
Атрибут type
type=тип_файла
Установить тип
файлов, создаваемых во встраиваемой транзакционной файловой
системе. Допустимые типы файлов:
Примечание.
Значение [type=dir] означает, что утилита mketfs
должна создать указанный файл как каталог. При копировании
содержимого каталога тип задавать необязательно. Например,
следующая команда:
[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-файла
идентификатор пользователя – это пользователь, запустивший
утилиту mketfs.
Значение по умолчанию для этого атрибута – *.
Примеры:
Рассмотрим
пример
файла
построения образа my_etfs.bld:
# Пример файла
построения образа для утилиты mketfs
[cluster_size=1k
block_size=64k num_blocks=240]
/home/jgarvey/nto_flash
В этом примере в
качестве значения атрибута cluster_size
указано значение 1 КБ, атрибуту block_size
присвоено значение 64 КБ, а общий размер устройства
составляет 240 блоков (это конфигурация fs-etfs-ram по
умолчанию). Файлы и подкаталоги из каталога /home/jgarvey/nto_flash в
системе хоста рекурсивно копируются в корневой каталог
системы ETFS.
Для
создания файла образа ETFS с использованием приведенного
файла построения образа вызовите утилиту mketfs
следующим образом:
mketfs my_etfs.bld
my_image.etfs
В результате
буден создан файл my_image.etfs,
содержащий файловую систему ETFS, который затем можно
скопировать в целевую систему следующим образом:
etfsctl -d
/dev/etfs2 -S -e -w my_image.etfs -c
Статус
завершения:
0
Завершено успешно.
1
Возникла ошибка.