Releases

Периодические сборки доступны по адресу https://ftp.radix.pro/radix/system/releases. Здесь имена каталогов напоминают обычное представление версий программного обеспечения, отличие состоит в том, что первые две цифры, разделенные символом точка ('.'), совпадают с версией платформы, а последняя, – равна ревизии ветки, сборка которой представлена в соответствующем каталоге.

Внутренняя структура каталогов любого выпуска может быть представлена в виде дерева:

1.9.383
  │
  ├── i686-glibc
  │   └── intel-pc32
  │
  ├── rk339x-glibc
  │   └── leez-p710
  │       ├── app
  │       ├── base
  │       ├── boot
  │       ├── dev
  │       ├── dict
  │       ├── fonts
  │       ├── libs
  │       ├── net
  │       ├─ @.pkglist
  │       ├── leez-p710-RcL-1.9.383.torrent
  │       ├── leez-p710.SD.MBR
  │       ├── leez-p710.boot-records
  │       ├── leez-p710.ext4fs
  │       └── leez-p710.pkglist
  │
  └── x86_64-glibc
      └── intel-pc64

где на первом уровне вложенности располагаются каталоги, соответствующие архитектуре или имени toolchain-а, а имена каталогов второго уровня представляют собой имена устройств.

На предыдущем листинге в каталоге 'rk339x-glibc/leez-p710' показан примерный состав дистрибутива. Подробную информацию о файлах с именами вида '$(HARDWARE).{SD.MBR|boot-records|ext4fs|pkglist}' можно получить в разделе, описывающем сервисные цели системы сборки.

В дополнение к основным файлам выпуска, в каталоге может быть представлен torrent-файл, например, leez-p710-RcL-1.9.383.torrent. Имя файла отражает название платы, для которой создан выпуск, а также сокращенное имя системы и версия сборки. В данном случае RcL-1.9.383.

Torrent-файлы содержат информацию о всех файлах, находящихся в каталоге выпуска кроме образов qcow2 и VDI дисков для виртуальных машин, также в описание не входят скрытые файлы .dialogrc и символические ссылки .pkglist. Кроме того, исполняемые файлы write-efiboot-image после загрузки получают аттрибуты 0644 и перед их использованием следует вручную изменить аттрибыты на 0755.

Boot Images

Для приготовления загрузочного образа и записи его на SD-карту достаточно выполнить команды:

# cat leez-p710.boot-records leez-p710.ext4fs > SDHC.img 
# dd if=SDHC.img of=/dev/mmcblk0

где, leez-p710 – имя файла, соответствующее имени целевого устройства.

Оставшееся место на карте можно распределить с помощью утилиты fdisk, например, создав дополнительный раздел для размещения домашних каталогов пользователей.

В случае 32-битных архитектур Intel i586, i686 вместо файла с расширением .boot-records, будет присутствовать файл с расширением .grub-records. Процедура записи образа на SD-карту или любой другой накопитель не будет отличаться от предыдущей:

# cat intel-pc32.grub-records intel-pc32.ext4fs > USB.img 
# dd if=USB.img of=/dev/sdX

Разница состоит лишь в том, что в качестве загрузчика здесь будет использоваться GRUB. Однако сам носитель по-прежнему будет иметь, так называемую, MBR-структуру разделов.

В отличие от GUID-схемы таблицы разделов, MBR удобнне тем, что для создания дополнительных разделов на диске, вам не придется перемещать Secondary GPT Header в конец физического носителя после того, как вы записали бинарный образ на диск.

Для целевой архитектуры x86_64 мы используем EFI-загрузчик и поэтому в каталоге очередного выпуска дистрибутива будут располагаться другие файлы:

1.9.383
  │
  └── x86_64-glibc
      └── intel-pc64
          ├── app
          ├── base
          ├── boot
          ├── dev
          ├── dict
          ├── fonts
          ├── libs
          ├── net
          ├── .dialogrc
          ├─ @.pkglist
          ├── intel-pc64-RcL-1.9.383.torrent
          ├── intel-pc64.efi32fs
          ├── intel-pc64.ext4fs
          ├── intel-pc64.pkglist
          └─ *write-efiboot-image

Здесь процедура создания загрузочных образов будет отличаться от описанных ранее. Рассмотрим запись образа на физический USB-носитель, подключенный, например как /dev/sdg устройство.

Запись на физический носитель будет осуществляться уже с помощью скрипта write-efiboot-image, параметрами которого будут: образ FAT32 файловой системы, содержащей EFI-загрузчик и образ корневой файловой системы. При этом Secondary GPT Header будет размещен именно в конце физического носителя и пользователю не придется вручную передвигать данную таблицу.

# ./write-efiboot-image -e intel-pc64.efi32fs -r intel-pc64.ext4fs /dev/sdg

Рассмотрим теперь приготовление образов для виртуальных машин.

Допустим нам необходимы образы саморасширяющихся виртуальных дисков для VirtualBox и Libvirt (Qemu/KVM) максимального размера 64GiB. В этом случае нам надо создать предварительный, полный образ:

#!/bin/bash

fallocate --lenght 64GiB radix.img

DEVICE=`losetup -f`
losetup -f -P radix.img
./write-efiboot-image -e intel-pc64.efi32fs -r intel-pc64.ext4fs $DEVICE
losetup -d $DEVICE

Преобразование полного RAW-образа radix.img в qcow2-формат для Qemu/KVM осуществляется с помощью команды qemu-img следующим образом:

#!/bin/bash

qemu-img convert -f raw -O qcow2 radix.img radix-1.9.383.qcow2

Так же легко можно получить образ для VirtualBox:

#!/bin/bash

VBoxManage convertdd radix.img radix-1.9.383.vdi --format VDI

Готовые образы для виртуальных машин можно найти, например, в каталоге https://ftp.radix.pro/radix/system/releases/1.9.383/x86_64-glibc/intel-pc64.