Данная статья применима к:
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.8)
Введение
Для установки Astra Linux Special Edition x.8 используется новая программа установки (установщик) — astra-installer. В более ранних обновлениях Astra Linux используется установщик debian-installer. Astra-installer использует конфигурационные файлы с синтаксисом YAML, несовместимые с debian-installer:
- пример файла preseed для Astra Linux 1.8 (для установщика astra-installer) приведен далее в настоящей статье;
- пример файла preseed для Astra Linux 1.7 и более ранних обновлений (для установщика debian-installer) см. в статье Пример файла preseed для Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.7.
Подробная документация по командам нового файла автоматической установки доступна по ссылке: https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html.
- Установка Astra Linux на дисковые разделы с файловой системой семейства FAT (FAT12, FAT16, FAT32) не поддерживается.
- При работе с файлами YAML необходимо помнить, что этот синтаксис чувствителен к величине отступов в начала строки. Для формирования отступов следует использовать пробелы и недопустимо использовать табуляции.
- При планировании развертывания по сети следует учитывать, что:
- Установка по сети из-за отсутствия физического установочного носителя требует развертывания его копии в оперативной памяти, что повышает требования к её минимальному объему. Рекомендованный минимальный объем оперативной памяти для сетевой установки составляет 2.6 ГБ. См. также статью Рекомендации по параметрам аппаратной платформы x86_64 для Astra Linux Special Edition.
Другие особенности синтаксиса YAML:
- все символы после символа # считаются комментариями;
- строки представляют собой пары "ключ" - "значение";
- значения могут содержать пробелы, могут быть заключены или не заключены в кавычки.
Установка по сети
Порядок настройки инфраструктуры для установки по сети не зависит от используемого установщика и изложен в статье Автоматическая установка Astra Linux Special Edition 1.7.
Конвертация формата debian-preseed в формат astra-preseed
Это вспомогательный инструмент для упрощения переноса форматов. Полная конвертация не гарантируется.
В состав пакета astra-installer входит инструмент astra-installer-converter, предназначенный для автоматической конвертации preseed-файлов из формата debian-installer в формат astra-installer. Для использования инструмента необходимо установить пакет:
- первый (обязательный) аргумент — имя файла Debian preseed;
- второй (необязательный) аргумент – имя файла для вывода результата. Если аргумент не указан, то используется стандартный поток вывода.
Примеры использования инструмента:
С сохранением вывода в файл astra-installer-preseed.yaml
astra-installer-converter preseed.cfg astra-installer-preseed.yamlС выводом в стандартный поток вывода:
astra-installer-converter preseed.cfg
Варианты значений и их соответствие специфичных для Astra Linux параметров debian-preseed и astra-preseed файлов:
Debian preseed | Astra preseed |
tasksel tasksel/first | tasks: |
---|---|
Fly desktop | Fly |
Internet suite | Internet |
Office suite | Office |
Graphic tools | Graphics |
Multimedia | Multimedia |
Virtualization tools | Fly-virtualization |
Games | Games |
Base packages | Base |
Ufw firewall | Ufw |
Fly apps for working on devices with touchscreen | Fly-qml |
SSH server | Fly-ssh |
astra-additional-setup/additional-settings-smolensk | features: |
Enable Mandatory Integrity Control | astra-mic-control |
Enable Mandatory Access Control | astra-mac-control |
Enable ELF signature check | astra-digsig-control |
Clearing freed external memory | astra-secdel-swapwiper |
Disable bootloader menu show up | astra-nobootmenu-control |
Disable ptrace capability | astra-ptrace-lock |
Request password for sudo command | astra-sudo-control |
Disable non-execution bit setup | astra-nochmodx-lock |
Enable scripts lock | astra-interpreters-lock |
Enable macros lock | astra-macros-lock |
Enable console lock | astra-console-lock |
Enable system limits | astra-ulimits-control |
Disable automatic network configuration | astra-noautonet-control |
Local time for system clock | astra-installer-localtime-control |
astra-additional-setup/os-check | mode: |
Base security level Orel | 0 |
Advanced security level Voronezh | 1 |
Maximum security level Smolensk | 2 |
Параметры меню PXE-Linux
Общие параметры PXE-Linux
Для создания каталогов с первичной информацией, передаваемой сервером PXE, можно установить пакет grub-efi. При установке этого пакета создается каталог /srv/tftp/boot, содержащий все необходимые файлы.
Если в меню PXE используется кириллица, то конфигурация меню должна предусматривать загрузку шрифтов с поддержкой кириллицы.
- для варианта загрузки EFI такой шрифт предоставляется пакетом grub-efi;
- для загрузки BIOS шрифт доступен в составе пакета console-cyrillc (например, /usr/share/console-cyrillic/UniCyr_8x16.psf) и может быть скопирован в дерево файлов, передаваемых при запросе загрузки по сети.
Параметры элемента меню PXE-Linux для установки Astra Linux x.8 по сети должны включать в себя следующие параметры:
- Указание файла vmlinuz. Рекомендуется использовать файл с установочного диска. Файл vmlinuz на установочном диске принадлежит пользователю root и недоступен другим пользователям для чтения. Для того, чтобы файл мог передаваться по сети, следует установить на его копию, предназначенную для передачи, права доступа 644 (rw-r--r–). Например:sudo chmod 644 vmlinuz
- Указание файла initrd. Рекомендуется использовать файл с установочного диска.
- Параметр boot=live.
- Параметр astra-install=1.
- Параметр fetch с указанием файла с образом файловой системы squashfs для первичной загрузки. Рекомендуется использовать файл live/filesystem.squashfs с установочного диска.
- Параметр astra-installer-preseed с указанием файла preseed.
Далее приведены примеры файлов меню, содержащего загрузку шрифта с поддержкой кириллицы и двух элементов меню (menuentry):
- элемент для загрузки с жесткого диска (для варианта EFI используется структура данных созданная при установке пакета grub-efi);
- элемент для загрузки ОС по сети и установки.
Пример меню для загрузки BIOS/MBR/GPT
FONT pxelinux.cfg/UniCyr_8x16.psf LABEL local MENU LABEL Загрузка с жесткого диска kernel chain.c32 append hd0 LABEL netinstall MENU LABEL Astra Linux 1.08.00 with astra-installer kernel <сервер>/vmlinuz initrd=<сервер>/initrd fetch=http://<сервер>/filesystem.squashfs boot=live astra_install=1 astra-installer-preseed=tftp://<сервер>/astra-installer-preseed.yaml
Пример элемента для grub.cfg для загрузки EFI
- Для установки Astra Linux с использованием EFI карта создаваемых дисковых разделов должна содержать раздел с точкой монтирования /boot/efi (см. далее пример файла с параметрами установки).
- Для создания каталога с первичной информацией, передаваемой сервером PXE:
Установить пакеты grub-efi и grub-common:
sudo apt install grub-efi grub-commonВыполнить команду:
sudo grub-mknetdir --net-directory=/srv/tftp --subdir=/boot/grub -d /usr/lib/grub/x86_64-efiПри выполнении указанной команды будет создан каталог /srv/tftp/boot, содержащий все необходимые для сетевой установки EFI файлы.
Далее приведен пример файла меню, содержащего загрузку шрифта с поддержкой кириллицы и двух элементов меню (menuentry):
- элемент для загрузки с жесткого диска (используется структура данных, созданная командой grub-mknetdir);
- элемент для загрузки ОС по сети и установки.
Пример:
loadfont $prefix/fonts/unicode.pf2 menuentry "Boot default EFI bootloader from HDD" { insmod chain insmod disk insmod part_gpt insmod part_mbr search --set=root --file /efi/astralinux/grubx64.efi chainloader /efi/astralinux/grubx64.efi boot } menuentry "Установка Astra Linux SE 1.8" { set gfxpayload=keep linux /01.08.00/vmlinuz quiet modprobe.blacklist=evbug boot=live astra_install=1 \ fetch=http://192.168.1.7/repo/01.08/00/main/live/filesystem.squashfs \ astra-installer-preseed=tftp://192.168.1.7/01.08.00/astra-installer-preseed.yaml initrd /01.08.00/initrd }
Файл preseed для загрузки по сети Astra Linux x.8
Комментарии по применению представлены ниже в примере файла.
# Автоматически подтвердить согласие с лицензией license: true # Список доступных языков системы locales: - en_US - ru_RU # Список доступных раскладок клавиатуры layouts: - us - ru # Настройки комбинации клавиш для переключения раскладки клавиатуры (alt_shift_toggle, ctrl_shift_toggle, ...) # grp options from /usr/share/X11/xkb/rules/base.lst layout_switch_keys: - ctrl_shift_toggle # Настройки часового пояса timezone: Europe/Moscow # Настройки синхронизации времени (опционально) # Для того, чтобы служба синхронизации времени автоматически запускалась после установки ОС следует указать ntp_state: True. # При этом если значение параметра ntp_settings не задано, то для синхронизации будет использоваться сервер ntp1.vniiftri.ru. ntp_settings: ntp_state: True # Статус синхронизации ntp_server: 'ntp1.vniiftri.ru' # Сервер для синхронизации (опционально) # Настройки пользователя user: username: astra # Имя пользователя # Ниже приведены примеры настройки паролей пользователя и GRUB # Supported plain and hashed passwords (see man chpasswd and man crypt) password: Passw0rd # или # password-encrypted: $6$hackmehackme$ZzN7PixBxkr6xS2Mdc9rUgjBsF/HimXDXgDGM48JOq/fBnuOKIf42/wOjwR9vA/D2Blwbz.82AGwjxnyaVntX0 # Supported plain and encrypted GRUB passwords (see man grub-mkpasswd-pbkdf2) grub-password: Passw0rd # или # grub-password-encrypted: <зашифрованный пароль GRUB> host: # Имя хоста hostname: astra # Генерировать случайный суффикс вида "-NNNNN" к имени хоста (не обязательно) generate_sub_name: True # Настройки репозиториев # При установке по сети требуется обязательно указать в данной секции удаленный репозиторий. При установке из образа определять данную секцию не обязательно repos: debootstrap: name: default: "Main repository" ru_RU: "Основной репозиторий" url: 'deb https://dl.astralinux.ru/astra/stable/1.8_x86-64/repository-main/ 1.8_x86-64 main contrib non-free' # Ядро, которое будет установлено kernel-package: 6.1.50-1-generic # Список компонентов системы, которые будут установлены tasks: - Base - Fly - hidden # Идентификатор режима защищенности, который будет применен к устанавливаемой системе (в данном примере будет применен максимальный режим) mode: 2 # Список дополнительных настроек (настройки безопасности), которые будут применены к устанавливаемой системе features: - astra-mic-control - astra-mac-control # - astra-ptrace-lock # - astra-sudo-control # Ниже приведены примеры конфигурации разметки # В данном примере разметка будет выполнена в соответствии с заранее прописанным шаблоном из указанного файла storage: # # Device is enought. Default template will be used. # device: /dev/sdb # Диск, к которому будет применена разметка, и на который будет установлена система # template: default_template.txt # Файл шаблона разметки # Выбор типа таблицы разделов: # 1. Если не используется разметка дисков с помощью опции config, то указать тип таблицы разделов можно с помощью опций gpt и bios: # gpt: True # Создать таблицу разделов GPT. Рекомендованный вариант. # bios: True # Произвести установку системы в режиме совместимости с BIOS # 2. Если используется опция config, то тип таблицы разделов указывается в команде очистки разделов clearpart: # clearpart --all --disklabel=gpt # Рекомендованный вариант # или # clearpart --all --disklabel=msdos # В данном примере полностью описывается шаблон разметки # Формат шаблона — Kickstart # Является аналогом ручной разметки # При установке в режиме UEFI требуется описать разделы, необходимые для данного режима. Пример такого описания включен в шаблон: # part /boot/efi --label=efi --fstype=ext2 --size=1024 --asprimary storage: # gpt: true # Выбор типа таблицы разделов. В данном примере не используется, так как далее для разметки диска используется опция confg, # позволяющая детально задать шаблон разметки. # Строки шаблона должны быть разделены последовательностью из двух символов "\n" (новая строка). Опция config и шаблон разметки: config: " ignoredisk --only-use=sda|vda clearpart --all --disklabel=gpt bootloader --location=partition part biosboot --fstype=biosboot --size=2 part /boot --label=boot --fstype=ext2 --size=1024 --asprimary part /boot/efi --label=efi --fstype=ext2 --size=1024 --asprimary part pv.lvm_part --grow --asprimary volgroup VG pv.lvm_part logvol / --fstype=ext4 --name=lv_root --vgname=VG --percent=100 logvol swap --fstype=swap --name=lv_swap --vgname=VG --recommended" # Аналог preseed/late_command в debian installer # Команды будут выполнены в окружении инсталлятора #late_command: " #sudo apt-get download tree; #sudo dpkg -i tree*.deb" # late_command_intarget - то же самое, что и late_command с тем отличием, что команды будут выполнены в окружении устанавливаемой системы. Например: #late_command_intarget: " #sed -i 's/^XKBOPTIONS=.*/XKBOPTIONS=\"grp:ctrl_shift_toggle,grp_led,numpad:microsoft\"/' /etc/default/keyboard ; #wget -O /usr/local/bin/update.sh ftp://192.168.1.7/al_update.sh; #chmod +x /usr/local/bin/update.sh; #wget -O /lib/systemd/system/update.service ftp://192.168.1.7/al_update.service; systemctl enable update.service"