Данная статья применима к:
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.8)
Введение
Для установки Astra Linux Special Edition x.8 используется новая программа установки (установщик) — astra-installer, входящая в состав штатного установочного диска (основного репозитория) Astra Linux. Astra-installer использует конфигурационные файлы с синтаксисом YAML, несовместимые с ранее использовавшимся установщиком debian-installer.
В личном кабинете доступны образы установочных носителей Astra Linux Special Edition 1.8 с установщиком debian-installer. Подробнее про допустимость использования этих образов см. статью Особенности применения debian-installer для установки Astra Linux Special Edition x.8. Для автоматической установки с использованием этих образов применима статья Автоматическая установка Astra Linux Special Edition 1.7.
- Пример файла preseed для Astra Linux 1.8 (для установщика astra-installer) приведен далее в настоящей статье.
- Пример файла preseed для для установщика debian-installer см. в статье Пример файла preseed для Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.7.
- Установка Astra Linux на дисковые разделы с файловой системой семейства FAT (FAT12, FAT16, FAT32) не поддерживается.
- При работе с файлами YAML необходимо помнить, что этот синтаксис чувствителен к величине отступов в начала строки. Для формирования отступов следует использовать пробелы и недопустимо использовать табуляции.
- При планировании развертывания по сети следует учитывать, что установка по сети из-за отсутствия физического установочного носителя требует развертывания его копии в оперативной памяти, что повышает требования к её минимальному объему. Рекомендованный минимальный объем оперативной памяти для сетевой установки составляет 2.6 ГБ. См. также статью Рекомендации по параметрам аппаратной платформы x86_64 для Astra Linux.
Другие особенности синтаксиса 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).
# auto - автоматически определяет возможность подстановки значения для полей debootstrap и sources
# config - значение для полей sources и debootstrap берётся из секции repos данного файла
# disk - значение для debootstrap берётся как file://{repo_mountpoint}, где repo_mountpoint - переменная из внутреннего конфигурационного файла astra-installer
# sources - репозитории подставляются из файла sources.list, для debootstrap берётся первое значение
repo_source: auto
# Настройки репозиториев
# При установке по сети требуется обязательно указать в данной секции удаленный репозиторий (debootstrap). При установке из образа определять данную секцию не обязательно
repos:
debootstrap:
name:
default: "Debootstrap repository"
ru_RU: "Дебутстрап репозиторий"
url: 'deb https://download.astralinux.ru/astra/stable/1.8_x86-64/repository-main/ 1.8_x86-64 main contrib non-free'
# sources:
# - repo:
# name: # Cекция для указания имени в графическом интерфейсе (опционально)
# default: 'Extended repository'
# ru_RU: 'Расширенный репозиторий'
# url: 'deb https://download.astralinux.ru/astra/stable/1.8_x86-64/repository-extended/ 1.8_x86-64 main contrib non-free non-free-firmware'
# - repo:
# name:
# default: 'Development repository'
# ru_RU: 'Средства разработки'
# url: 'deb https://download.astralinux.ru/astra/stable/1.8_x86-64/repository-devel/ 1.8_x86-64 main contrib non-free non-free-firmware'
# Ядро, которое будет установлено
kernel-package: 6.1.50-1-generic
# Список компонентов системы (наборов пакетов), которые будут установлены. Помимо пакетов, входящих в явно указанные компоненты, будут установлены пакеты, входящие в компонент hidden.
# Список и состав доступных компонентов можно получить выполнив на установленной ОС команды tasksel и tasksel --task-packages <имя_компонента>.
tasks:
- Base
- Fly
# - Internet
# - Office
# - Graphics
# - Multimedia
# - Virtualization
# - Games
# - Ufw
# - Fly-ssh
# Дополнительные пакеты для установки. Имена пакетов перечисляются в одной строке в кавычках через пробел:
# packages: 'fly-passwd lshw seahorse bind9-dnsutils'
# Идентификатор режима защищенности, который будет применен к устанавливаемой системе (в данном примере будет применен максимальный режим)
mode: 2
# Список дополнительных настроек (настройки безопасности), которые будут применены к устанавливаемой системе
features:
- astra-mic-control # Мандатный контроль целостности
- astra-mac-control # Мандатное управление доступом
- astra-ptrace-lock # Запрет трассировки ptrace
- astra-sudo-control # Запрос пароля для команды sudo
# - astra-digsig-control # Замкнутая программная среда
# - astra-secdel-swapwiper # Очистка освобождаемой внешней памяти
# - astra-nobootmenu-control # Запрет вывода меню загрузчика
# - astra-nochmodx-lock # Запрет установки бита исполнения
# - astra-interpreters-lock # Запрет исполнения скриптов пользователя
# - astra-macros-lock # Запрет исполнения макросов пользователя
# - astra-console-lock # Запрет консоли
# - astra-ulimits-control # Системные ограничения ulimits
# - astra-noautonet-control # Запрет автоматической настройки сети
# - astra-installer-localtime-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
# Возможна установка ОС в указанный каталог.
# Для этого:
# 1. Вместо секции storage: следует использовать секцию disk:
# 2. Использовать опцию target_path, указывающую каталог в который будет произведена установка.
# Например:
#disk:
#target_path: '/tmp/inst'
storage:
# gpt: true # Выбор типа таблицы разделов. В данном примере не используется, так как далее для разметки диска используется опция confg,
# позволяющая детально задать шаблон разметки.
# Строки шаблона должны быть разделены последовательностью из двух символов "\n" (новая строка). Опция config и шаблон разметки:
config: "
ignoredisk --only-use=*
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"
Краткая справка по параметрам preseed для разметки диска:
- ignoredisk --drives=<список_имен_устройств> — параметр, исключающий указанные устройства из разметки. Исключаемые диски указываются как список в значении опции –drives. Может использоваться с опцией --only-use, указывающей, что размечать надо только перечисленные в списке дики (вместо списка дисков можно указать символ *, что обозначает "использовать все диски"). Примеры:
ignoredisk --drives=sda,sdb,sdc ignoredisk --only-use=* ignoredisk --only-use=disk/by-id/dm-uuid-mpath-12345
- clearpart — параметр, указывающий какие дисковые разделы следует удалить. Опции:
- --all — удалить все дисковые разделы.
- --drives — удалять дисковые разделы на указанных дисках.
- --list=<список> — удаляет указанные в списке дисковые разделы.
- --disklabel=<тип> — тип создаваемой таблицы разделов (для платформы x86-64 поддерживаются типы ms-dos и gpt).
- reqpart — автоматическое создание дисковых разделов, требуемых платформой. Например, для платформы x86-64 с загрузкой UEFI /boot/efi, или biosboot с загрузкой BIOS. Опции:
- --add-boot — создавать отдельный дисковый раздел для каталога /boot.
- bootloader — параметр указывает порядок размещения загрузчика. Опции:
- --location=<размещение> — размещение загрузчика. Допустимые значения:
- mbr — размещение в MBR (главной загрузочной записи), применяется по умолчанию;
- partition — размещение в дисковом разделе, содержащем ядро ОС;
- none — не размещать загрузчик.
- --append=<строка> — добавить указанную строку в параметры загрузки ядра;
- --password=<пароль> – добавить указанный пароль как пароль GRUB;
- --location=<размещение> — размещение загрузчика. Допустимые значения:
- part — создание дискового раздела.
- указание точки монтирования:
- /<путь> — точка монтирования в файловой системе, например /boot;
- swap — раздел для системы подкачки;
- raid.<идентификатор> — раздел программного RAID;
- pv.<идентификатор> — физический том LVM;
- biosboot — раздел для загрузчика BIOS;
- --asprimsary — создавать раздел как первичный (для таблицы разделов MS-DOS).
- --grow — раздел занимает всё свободное место, но нее более, чем указано в опции --maxsize.
- --maxsize=<число> — максимальный размер раздела при использовании опции --grow.
- --label=<метка> — метка дискового раздела. Если такая метка уже использована, то генерируется новая.
- --fstype=<тип> — тип дискового раздела (ext4, ext3, ext2, xfs, btrfs, swap, vfat).
- --size=<число> — размер дискового раздела.
- --ondisk=<> — устройство для размещения дискового раздела, например /dev/sda.
- volgroup <имя_группы> <физический_том> — создание группы томов LVM.
- logvol <точка_монтирования> — создание логического тома LVM. Обязательная опция - точка монтирования. Опции:
- --fstype=<тип> — тип файловой системы (ext4, ext3, ext2, btrfs, swap, vfat).
- --name=<> — имя логического тома.
- --vgname=<группа> — имя группы томов.
- --recommended — определять размер тома автоматически.
- swapfile --path=<путь> — создать в указанном каталоге файл для размещение области подкачки. Опции:
- --recommended — автоматически выбрать размер создаваемого файла.
- zerombr — очистка всех дисков с неизвестными форматами (в т.ч. с поврежденными данными).
- указание точки монтирования:
Примеры рецептов разметки дисков для установки на "старые" компьютеры
Данный рецепт разметки дисков позволяет полностью стереть старую разметку LVM и создать новую, использующую то же названия группы томов LVM. Рецепт также применим для компьютеров, использующих несколько дисковых накопителей.
ignoredisk --only-use=*
clearpart --all --disklabel=gpt
reqpart
bootloader --location=partition
part /boot --label=boot --fstype=ext2 --size=1024 --asprimary --ondisk=/dev/sda
part pv.lvm_part --grow --asprimary --ondisk=/dev/sda
volgroup VG pv.lvm_part
logvol / --fstype=ext4 --name=lv_root --vgname=VG --recommended
logvol /home --fstype=ext4 --name=lv_home --vgname=VG --recommended
Вариант рецепта, обеспечивающий разметку в соответствии со статьей Рекомендации по установке Astra Linux Special Edition x.7 на клиентские компьютеры (может требоваться для перехода на дальнейшие очередные обновления). Особенности рецепта:
- корневая файловая система и файловая система размещаются в отдельных логических томах;
- резервируется неразмеченная область размером 60 ГБ (61 440 МБ);
- размер логического тома для корневой файловой системы — 60 ГБ (61 440 МБ), файловая система /home занимает всё оставшееся место (опция --grow).
Рецепт:
ignoredisk --only-use=* clearpart --all --disklabel=gpt reqpart bootloader --location=partition part /boot --label=boot --fstype=ext2 --size=1024 --asprimary --ondisk=/dev/sda part pv.lvm_part --grow --asprimary --ondisk=/dev/sda volgroup VG pv.lvm_part --reserved-space=61440 logvol / --fstype=ext4 --name=lv_root --vgname=VG --recommended --size 61440 logvol /home --fstype=ext4 --name=lv_home --vgname=VG --recommended --grow