README.md

Пересборка/модификация установочных образов Astra linux

Версия stable: 20240908_01

В docx файле инструкция с изображениями

GITFLIC: https://gitflic.ru/user/medved0001
Вконтакте: https://vk.com/medved0001

Описание

Скрипт и инструкция по пересборке/модификации установочных образов Astra linux (DEBIAN и live установщики) и подобных по структуре установщиков.

По любым вопросам и проблемам со скриптом обращайтесь в личные сообщения Вконтакте.

Инструкция

  1. Запустите createiso.sh с правами администратора

Будут созданы необходимые для работы каталоги (пути можно изменить внутри скрипта)

  1. Поместите файл iso в каталог iso-in, смонтируйте его через действие номер 1 и скопируйте файлы iso в каталог iso-temp через действие номер 3

  2. Запустите редактор репозиториев через действие номер 21 и создайте репозиторий:

3.1. Укажите путь до каталога, где будет находится репозиторий (путь к созданному скриптом каталогу repo).

3.2. Укажите кодовое имя репозитория (не проверялась работа, если указать имя отличающееся от имени репозитория в iso образе, который вы хотите редактировать).

3.3. Выберите компоненты репозитория в соответствии с используемыми компонентами репозитория в iso образе.

В скрипте после создания репозитория можно создать свои категории для использования в репозитории, но такой формат не проверялся для установки.

3.4. Включите опцию Подписать репозиторий. Если ключа нет, создайте его или импортируйте в KGpg. Ключ должен иметь абсолютное доверие.

3.5. Когда вы создали репозиторий, закройте редактор репозиториев и выполните действие номер 4 для добавления параметра Contents в параметры репозитория

3.6. Далее запустите редактор репозиториев и импортируйте каталог pool из скопированного iso в репозиторий.

Ожидайте, пока репозиторий импортируется

4.Далее необходимо пересобрать файл tasksel-data:

4.1. Положите deb пакет tasksel-data в каталог Deb-in

4.2. Распакуйте пакет через действие номер 11

4.3. Далее необходимо зайти в каталог с распакованным deb пакетом и сделать следующее (в репозитории есть пример содержимого tasksel-data):

4.3.1. Создать каталог etc/apt/trusted.gpg.d и поместить в него файл открытого ключа, которым вы подписали репозиторий (т.е. у вас будет путь каталог-распакованного-пакета/etc/apt/trusted.gpg.d).

4.3.2. Если вам необходимо на последнем этапе установки выполнить дополнительные команды, то необходимо создать файл скрипта или использовать предоставленную мной структуру tasksel-data (есть в репозитории), который позднее вы подключите в пункте 6.1.2 или 6.2.2 (зависит от инсталлятора). Некоторое ПО можно установить только на финале установки.

Например, я делаю так.

  • В распакованном каталоге tasksel-data я содзаю каталог opt/install-files-programm и в него помещаю скрипты (полный путь каталог-распакованного-пакета/opt/install-files-programm). Запускаемый в финале скрипт у вас будет 1 (в моем случае, это postinstos.sh), а дополнительные скрипты и команды запускаются из него.

  • В файл install-extra.sh я добавляю запись на установку через другой собранный пакет, который установится при выборе нужной категории (т.е. это позволяет опционально выполнить команду в финале установки не прописывая намертво команду в скрипт).

  • В delpkg.sh записывается имя пакета для удаления.

  • Оригинальный пакет tasksel-data для того, чтобы установить его, тем самым заменив свою пересобранную версию в конце выполнения всех команд.

  • Структура пакета df-cryptoprocsp-inst показывает, как сделать пакет с опциональной, а не фиксированной, установкой того ПО, которое не может быть установлено стандартным путем, а только в конце установки.

4.3.3. Далее вам необходимо отредактировать файл debian-tasks.desk (находится по пути каталог-распакованного-пакета/usr/share/tasksel/debian-tasks.desk).

Вы можете отредактировать состав пакетов в существующих категориях этого файла, удалить ненужные категории, добавить свои.

Пункты Relevance и Test-new-install действуют для дистрибутива с установщиком Debian. в live они тоже обязательны для корректности файла, но не используются установщиком.

  • Relevance – это сортировка пунктов при выводе в инсталляторе. Чем значение выше, тем выше будет этот пункт. Разные категории могут иметь один и тот же номер, тогда порядок этих категорий будет выставлен автоматически между всеми категориями с этим номером.

  • Test-new-install задает будет ли категория выбрана, не выбрана или установлена автоматически ( значения mark mark, show show, install install).

