Настоящий документ содержит инструкции по эксплуатации коммерческой и ознакомительной редакций программного изделия операционной системы «БАРИЙ» (barium, платформа rosa2021.1, далее – ОС).
Документ предназначен для администратора и пользователей ОС и содержит общие сведения об ОС, ее общей структуре, настройке и работе с основными приложениями.
ОС РОСА «БАРИЙ» построена на базе актуальных репозиториев платформы rosa2021.1 на момент сборки системы. Для определения даты сборки смотрите файл: ROSA-SYSTEM/VERSION (в архиве OS или) /.memory/layer-base/0/VERSION (на загруженной системе).
ОС РОСА «БАРИЙ» - компактная, сжатая операционная система, так называемая Live OS, которая предоставляет возможность работы системы со съемного носителя информации. Отличительной особенностью ОС РОСА «БАРИЙ» является ориентированность на загрузку ОС с USB-токена и выполнение входа в систему по его пинкоду, а также шифрование данных пользователя при стандартном варианте установки.
При размере менее 2Гб, ОС содержит все необходимое ПО для организации комфортной работы пользователя и выполнения большинства рутинных операций на СВТ.
Для достижения минимального размера в ОС используются возможности файловой системы squashfs с использованием алгоритма zstd, при размере ОС менее 2х Гб общий объем ПО более 5Гб.
ОС имеет корневую файловую систему c модульной архитектурой. Для организации такой загрузки использованы идеи и код проектов:
ОС БАРИЙ имеет две редакции:
свободную, предназначенную для ознакомительного использования
коммерческую, версию для загрузки ОС с токенов.
Поддерживается установка на токены:
Этой клавишей может быть F2, F12, delete, esc или что-то еще, зависит от производителя.
ОС поддерживает загрузку UEFI и legacy bios, в любом случае вы попадете в одно и то же меню загрузчика grub2.
Пользователю доступно только одно приложение, по умолчанию это remmina. Режим предназначен для работы на удаленной машине.
После загрузки носитель может быть извлечен. Если ОС загружена с токена (то есть коммерческая версия ОС) извлечение токена приведет к блокировке экрана, для разблокирования достаточно вернуть токен в usb разъем.
По внешнему виду ОС загруженная в этом режиме отличается от режима «Рабочий стол» только некоторыми значками на рабочем столе. Основное отличие в том, что в безопасном режиме не подключается шифрованный раздел, который хранит ваши файлы настройки и дополнительно установленный софт. Доступно только то что есть в базовой системе.
Пароли root и пользователя — по умолчанию 12345678, если они не были изменены в ROSA-SYSTEM/ROSA.ini.
Меняются при установке и начальной настройке. При этом пароль 12345678 сохраняется для безопасного режима.
При загрузке ОС запрашивает пароли к шифрованному разделу и пинкод токена (или пароль) для входа в систему.
Первая загрузка на машине:
Вторая и последующие загрузки на этой же машине:
То есть для машин внесенных в список доверенных запрашивается только пароль для входа в систему. Это стандартное поведение, которое можно поменять в ROSA-DATA/ROSA.ini
Как было отмечено, БАРИЙ — модульная система и у нее есть особенности связанные с сохранением изменений сделанных в системе при работе. Изменения в данном случае это любые новые либо измененные файлы. Для начала разделим изменения на системные и пользовательские, это нужно нам потому что обрабатываются они по-разному. Пользовательские изменения - это все что находится в папке /home, то есть это домашняя папка пользователя, это каталоги, которые вы видите открывая файловый менеджер по значку с домиком. Системные изменения - все остальные файлы
На носителе изменения хранятся в модулях на шифрованном разделе. Разница в том, что модуль с пользовательскими данными всегда один и тот же, а системные изменения для каждой машины хранятся в отдельном модуле. То есть файл который вы на одной машине сохраните вне домашней папки на другой машине вы не обнаружите. При старте системы эти модули распаковываются в сформированную из модулей rootfs.
Именно этим обусловлены рекомендации устанавливать софт модулями и следить чтобы модуль с домашней папкой не превышал 300, максимум 500 мегабайт. Не стоит использовать домашнюю папку ОС для хранения больших файлов. Если носитель 16Гб и больше, то по умолчанию при установке на нем создается ntfs раздел, этот раздел должен быть виден в том числе в ОС семейства windows, храните большие файлы там.
Обратная запаковка в модули происходит при выключении машины, в момент когда все файловые системы уже размонтированы. Таким образом, если в режиме «Терминал» вы извлекали носитель, то достаточно вставить его обратно и правильно выключить машину чтобы система сохранения сработала. Понятно что бывают ситуации когда сохранить хотелось бы «на ходу» не дожидаясь выключения. Такой механизм есть, работает только для пользовательских данных.
иконка в виде домика на рабочем столе запускает сборку модуля с пользовательскими данными
Если по каким-то причинам не удалось сохранить модуль с текущими изменениями у вас останутся модули собранные при предыдущем выключении системы.
ROSA-DATA/saves/toxm.cfg — это конфигурационный файл системы сохранения в модули. В начале файла есть короткая инструкция по параметрам. Файл позволяет делать тонкие настройки системы сохранения.
В системном лотке ОС расположен апплет, который следит за состоянием системы. Если он не запущен можете запустить его самостоятельно:
barium applet
или из главного меню Бария.
При наведении на значок апплета указателя мыши можно увидеть основные показатели ОС, по щелчку ПКМ — небольшое меню из которого можно настроить интервальное сохранение или обновить ОС. Обычно индикатор зеленого цвета и это значит что с показателями все в порядке, если он желтый или тем более красный, то наведите на него указатель мыши и посмотрите цифры, возможно ваша домашняя папка превышает размер который можно упаковать в шифрованный раздел.
Все системные файлы Бария упакованы в squashfs-модули, также можно поступить и с дополнительным ПО.
Здесь модуль это squashfs архив, который монтируется к rootfs при старте системы. В Барии доступно несколько утилит, которые помогут собрать такой модуль. Выбор утилиты зависит как от задачи, так и от выбранной при загрузке «объединяющей» файловой системы. Это может быть aufs или overlayfs. Первая функциональнее, но отсутствует в основной ветке ядра linux, по умолчанию используется overlayfs.
Основная задача утилиты сделать модуль из папки. То есть если разместить в папке mymodule файлы с путями как от корня и выполнить команду:
barium mkmod mymodule
вы получите модуль mymodule.xzm. Такой способ хорошо подходит для модулей из своих скриптов и конфигурационных файлов. Кроме этого, утилита позволяет склеивать модули вместе или делать модули сразу из нескольких каталогов. Для получения более подробной информации, воспользуйтесь встроенной инструкцией используя параметр —help.
Пожалуй самая простая утилита для сборки модулей, при условии, что необходимое ПО есть в репозитории, или у вас локально есть rpm пакет, зависимости которого можно разрешить из репозитория.. Именно ее вы будете чаще всего использовать.
Рассмотрим пример использования команды:
barium dnf2mod nano
Данная команда соберет модуль nano.xzm, при подключении которого в системе появится редактор nano. Также можно передать утилите список пакетов, и они будут собраны со всеми зависимостями в один общий модуль. Большие модули делать выгоднее, так как на подключение каждого тратятся ресурсы. Еще правильнее собирать софт использующий одинаковые библиотеки в один модуль. Такой подход уменьшает дублирование одинаковых библиотек в разных модулях. Модули, собранные с помощью barium dnf2mod являются пересобираемыми. Таким образом для пересборки модуля достаточно запустить утилиту, не учитывая параметры предыдущего запуска, и передать утилите этот модуль:
barium dnf2mod ./nano.xzm
Данная команда пересоберет модуль с nano из обновленных в репозитории пакетов по параметрам сохраненным в старом модуле. Модули, собранные утилитой barium dnf2mod не содержат базу rpm, и зависят только от двух базовых модулей: 00-basesys.trm.xzm, 10-extsys.xzm. Это позволяет избежать инкрементной зависимости между модулями.
Утилита позволяет запаковать в модуль любые действия в chroot, в том числе и работу dnf install, это позволяет использовать ее для сборки модулей с софтом. Рассмотрим пример команды по установке nano, (аналогичный пример был рассмотрен выше с использованием barium dnf2mod):
barium chroot2mod -o nano.xzm –command dnf install -y nano
Разница модулей, собранных с помощью barium chroot2mod с модулем собранным barium dnf2mod состоит в том, что база rpm не удаляется автоматически при использовании chroot2mod (которая является более универсальной утилитой и с rpm никак не связана). С помощью утилиты barium chroot2mod возможно выполнять более сложные операции, используя в chroot окружении скрипты:
barium chroot2mod -o nano.xzm –script ./nano.sh
где nano.sh это:
#!/bin/bash
dnf install -y nano
dnf clean all
rm -rf /var/lib/rpm
rm -rf /var/lib/dnf
и т.д. В данном случае модули не привязаны к репозиторию, с использованием скрипта можно скачать архив с программным обеспечением, распаковать, установить программу, затем удалить архив. В результате чего будут получены модули с программой. Приблизительно так делаются все модули ОС, кроме системных. Модули, собранные с использованием утилиты chroot2mod, также являются пересобираемыми, в том числе и модули, находящиеся в сборке. Например:
barium chroot2mod /.memory/layer-base/0/base/cups.xzm
В репозитории собраны специфические для ОС модули, например библиотеки для токенов. Модули можно получить командой barium getmod:
barium getmod jacarta.xzm
С помощью barium getmod можно скачать не только модуль, но и скрипт которым он собирается. Вы можете внести в него свои правки и собрать модуль с barium chroot2mod.
Подключение модулей в загруженной системе возможно только с aufs-загрузкой. Overlayfs к сожалению такого не позволяет. Для «горячего» подключения используется утилита barium add.
barium add ./имя_модуля.xzm
(Обратите внимание, что подключение модуля, который сам находится на aufs, невозможно, то есть модуль находящийся, например, в домашней папке не подключится. Для подключения такого модуля необходимо предварительно перенести его в папку на “реальном” диске или в tmpfs)
Для того, чтобы модуль был подключен при загрузке системы, он должен иметь расширение xzm и находиться в одной из следующих папок:
ROSA-SYSTEM/base (/.memory/layer-base/0/base) - системные модули, обновляются с distrupdate;
ROSA-SYSTEM/modules (/.memory/layer-base/0/modules) - модули из репозитория;
ROSA-DATA/modules (/.memory/layer-base/1/modules) - модули администратора системы.
В скобках указана точка монтирования папки на загруженной системе. Несмотря на то, что модуль подключится из любой из указанных папок, использовать предпочтительнее папку 2 — для модулей не содержащих ничего конфиденциального и 3 — для модулей которые имеет смысл шифровать.
Для того, чтобы модуль был подключен при загрузке в режиме Терминал, он должен иметь дополнительный суффикс “.trm” и расширение “.xzm” и находиться в одной из следующих папок:
ROSA-SYSTEM/base (/.memory/layer-base/0/base) - системные модули, обновляются с barium update;
ROSA-SYSTEM/modules (/.memory/layer-base/0/modules) - модули из репозитория;
ROSA-DATA/modules (/.memory/layer-base/1/modules) - модули администратора системы.
В скобках указана точка монтирования папки на загруженной системе. Несмотря на то, что модуль подключится из любой из указанных папок, использовать предпочтительнее папки из списка под номерами 2 и 3.
Таким образом модули с расширением .trm.xzm подключаются во всех режимах, а .xzm во всех кроме режима “Терминал”.
Для отключения модулей используется утилита barium rm, которой необходимо передать имя модуля или порядковый номер, который можно получить командой barium ls. Отключение «на горячую» также возможно только при aufs-загрузке. Обратите внимание на то, что для отключения модуля должны быть закрыты все файлы, которые его используют.
Модули могут содержать файлы с одинаковым именем и путем, при их подключении в систему в rootfs будет виден только один файл из того модуля, который подключен позже. Посмотреть текущую последовательность подключения можно командой barium ls. При старте системы модули подключаются в алфавитном порядке, но также учитывается и путь их хранения в иерархии папок. То есть, с учетом имен каталогов файлы загружаются из каталогов в следующей последовательности:
ROSA-SYSTEM/base/ (/.memory/layer-base/0/base/)
ROSA-SYSTEM/modules/ (/.memory/layer-base/0/modules/)
ROSA-DATA/modules/ (/.memory/layer-base/1/modules/)
А далее, внутри каждого каталога модули подключаются уже в алфавитном порядке.
ОС БАРИЙ имеет свою систему обновлений отличную от других продуктов РОСЫ. И хотя обновление с использованием dnf возможно, делать это крайне не рекомендуется. Используйте dnf update только с указанием конкретного приложения и только в крайних случаях.
В процессе обновления создается новый каталог для системных файлов (модулей, ядра и проч.) В этот каталог синхронизируется «свежая» сборка с сервера обновлений. Переключение на новый каталог происходит при выключении компьютера.
Автоматический запуск системы обновлений управляется из Rosa.ini. Возможные варианты:
Вручную можно запустить обновление из индикатора состояния ОС (barium applet) или в консоли:
barium update
Настройка основных параметров ОС после установки производится редактированием файла ROSA.ini.
Таких файлов два, один находится в папке ROSA-SYSTEM, и используется только для безопасного режима, второй находится в
папке ROSA-DATA, то есть на установленной системе он будет внутри шифрованного раздела. Файл имеет множество настроек в
закомментированном виде, а также позволяет добавлять свои. Например здесь можно установить имя пользователя, а также его пароль и пароль root.
Получить хэш пароля не создавая пользователя можно командой:
barium lib getHash ваш_пароль
Для удобства редактирования ROSA.ini в сборках присутствует утилита barium iniedit (beta версия)
При установке ОС Барий с simple-install можно сразу настроить некоторые пункты ROSA.ini, примеры смотрите в simple-install --help