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

Рассматривается синтаксис файла построения образа файловой системы, в том числе синтаксис файла построения загрузочного образа

Общие сведения
Атрибуты
Основные атрибуты
Специальные
Файловые системы ifs (загрузочный образ)
Файловые системы ffs2 / ffs3
Файловые системы etfs
Файловые системы qnx6fs
Файловые системы ffs2 / ffs3 / etfs
Файловые системы etfs / qnx6fs

Общие сведения

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


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

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

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

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

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

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

Атрибут можно использовать:

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

# правильно
[uid=5 gid=5] имя файла
# неправильно
[uid=5] [gid=5] имя файла

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

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

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

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

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


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

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

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

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


Caution: По умолчанию утилита mkifs удаляет отладочную информацию из исполняемых файлов, добавляемых в образ. Это позволяет уменьшить размер образа. Для сохранения этой информации укажите атрибут +raw.

Атрибуты

Перечень атрибутов варьируется в зависимости от типа файловой системы загружаемого образа.

Вертикальная черта в формате записи атрибута указывает на необходимость наличия либо первого, либо второго элемента, но не обоих элементов одновременно (например, запись «+|-bigendian» означает «+bigendian или -bigendian, а не +-bigendian»).

Основные атрибуты

Атрибут bigendian (булев)
Формат:

+|-bigendian

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

Атрибут cd
Формат:

cd=путь

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

Атрибут dperms
Формат:

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

Установить права доступа к каталогу. Если задать числовое значение, то права устанавливаются согласно этому числу (в точности как при выполнении команды chmod). Если в качестве значения указать звездочку («*»), то используются существующие права доступа к каталогу (определяются ФС инструментальной системы) . Для встроенного каталога (inline) права извлекаются из результатов выполнения утилиты umask пользователем, запустившим утилиту создания образа. Также для удаления, добавления или установки прав может быть использована строка символьного режима (которая является подмножеством chmod). Строка символьного режима состоит из следующих элементов:

  1. сочетание символов u, g, o и a;
  2. символ -, = или +;
  3. сочетание символов r, w, x, s, g и t.
Можно указать несколько строк символьного режима с разделением запятой (,). Значение права_доступа_к_каталогу по умолчанию – «*».
Атрибут filter
Формат:

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

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

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

[filter="deflate"]

Особенности файловой системы ifs:
Для демонстрации применения фильтра рассмотрим сохранение сжатого файла в файловой системе образа, если файл существует в распакованном виде на ФС инструментальной системы:

[filter="compress"] data.Z = data

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

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

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

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

Атрибут gid
Формат:

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

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

Атрибут optional (булев)
Формат:

+|-optional

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

Особенности файловых систем ffs2 / ffs3 и ifs:
Значение по умолчанию – истина. Присвоить значение «истина» этому атрибуту для исполняемых файлов начальной загрузки невозможно (для получения дополнительной информации см. атрибут virtual).
Особенности файловой системы etfs:
Значение по умолчанию – ложь.
Атрибут perms
Формат:

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

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

  1. сочетание символов u, g, o и a;
  2. символ -, = или +;
  3. сочетание символов r, w, x, s, g и t.
Можно указать несколько строк символьного режима с разделением запятой (,). Значение права_доступа по умолчанию – «*».

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

Атрибут prefix
Формат:

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

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

Особенности файловых систем ffs2 / ffs3 и etfs:
Значение по умолчанию – пустая строка.
Особенности файловой системы ifs:
При построении загружаемого образа значение по умолчанию – proc/boot. В противном случае по умолчанию задается пустая строка.
Атрибут search
Формат:

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

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