4.3.4. Далее вам необходимо запаковать пакет обратно и заменить его в репозитории. Также загрузите в репозиторий все пакеты, указанные в каталогах в debian-tasks.desk файле и зависимости к ним.

5.Когда репозиторий будет готов, скопируйте его обратно в каталог сборки через действие номер 6.Также создайте симлинк после копирования через действие номер 8. Хэшсуммы для файлов репозитория по желанию.

6.Следующие действия будут отличаться в зависимости от пересобираемого инсталлятора (Astra 1.7 использует Debian инсталлятор. В Astra 1.8 возможно будет 2 iso (Debian и live)):

6.1. Для Debian инсталлятора:

6.1.1. Вам необходимо распаковать файлы initrd для консольной и графической установки

6.1.2. В каталогах, где находятся эти файлы, будут созданы каталоги с распакованным initrd (initrd-extract)

Вам необходимо в файл preseed.cfg, который находится в корне каталога initrd-extract добавить строки в конец файла:

d-i cdrom-detect/eject boolean false d-i preseed/late_command string in-target /bin/bash -c /opt/install-files-programm/postinstos.sh

/opt/install-files-programm/postinstos.sh заменить при необходимости на свой путь

d-i preseed/late_command позволяет вам выполнить команду на завершающем этапе установки. Добавляйте в том случае, если вы ранее добавили нужный для выполнения файл в пакет tasksel-data.

d-i cdrom-detect/eject boolean false предотвращает отмонтирование носителя на финальном этапе установки.

6.1.3. Запакуйте файлы initrd обратно.

6.1.4. Для сборки инсталлятора на основе Debian (Astra 1.7, возможно будет второй образ для 1.8 на релизе), нужно установить isolinux и xorriso через действия 24-25, после чего можно собирать iso через действие 9

6.2. Для live установщика (Astra 1.8):

6.2.1. Установите пакет squashfs-tools через действие номер 26. Также с ним установится grub-pc-bin, необходимый для сборки гибридного iso.

Распакуйте файл с live системой через действие номер 17 (он используется инсталлятором).

6.2.2. Вам необходимо в файле (/opt/createiso/build/iso-temp/astra-test1/live/squashfs-root путь до этого каталога у вас может отличаться)/usr/lib/python3/dist-packages/astra_installer/configs/common.conf.yaml отредактировать категории и привести их в соответствие с файлом debian-tasks.desk.

Также в этом файле вы можете изменить другие необходимые вам настройки инсталлятора.

Для того, чтобы при выборе в инсталляторе отображалось не id имя категории, а нужный вам текст, вы должны в файле …/squashfs-root/usr/lib/python3/dist-packages/astra_installer_converter/tasksel.py добавить, по аналогии с имеющимися, имена для разных локализаций.

В установщике присутствует файл …/squashfs-root/usr/lib/python3/dist-packages/astra_installer/configs/installer/amd64/install_answers.cfg с Preseed настройками. Мной он не менялся и не проверялся.

В файл …/squashfs-root/usr/lib/python3/dist-packages/astra_installer/configs/installer/amd64/conf.yaml вы можете добавить необходимые вам дополнительные репозитории.

В конце файла …/squashfs-root/usr/lib/python3/dist-packages/astra_installer/configs/installer/amd64/94astra_extra_postinst я прописал запуск скрипта на финале установки.

chroot ${TARGET} /bin/bash -c /opt/install-files-programm/postinstos.sh

6.2.3. При необходимости подключившись к каталогу squashfs-root через chroot вы можете установить необходимое ПО в live образ.

6.2.4. После всех необходимых действий, запакуйте образ live системы обратно в файл через действие номер 18.

6.2.5. Перед сборкой iso удалите каталог squashfs-root и резервный файл filesystem1.squashfs из каталога сборки

6.2.6. Теперь можно собрать iso, для этого установите пакет xorriso и запустите сборку через действие номер 10

Описание

Скрипт и инструкция по пересборке/модификации установочных образов Astra linux и подобных по структуре установщиков

Релизы
20240908_01 2024-09-08
Конвейеры
0 успешных
0 с ошибкой