Barium:модули — различия между версиями
Betcher (обсуждение | вклад) (Новая страница: «=== Что за модули такие === UIRD создает корневую файловую систему для дальнейшей загрузки ОС…») |
Betcher (обсуждение | вклад) (→barium mkmod) |
||
Строка 6: | Строка 6: | ||
=== barium mkmod === | === barium mkmod === | ||
+ | Основная задача утилиты сделать модкль из папки с файлами, дополнительно можно склеивать папки и модули в один модуль в любых сочетаниях. | ||
+ | Например: | ||
+ | У вас есть два файла - программа и ее конфиг. В системе они должны быть размещены по путям: | ||
+ | |||
+ | /usr/bin/superproga | ||
+ | /etc/superproga.d/superproga.conf | ||
+ | |||
+ | * Создаем папку с именем будущего модуля: | ||
+ | |||
+ | mkdir ./superproga | ||
+ | |||
+ | * Внутри папки создаем нужные каталоги. Обратите внимание на права и пользователя каталогов. Для системных папок обчно достаточно создавать их под рутом. | ||
+ | |||
+ | |||
+ | mkdir -p ./superproga/usr/bin | ||
+ | mkdir -p ./superproga/etc/superproga.d | ||
+ | |||
+ | * копируем файлы в папки, допустим они у нас тоже были в текущем каталоге | ||
+ | |||
+ | cp ./superproga ./superproga/usr/bin/ | ||
+ | cp ./superproga.conf ./superproga/etc/superproga.d/ | ||
+ | |||
+ | * Пакуем | ||
+ | |||
+ | barium mkmod ./superproga | ||
+ | |||
+ | Итогом будет модуль superproga.xzm, при подключении которого файлы окажутся в системе в нужных подкаталогах. | ||
+ | Модули не возможно редактировать, они монтируются только RO, по этому если вам нужно будет что-то изменить придется собирать модуль заново. | ||
+ | Если же нужно добавить файл в модуль можно воспользоваться режимом "склейки" утилиты barium mkmod | ||
+ | |||
+ | mkdir -p ./superproga2/etc/skel/.config/ | ||
+ | cp superproga.conf ./superproga2/etc/skel/.config/ | ||
+ | barium mkmod ./superproga2 ./superproga.xzm -o superproga2.xzm |
Версия 08:56, 17 августа 2022
Что за модули такие
UIRD создает корневую файловую систему для дальнейшей загрузки ОС из слоев собранных объединяющей файловой системой aufs/overlayfs. В качестве слоев может использоваться все что возможно смонтировать в Линукс в режиме read only. Чаще всего это squashfs архивы это и есть модули Бария. Squashfs архив отличает то что данные из него можно читать блочно, то есть для того чтобы извлечь файл нет необходимости распаковывать весь архив, распаковываются только блоки в которых лежат части этого файла. По мимо уменьшения размера ОС это часто дает прирост в скорости чтения, особенно с медленных носителей, относительно чтения не сжатых данных с того же носителя. Это происходит потому, что прочитать 1 мегабайт и распаковать его в 3 мегабайта с "быстрым" процессором и "медленным" носителем, будет быстрее чем читать не сжатые 3 мегабайта. Каждый такой модуль содержит свою часть файловой системы. Модуль не равен rpm пакету по содержимому, он может содержать как один файл так и всю ОС, как это бывает в livecd.
Как сделать модуль
Squashfs архивы создаются утилитой mksquashfs из пакета squahfs-tools, и модули вполне можно сделать имея только mksquashfs, но для большего удобства подготовлено несколько утилит в составе barium-utils.
barium mkmod
Основная задача утилиты сделать модкль из папки с файлами, дополнительно можно склеивать папки и модули в один модуль в любых сочетаниях. Например: У вас есть два файла - программа и ее конфиг. В системе они должны быть размещены по путям:
/usr/bin/superproga /etc/superproga.d/superproga.conf
- Создаем папку с именем будущего модуля:
mkdir ./superproga
- Внутри папки создаем нужные каталоги. Обратите внимание на права и пользователя каталогов. Для системных папок обчно достаточно создавать их под рутом.
mkdir -p ./superproga/usr/bin mkdir -p ./superproga/etc/superproga.d
- копируем файлы в папки, допустим они у нас тоже были в текущем каталоге
cp ./superproga ./superproga/usr/bin/ cp ./superproga.conf ./superproga/etc/superproga.d/
- Пакуем
barium mkmod ./superproga
Итогом будет модуль superproga.xzm, при подключении которого файлы окажутся в системе в нужных подкаталогах. Модули не возможно редактировать, они монтируются только RO, по этому если вам нужно будет что-то изменить придется собирать модуль заново. Если же нужно добавить файл в модуль можно воспользоваться режимом "склейки" утилиты barium mkmod
mkdir -p ./superproga2/etc/skel/.config/ cp superproga.conf ./superproga2/etc/skel/.config/ barium mkmod ./superproga2 ./superproga.xzm -o superproga2.xzm