Инструкция по созданию образов операционной системы из репозитория пакетов

Для выполнения данной инструкции вам понадобится установленная ОС "Astra Linux Common Edition Орёл". Установочный дистрибутив можно найти по указанному адресу:

http://mirror.yandex.ru/astra/current/orel/iso/

Установите пакет live-build-astra

$ sudo apt-get install live-build-astra

Создайте образ НЖМД или карты SD командой (Если репозитарий доступен вам в виде папки, а не как сетевой ресурс, то смотрите ниже)

для архитектуры amd64:
$ sudo live-build-astra --distribution orel --repository http://mirror.yandex.ru/astra/current/orel/repository/ --image hdd.img

для архитектуры armhf:
$ sudo live-build-astra --distribution novorossiysk --arch armhf --repository http://build4/arm-external-repo/ --image sd.img

Образ обязательно будет содержать таблицу разбиения, даже если в нём будет единственный раздел. Разделы и их размеры можно задать в файле, путь к которому передать с опцией --partition-script. Если эту опцию не задать, то будет использован файл по-умолчанию

/usr/share/live-build-astra/partition.script

Его можно использовать в качестве примера. Первая строка обязательно должна быт "msdos". Далее идут строки в которых сначала цифра (размер раздела в мегабайтах, которые по 1024 килобайта), потом пробел и тип файловой системы (поддерживаются fat32 и ext4). Слово ROOTFS означает, что будет создан раздел такого размера чтобы на нём уместилась корневая файловая система ОС. Все разделы будут primary (не logical и не extended). Поддерживается до 4 primary разделов. Файловая система ОС Novorossiysk будет скопирована на последний раздел.

Другие опции вы можете узнать запустив

$ live-build-astra --help

После того как создание образа НЖМД или карты SD завершится вы сможете запустить ОС в QEMU

для архитектуры amd64:
$ qemu-system-x86_64 -kernel build/chroot/boot/vmlinuz -initrd build/chroot/boot/initrd.img -drive file=hdd.img,cache=writeback -append 'rootwait root=/dev/sda2'

для архитектуры armhf:
$ qemu-system-arm -M vexpress-a9 -kernel build/chroot/boot/vmlinuz -initrd build/chroot/boot/initrd.img -drive file=sd.img,if=sd,cache=writeback -append 'rootwait root=/dev/mmcblk0p2'

Аутентифицироваться можно пользователем "desktop" без пароля.

Если нужно что-то поменять в образе НЖМД или карты SD, то это можно сделать следующим образом. Смонтировать файловую систему образа командами

$ sudo kpartx -a sd.img
$ sudo mount -o loop /dev/mapper/loop0p2 /mnt

И зайти в chroot-окружение

$ /usr/share/live-build-astra/goto_chroot.sh /mnt

Далее в chroot-оболочке меняете что нужно и выходите командой

# exit
$ sudo kpartx -d sd.img

После этого отмонтируете специальные файловые системы и сам образ:

$ sudo umount /mnt/proc
$ sudo umount /mnt/sys
$ sudo umount /mnt/dev/pts
$ sudo umount /mnt

Если репозиторий доступен вам в виде папки на локальной файловой системе, то для использования его с live-build-astra необходимо сделать его доступным по сети. Это можно сделать, например, с помощью программы vsftpd.

$ sudo apt-get install vsftpd

Настроить vsftpd можно командой

$ sudo /usr/share/live-build-astra/vsftpd_loopback.sh
$ sudo /etc/init.d/vsftpd restart

После этого vsftpd будет давать доступ к файловой системе по FTP для локальных процессов, то есть он не будет виден другим ЭВМ в сети. Если репозиторий находится в директории /var/share/arm-repository, то live-build-astra надо будет запускать передав адрес как в примере ниже.

для архитектуры amd64:
$ sudo live-build-astra --distribution orel --repository ftp://127.0.0.1/var/share/arm-repository --image hdd.img

для архитектуры armhf:
$ sudo live-build-astra --distribution novorossiysk --arch armhf --repository ftp://127.0.0.1/var/share/arm-repository --image sd.img

Возможно вы захотите настроить vsftpd другим образом. Если не получится, то можете использовать

/usr/share/live-build-astra/vsftpd.conf

в качеcтве примера рабочей конфигурации.



О настройке пользовательского интерфейса

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


Для разработки пакетов для данной операционной системы вы можете использовать chroot-окружение в директории build/chroot.