Note: Разделители ':' и '/' соответствуют стандартным соглашениям об именовании Unix, однако для поиска в системе Windows необходимо использовать стандартные правила именования Windows (например, ';' и '\').

Особенности файловой системы ifs:
По умолчанию используется содержимое переменной среды MKIFS_PATH.
Атрибут type
Формат:

type=тип_файла

Установить тип файлов, создаваемых в файловой системе образа. Допустимые типы файлов:


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

[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-файла идентификатор пользователя – это пользователь, запустивший утилиту mk*fs. Значение по умолчанию для этого атрибута – «*».

Специальные

Специальные атрибуты применяются в сочетании лишь с некоторыми типами файловых систем загрузочного образа.

Файловые системы ifs (загрузочный образ)

Атрибут autolink (булев)
Формат:

+|-autolink

Если атрибут autolink установлен (он установлен по умолчанию), то в случае обнаружения утилитой mkifs разделяемого объекта при обработке выполняется поиск в образе имени SONAME (заданного опцией -h компоновщика). Обычно это имя разделяемого объекта, включающее номер версии (например, libc.so.1). Команда mkifs помещает этот файл в файловую систему образа с именем, содержащим номер версии, и вставляет имя без номера версии в символьную ссылку на файл. Например, если указать:

libc.so

в файле построения образа, то libc.so.1 становится именем файла, а libc.so – символьной ссылкой на него. Если указать

libc.so.1

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

libc.so.1
libc.so.2
[type=link] libc.so=libc.so.2

В этом случае имя libc.so указывает на «правильную» версию библиотеки. Эту функцию можно отключить, указав атрибут -autolink.

Атрибут chain
Формат:

chain=адрес

Определить адрес, по которому операционная система найдет следующую файловую систему образа. Адрес по умолчанию отсутствует.

Атрибут code
Формат:

code=спецификация_uip

Определить необходимость выполнения сегмента кода исполняемого файла непосредственно из файловой системы образа (uip или u) или будет осуществляться его копирования при вызове (copy или c). Значение по умолчанию предусматривает выполнение сегмента кода «на месте» (uip). Для получения дополнительной информации см. «Примечания по «выполнению на месте» и копированию».

Атрибут compress (булев)
Формат:

+|-compress[=алгоритм]

Определить необходимость сжатия образа. Значение по умолчанию – ложь. Если определить необходимость сжатия, также можно дополнительно задать алгоритм, указав его номер:

Атрибут data
Формат:

data=спецификация_uip

Определить необходимость выполнения сегмента данных исполняемого файла непосредственно из файловой системы образа (uip или u) или будет осуществляться его копирования при вызове (copy или c). Значение по умолчанию предусматривает выполнение сегмента данных "на месте" (uip). Для получения дополнительной информации см. «Примечания по «выполнению на месте» и копированию».

Атрибут image
Формат:

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

Установить базовый адрес и предельные значения размера для файловой системы образа. Формат атрибута: (необязательно) начальный адрес, за которым следует несколько параметров, описывающих размер адресного пространства или ни одного параметра. В адресах и значениях размера можно использовать не зависящий от регистра суффикс k, m или g. Начальный адрес – это базовый адрес образа. Он важен только при построении загружаемого образа. Его значение по умолчанию зависит от выбранного загрузочного файла. Например, если в системе x86 используется файл bios.boot, то начальный адрес образа приходится на 4 МБ.

-конечный_адрес

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

,максимальный_размер

Запятая, за которой следует число, соответствует максимальному допустимому размеру образа. Если размер полученного образа превышает это число, выводится сообщение об ошибке. По умолчанию предельное значение отсутствует. Максимальный размер образа зависит от конфигурации. Например, в системе x86 с BIOS он может быть ограничен.

=полный_размер

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

%выравнивание

Знак процента, за которым следует число, соответствует значению выравнивания, используемому для образа. Размер полученного образа дополняется до величины, кратной этому значению. Значение по умолчанию – 4.


Note: Для создания образа в ROM/FLASH необходимо указать значения для обоих атрибутов файла image и ram. В противном случае менеджер процессов считает, что образ находится в ОЗУ. Для получения дополнительной информации см. «Примечания по «выполнению на месте» и копированию».

Атрибут keeplinked (булев)
Формат:

+|-keeplinked

Если значение атрибута истинное и для размещения исполняемого файла в файловой системе образа утилита mkifs должна запустить компоновщик, то имя выходного файла компоновщика формируется из базового имени пути с добавлением .sym. Например, если исходное имя – ../foo/bar, то имя выходного файла будет bar.sym. Если значение атрибута ложное, то для выходного файла используется временно созданное имя, которое удаляется по завершении выполнения утилиты mkifs. Значение по умолчанию – ложь.

Атрибут linker
Формат:

linker=[спецификация_идентификатора_компоновщика]спецификация_компоновщика

При создании загружаемого образа утилите mkifs иногда требуется запускать компоновщик для организации перемещаемых объектов внутри образа. Эта опция позволяет указать макрорасширения, аналогичные printf() для определения способа создания командной строки компоновщика утилитой mkifs (для получения дополнительной информации см. «Характеристика компоновщика»). Обычно эту опцию указывать необязательно, поскольку утилита mkifs или загрузочный файл содержат значения по умолчанию. Для файлов ELF разных типов можно использовать различные компоновщики. Значение атрибута состоит из необязательной спецификации идентификатора компоновщика и спецификации компоновщика. Указываемая спецификация идентификатора компоновщика должна состоять из следующих компонентов:

Если указана спецификация идентификатора, то спецификация компоновщика используется только в том случае, если машинный номер во входном файле ELF совпадает с одним из указанных номеров и тип входного файла ELF совпадает с одним из указанных чисел и по меньшей мере один тип сегмента программы во входном файле совпадает с одним из указанных чисел:
Атрибут module
Формат:

module=имя_модуля

Этот атрибут используется для добавления к procnto дополнительных модулей. Например, для использования менеджера адаптивной декомпозиции необходимо повторно построить образ ОС с использованием опции [module=aps], добавив ее к оператору PATH= в файле построения образа:

[module=aps] PATH=/proc/boot ./procnto -vv

Теперь можно создавать разделы и запускать приложения для менеджера адаптивной декомпозиции внутри определенного раздела. Для получения информации о создании разделов см. раздел «Создание разделов» в главе «Настройка и использование менеджера адаптивной декомпозиции» в «Руководства системного программиста (администратора)», в разделе по адаптивной декомпозиции. Для получения дополнительной информации о запуске приложений внутри определенного раздела см. раздел «Запуск процессов в разделах» в главе «Настройка и использование менеджера адаптивной декомпозиции» в «Руководства системного программиста (администратора)» в разделе по адаптивной декомпозиции.

Атрибут page_align (булев)
Формат:

+|-page_align

Если атрибут принимает значение «истина», выровнять файл по границе странице. Утилита mkifs всегда выравнивает исполняемые файлы и разделяемые объекты по границам страницы, поэтому этот атрибут влияет только на файлы данных и файлы, для которых указан атрибут +raw.

Атрибут physical
Формат:

physical=[имя_ЦП,]имя_загрузочного_файла [аргументы_фильтра]

Этот атрибут указывает на то, что создается самозагружаемая файловая система. Его можно указать только один раз в файле построения образа. Образ будет запущен в режиме физической памяти.


Note: Атрибут physical пока не реализован. Используйте атрибут virtual.

Для получения дополнительной информации см. атрибут virtual.
Атрибут ram
Формат:

ram=специкация_адресного_пространства

Установить базовый адрес и предельные значения размера памяти для считывания и записи, используемой исполняемыми файлами в файловой системе образа. Формат атрибута: (необязательно) начальный адрес, за которым следует несколько параметров, описывающих размер адресного пространства или ни одного параметра. В адресах и значениях размера можно использовать не зависящий от регистра суффикс k, m или g.


Note: Для создания образа в ROM/FLASH необходимо указать значения для обоих атрибутов файла image и ram. В противном случае менеджер процессов считает, что образ находится в ОЗУ. Для получения дополнительной информации см. раздел «Примечания по «выполнению на месте» и копированию».

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

-конечный_адрес

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

,максимальный_размер

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

=полный_размер

Знак равенства, за которым следует число, соответствует полному размеру, до которого дополняется потребление ОЗУ. По умолчанию не дополняется.

%выравнивание

Знак процента, за которым следует число, соответствует значению выравнивания, используемому для ОЗУ. Размер ОЗУ дополняется до величины, кратной этому значению. Значение по умолчанию – 4.

Для получения информации о взаимодействии этих параметров см. «Примечания по «выполнению на месте» и копированию».

Атрибут raw (булев)
Формат:

+|-raw

Если атрибуту raw принимает ложное значение (установлено по умолчанию), то утилита mkifs удаляет отладочную информацию из исполняемых файлов. Если для файла указан атрибут +raw, то этот файл обрабатывается как файл данных, даже если в противном случае он был бы обработан как исполняемый файл и перемещен.


Note: Не следует указывать атрибут +raw для разделяемых объектов: в этом случае совместный доступ к этим объектам не предоставляется.

Рассмотрим фрагмент файла построения образа, в котором демонстрируется процедура использования и область применения атрибута raw:

...
[+raw] # Не удалять информацию об использовании, отладочную информацию
othello # или ресурсы Photon из двоичных файлов
[-raw] esh # Относится только к esh
pwm # По-прежнему действует флаг +raw
pfm
[-raw] # Отключить +raw, поскольку при использовании +raw совместный доступ
libphrender.so # к разделяемым объектам невозможен
libph.so
[+raw] my_ph_app # Использовать Ресурсы Photon только
# для этого файла. Флаг -raw
# по-прежнему действует для других файлов.
libc.so # По-прежнему действует флаг -raw
...


Note: Если для построения образа используются средства Windows, то при начальной загрузке образа для файлов с атрибутом +raw устанавливается запрет на выполнение. Это происходит по причине того, что в файловой системе win32 отсутствует возможность установки бита выполнения для файла. Для обеспечения возможности выполнения этих файлов укажите при использовании в файле построения образа атрибута +raw атрибут perms=+x.

Атрибут script (булев)
Формат:

+|-script

Если значение атрибута истинное, то после самоинициализации менеджера процессов открывается файл, который обрабатывается как файл сценария. Синтаксический анализ каждой строки выполняется как анализ командной строки, которую необходимо выполнить. Если атрибут +script установлен для нескольких файлов, то впоследствии в файловой системе образа они объединяются в один файл. В качестве имени этого файла используется первое имя файла сценария в файле построения образа. Имена файлов для последующих файлов сценариев игнорируются, но они должны быть уникальными. Для получения дополнительной информации о синтаксисе командной строки см. в «Файлы сценариев».

Атрибут virtual
Формат:

virtual=[имя_ЦП,]имя_загрузочного_файла [аргументы_фильтра]

Этот атрибут указывает на то, что создается система виртуальной адресации. Если значение содержит запятую "," или косую черту "/", предполагается, что строка перед ним принимается за тип ЦП целевой системы. Если тип ЦП не задан, утилита mkifs использует тип ЦП инструментальной системы. Этой строке присваивается значение переменной окружения PROCESSOR (которая определяет путь поиска MKIFS_PATH на инструментальной системе). Символы после запятой или косой черты (или знака равенства для атрибута, если отсутствует запятая или косая черта) вплоть до первого пустого символа считаются именем загрузочного файла. К данному имени добавляется суффикс .boot, и для этого файла выполняется поиск по MKIFS_PATH. Загрузочные файлы по умолчанию находятся в каталоге ${QNX_TARGET}/${PROCESSOR}/boot/sys. Загрузочные файлы зависят от процессора, однако далее приведен список основных таких файлов:

binary.boot
Создать простой двоичный образ (без команды перехода, добавляемой raw.boot). Если при создании двоичного образа его требуется загрузить при помощи U-Boot (или другой программы загрузки), необходимо выполнить mkifs -vvvv buildfile imagefile , чтобы определить фактический начальный адрес, а затем при запуске образа передать этот начальный адрес начальному загрузчику. Если изменить код программы начальной инициализации (startup), начальный адрес может измениться, поэтому необходимо определять его каждый раз. В случае необработанного двоичного образа (raw.boot), начальный загрузчик может просто осуществить переход по тому же адресу, в который был загружен образ.
bios.boot
Создать образ, подходящий для компьютеров с BIOS. Информация, собранная из BIOS, передается программе начальной инициализации startup.
bios16m.boot
Не проверять память за пределами 16 МБ. Использовать этот загрузочный файл в случае более ранних версий BIOS, в которых возникают проблемы с такой памятью.
bios_nokbd.boot
Игнорировать контроллер клавиатуры. Этот загрузочный файл используется, если BIOS не поддерживает и не эмулирует должным образом устаревшие функции контроллеров клавиатуры по адресу 0x64.
elf.boot
Создать образ, который выглядит как исполняемый файл ELF.
nobios.boot
Создать образ, подходящий для компьютеров без BIOS.
openbios.boot
Создать образ для OpenBIOS от корпорации IBM.
prepboot.boot
Создать образ, загружаемый с диска компьютера PREP.
raw.boot
Создать двоичный образ с использованием последовательности команд в начале для перехода к точке смещения виртуальный_адрес_секции_запуска в пределах заголовка программы начальной инициализации startup. Благодаря этому при загрузке необработанного образа в память с помощью начального загрузчика можно просто передать управление непосредственно на начало образа вместо определения фактического значения виртуальный_адрес_секции_запуска при каждом изменении кода программы начальной инициализации startup.
srec.boot Создать образ в формате S-record.
Для получения дополнительной информации о содержимом этого файла см. «Загрузочный файл». Все символы в значении атрибута после пробела используются в качестве аргументов любой команды фильтрации образа, указанной в загрузочном файле, как в следующем примере:

[virtual="x86,srec -b"] boot = {


Note: Если значение атрибута virtual содержит пробел, заключите строку в кавычки. В противном случае утилита mkifs попытается интерпретировать это значение как дополнительный атрибут файла построения образа, помещенный в те же квадратные скобки.

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

Файловые системы ffs2 / ffs3

Атрибут max_size
Формат:

max_size=размер

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

Атрибут min_size
Формат:

min_size=размер

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

Атрибут mount
Формат:

mount=имя_файла

Установить точку монтирования для встраиваемой файловой системы. Точку монтирования можно переопределить путем ввода опции -n для команды flashctl. Значение по умолчанию – «». При этом драйверы файловой системы флэш-памяти (devf-*) используют соответствующее значение по умолчанию. Как правило, это значение /fs1p1.

Атрибут spare_blocks
Формат:

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

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

Файловые системы etfs


Caution: Значения атрибутов cluster_size, block_size и num_blocks необходимо задать явно, с учетом используемого устройства флэш-памяти, чтобы созданный образ был полностью совместим с конкретным устройством.

Атрибут cluster_size
Формат:

cluster_size=размер_кластера

Установить размер кластера для ETFS. Размер кластера зависит от того, какое запоминающее устройство присутствует в целевом оборудовании. Размер кластера по умолчанию – 1 KБ.

Файловые системы qnx6fs

Атрибут blksize
Формат:

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

Установить размер блока для файловой системы Power-Safe. Размер блока определяет минимальный доступный объем в файловой системе и должен быть целым числом, кратным размеру сектора. Допустимые значения для размера блока: 512, 1024, 2048 и 4096. размер_блока - целое число, за которым может следовать K, M или G (регистр не имеет значения). Значение по умолчанию - 1024.

Атрибут boot_cls (булев)
Формат:

+|-boot_cls

Очистить (+) или не очистить (-) экран во время загрузки. По умолчанию не очищать.

Атрибут boot_offset (булев)
Формат:

boot_offset=offset

Установить cмещение файловой системы относительно начала файла.

Атрибут boot_quiet (булев)
Формат:

+|-boot_quiet

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

Атрибут boot_active (булев)
Формат:

+|-boot_active

Если значение атрибута истинное, то начальная загрузка ФС для целевой системы становится возможной. По умолчанию начальная загрузка при переносе образа на физический раздел носителя невозможна. Необходимо либо использовать данный атрибут, либо убедиться, что файловая система Power-Safe была смонтирована хотя бы один раз, чтобы привести суперблоки в правильное состояние для загрузки.

Атрибут fsys_lfncks (булев)
Формат:

+|-fsys_lfncks

Этот атрибут определяет, вычисляются ли контрольные суммы для длинных имен файлов в файловой системе Power-Safe. Значение по умолчанию - истина.

Атрибут mtime
Формат:

mtime=значение

Установить временные метки файлов или каталогов на указанное время. Значением атрибута должно быть:


Note: На отметки времени, указанные с помощью атрибута mtime, параметр -n не влияет.

Атрибут num_groups
Формат:

num_groups=количество_групп

Установить количество групп размещения в файловой системе Power-Safe. Значение по умолчанию выбирается в соответствии с размером файловой системы. Значение по умолчанию — 4; максимум 64.

Атрибут num_inodes
Формат:

num_inodes=количество_индексных_дескрипторов

Установить количество индексныx дескрипторов файла в файловой системе. Для каждого файла, каталога, жесткой ссылки или символической ссылки требуется один уникальный индексный дескриптор. Это означает, что количество индексныx дескрипторов (inode) в конечном итоге ограничивает количество файлов в файловой системе. Значение атрибута - это целое число, за которым могут следовать K, M или G (регистр не имеет значения). Значение по умолчанию - 32768.

Атрибут num_sectors
Формат:

num_sectors=количество_секторов

Установить общее количество секторов в образе. Значение атрибута — это целое число, за которым может следовать один из модификаторов:

Регистр модификатора не имеет значения. Значение по умолчанию - 524288 (512К); При размере сектора по умолчанию 512 байт это соответствует размеру образа 256 МБ. Расчет размера образа соответствует формуле:

размер_обзара = количество_секторов * размер_сектора ( 512К * 512 байт = 256 МБ)

Значение атрибута должно соответствовать общему количеству секторов в разделе, округленным до кратного 8. В противном случае файловую систему невозможно будет смонтировать. Файловая система Power-Safe всегда должна быть точно такого же размера (с округлением до ближайшего числа, кратного 8), что и раздел (или носитель без разделов), на котором она находится. Если образ отличается по размеру, он будет отмечен как поврежденный. Также имейте в виду, что многие диски в оперативной памяти сообщают о виртуальной геометрии 255 головок и 63 сектора на дорожку, обеспечивая максимум 16065 секторов на цилиндр. Поскольку разделы всегда определяются в единицах целых цилиндров, любой образ файловой системы Power-Safe, предназначенный для размещения на диске в оперативной памяти, должен иметь количество секторов, кратное указанному количеству секторов на цилиндр, которое также должно округляться до ближайшего числа, кратного 8.

Атрибут sector_size
Формат:

sector_size=размер_сектора

Установить размер сектора целевого устройства файловой системы. Допустимые значения: 512 и 4096. Значение по умолчанию — 512.

Атрибут reserve
Формат:

reserve=процент

Задать процент резервируемых блоков файловой системы. Значение атрибута — целое число в диапазоне от 0 до 99. Значение по умолчанию — 3.

Атрибут usage
Формат:

usage=usage

Установить ожидаемый тип файловой системы; Установленный тип повлияет на значения по умолчанию, выбранные для blksize, num_blocks, num_groups и num_inodes. Допустимые значения атрибута:

Значения по умолчанию нет.
Атрибут uuid
Формат:

uuid=UUID

Задать явный универсальный уникальный идентификатор (UUID) для файловой системы Power-Safe. Строка UUID должна иметь вид XXXXXXXX-XXXX-XXXX-XXXXXXXX, где X — шестнадцатеричное число. По умолчанию используется UUID на основе IPv4/случайных чисел. Обратите внимание, что при установке UUID не должно быть указано имя тома.

Атрибут vol_name
Формат:

vol_name=метка_тома

Установить метку тома. Максимальная длина метки тома составляет 16 символов. При указании метки тома, указывать UUID не нужно. По умолчанию используется UUID.

Файловые системы ffs2 / ffs3 / etfs

Атрибут block_size
Формат:

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

Установить размер блока для встраиваемой файловой системы.

Особенности файловых систем ffs2 / ffs3:
Размер блока зависит от того, какие запоминающие устройства присутствуют в целевом оборудовании и каким образом они организованы. Например, два чередующихся 8-битовых устройства по 64 КБ, сконфигурированные на 16-битовый интерфейс, имеют размер блока, равный 128 КБ. Размер блока по умолчанию – 64 КБ.
Особенности файловой системы etfs:
Размер блока по умолчанию – 16 KБ.

Файловые системы etfs / qnx6fs

Атрибут num_blocks
Формат:

num_blocks=количество_блоков

Установить количество блоков в файловой системе.

Особенности файловой системы etfs:
Если количество блоков указано, то файл образа будет дополнен с учетом этого размера.
Особенности файловой системы qnx6fs:
Если количество блоков не установлено, то оно рассчитывается, исходя из количества и размера секторов. Если в файле построения образа явно указаны и количество секторов, и количество блоков, то необходимо иметь в виду, что максимальное количество блоков, которое может иметь файловая система Power-Safe, составляет:

((число_секторов * размер_сектора) - 16 КБ) / размер_блока

количество_блоков - это целое число, за которым может следовать один из модификаторов K, M или G (См. атрибут num_sectors). Значение по умолчанию - 262128 (255K), что соответствует количеству блоков, полученному по приведенной выше формуле для количества секторов по умолчанию с использованием размера сектора и размера блока по умолчанию.

Тематические ссылки:

mkefs, mketfs, mkifs, mkqnx6fsimg2, mkxfs

Подключение оборудования

Примеры файлов построения




Предыдущий раздел: Загрузочные образы