Данная статья применима к:
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.8)
- Astra Linux Special Edition РУСБ.10015-01 и РУСБ.10015-10 (очередное обновление 1.7)
Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
Astra Linux Special Edition РУСБ.10015-16 исп. 1
Astra Linux Common Edition 2.12
Внимание!
- Установка Astra Linux в автоматическом режиме означает автоматическое принятие лицензионного соглашения (см. Лицензионные соглашения и политика лицензирования ГК Astra Linux).
- При установке в автоматическом режиме Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) и Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7) и более поздних обновлений выбор уровня защищенности должен осуществляться в соответствии с условиями действующего лицензионного договора. Подробнее про уровни защищенности см. Astra Linux Special Edition (очередное обновление x.7): Ключевые изменения в комплексе средств защиты информации.
PXE (англ.Preboot eXecution Environment) — среда для загрузки компьютеров с помощью сетевой карты без использования жестких дисков, компакт-дисков и других подобных устройств. Частным случаем автоматической загрузки является установка ОС по сети. Подробная информация об автоматической установке ОС с помощью списка ответов: Автоматическая установка Astra Linux Special Edition 1.7.
Введение
Предполагается, что для выполнения загрузки по сети используется следующая конфигурация оборудования:
- Все компьютеры находятся в одной локальной сети (в одном широковещательном домене).
- В этой сети имеются:
- Настроенный DHCP-сервер (см. DHCP: служба isc-dhcp-server и DHCP: служба kea), выдающий клиентским компьютерам не только сетевые IP-адреса, но и другие сетевые параметры (в частности, IP-адрес TFTP-сервера, с которого будут загружаться первичные данные для дальнейшего развертывания ОС). Далее для примера приводится установка и настройка DHCP-сервера, однако если в сети уже имеется собственный DHCP-сервер, то следует выполнить его настройку в соответствии с приведенными в статье инструкциями и инструкциями к используемому ПО.
- Настроенный TFTP сервер, с которого можно загрузить первичные данные и файлы для первичной загрузки:
Настроенные разделяемые сетевые ресурсы, из которых можно загружать файлы, в том числе сетевые репозитории пакетов. Для предоставления этих ресурсов могут использоваться различные серверы. например, интернет-репозитории Astra Linux. Для загрузки могут использоваться протоколы FTP или HTTP (см. Создание собственного/служебного репозитория).
В обычных репозиториях пакетов нет загрузочных модулей ядра. Чтобы необходимые модули были доступны при сетевой установке проще всего использовать в качестве разделяемых сетевых ресурсов примонтированные установочные диски (образы дисков). Также загрузочные модули можно указать в меню выбора параметров загрузки.Для примера далее используются HTTP-репозитории:
В общем случае в составе инфраструктуры PXE используются РАЗНЫЕ источники данных, работающие по РАЗНЫМ протоколам, расположенные в РАЗНЫХ местах файловой системы, и, возможно, даже на разных серверах:
- На начальном этапе загрузки по сети это источник установочных файлов и файлов для первичной загрузки, работающий по протоколу TFTP. Далее в примерах эти данные размещаются в каталоге /srv/tftp/ и его подкаталогах.
- Далее — это источники, работающие по протоколу HTTP (или FTP). Размещаются, например, в каталоге /srv/ftp/repo или в каталоге /var/www/html/repo или доступны пр сети. Подробнее про создание и настройку таких репозиториев см. статью Создание локальных и сетевых репозиториев, раздел Astra Linux Special Edition: создание репозитория из ISO-образов установочных дисков.
Как это работает:
- Компьютер-клиент подключается к сети и запрашивает для себя IP-адрес, передавая в запросе информацию о собственной конфигурации.
- DHCP-сервер выбирает и передает компьютеру-клиенту его IP-адрес. Вместе с адресом передаются дополнительные сетевые параметры, в том числе IP-адрес TFTP-сервера с необходимыми для установки ОС файлами.
- Компьютер-клиент подключается к TFTP-серверу и загружает базовый загрузчик. При этом используется протокол TFTP.
- Компьютер-клиент запускает базовый загрузчик, который используя протокол TFTP загружает свой конфигурационный файл, и выполняет предписанные этим файлом действия (вывод интерактивного меню, загрузка образа и т.д.). При этом могут загружаться дополнительные файлы для чего используются протоколы FTP, HTTP, HTTPS и могут использоваться разные серверы.
Установка и настройка сервера PXE
Установка пакетов
Установить необходимые пакеты:
- tftpd-hpa — TFTP-server;
- pxelinux — файлы для традиционной сетевой загрузки;
- syslinux — файлы (библиотеки) для организации меню;
- grub-efi-amd64-bin — файлы для загрузки EFI;
- console-cyrillic — шрифты, требуются если предполагается использовать кириллицу в меню традиционной загрузки;
- дополнительно может понадобиться установить и настроить:
- сервер FTP;
- сервер HTTP/HTTPS;
- сервер времени (если в сети не доступен ранее настроенный сервер), подробнее см. статью Службы синхронизации времени в Astra Linux.
Настройка службы TFTP
Служба tftpd после установки запускается автоматически и сразу предоставляет доступ к каталогу /srv/tftp/, в котором далее и будут размещены файлы для сетевой загрузки. Дополнительной настройки может требовать доступ к службе TFTP из-под NAT, см. ниже.
Настройка работы службы TFTP для доступа из-под NAT
Если клиент TFTP находится в сети NAT, а сервер TFTP находится вне этой сети, то для предоставления доступа клиента к серверу TFTP на сервере NAT может понадобиться выполнить дополнительные настройки:
- Загрузить модуль ядра nf_nat_tftp:sudo modprobe nf_nat_tftp
- Создать правило iptables для пересылки пакетов TFTP через NAT :sudo iptables -t raw -I PREROUTING -j CT -p udp -m udp --dport 69 --helper tftp
- Для того, чтобы сделанные изменения сохранялись после перезагрузки:
- Для автоматической загрузки модуля создать файл с произвольным именем и расширением conf в каталоге /etc/modules-load.d и указать в нем имя загружаемого модуля, например файл /etc/modules-load.d/nf_nat_ftp.conf:sudo echo "nf_nat_ftp" | sudo tee /etc/modules-load.d/nf_nat_ftp.conf
- Для сохранения правила iptables см. Сохранение и восстановление правил iptables.
- Для автоматической загрузки модуля создать файл с произвольным именем и расширением conf в каталоге /etc/modules-load.d и указать в нем имя загружаемого модуля, например файл /etc/modules-load.d/nf_nat_ftp.conf:
Настройка службы FTP
Для настройки службы FTP можно использовать инструкцию Использование протокола FTP. При настройке необходимо учесть, что для использования FTP для загрузки по сети должен быть разрешен анонимный доступ, см. FTP для анонимных пользователей: только чтение.
Установка и настройка службы DHCP
Создание собственной службы DHCP требуется только в том случае, если в сети нет уже такой действующей службы. Если в сети уже имеется служба DHCP (DHCP-сервер), то следует внести в его настройку указанные ниже параметры в соответствии с инструкциями по эксплуатации используемой службы.
Минимальная настройка службы должна обеспечивать назначение динамических адресов компьютерам-клиентам и передачу информации для первичной загрузки.
Служба isc-dhcp-server
Для создания собственного DHCP-сервера:Установить пакет:
sudo apt install isc-dhcp-serverНастроить пакет:
В файле /etc/default/isc-dhcp-server указать используемый сетевой интерфейс :
INTERFACESv4="eth0"
Настроить конфигурацию службы в файле /etc/dhcp/dhcpd.conf. В данной конфигурации dhcp сервер будет определять тип клиента (UEFI или Legacy BIOS) и передавать ему нужный загрузчик:
authoritative; option domain-name "my.dom"; default-lease-time 600; max-lease-time 7200; log-facility local7; option domain-name-servers 77.88.8.8; allow booting; allow bootp; option fqdn.no-client-update on; option fqdn.rcode2 255; option pxegrub code 150 = text ; next-server 192.168.56.1; option architecture code 93 = unsigned integer 16 ; # Опция архитектуры 0x0007 - загрузка EFI # Опция архитекторы 0x0000 - традиционная загрузка if option architecture = 00:07 { filename "debian-installer/grub/x86_64-efi/core.efi"; } elsif option architecture = 00:00 { filename "pxelinux.0"; } subnet 192.168.56.0 netmask 255.255.255.0 { range 192.168.56.20 192.168.56.250; option broadcast-address 192.168.56.255; option routers 192.168.56.1; option subnet-mask 255.255.255.0; }
После внесения изменений в настройки перезапустить службу:
sudo systemctl restart isc-dhcp-server
Служба kea
Конфигурационные файлы службы kea находятся в каталоге /etc/kea. Пример конфигурационного файла /etc/kea/dhcp4.conf:
Подготовка файлов
Набор файлов, необходимых для сетевой загрузки, не зависит от используемой службы DHCP. Важно только чтобы эта служба выдавала верные сведения о расположении файлов.
Подготовка комплекта файлов для загрузки
Подготовка комплекта файлов для загрузки EFI
Для настройки автоматической установки при использовании загрузки EFI:
- Установить пакет grub-efi-amd64-bin.
- Выполнить команду:sudo grub-mknetdir --net-directory=/srv/tftp --subdir=/debian-installer/grubгде /srv/tftp — корневой каталог сетевого ресурса, предоставляемого TFTP-сервером.
- Также для первичной загрузки понадобятся файлы с ядром ОС и с образом корневой файловой системы (также используются для традиционной загрузки):
- файлы vmlinuz и initrd — в Astra Linux Special Edition x.8, доступны на установочных дисках в корневом каталоге;
- файлы linux и initrd.gz — в более ранних обновлениях, доступны на установочных дисках в каталоге netinst/debian-installer/amd64.
- Если в загрузочном меню планируется использовать символы кириллицы, то понадобится файл со шрифтом /usr/share/grub/unicode.pf2, входящий в состав пакета grub-common. Этот шрифт использует стандартную кодировку UTF8. Далее в примерах предполагается, что файл /usr/share/grub/unicode.pf2 скопирован в файл /srv/tftp/debian-installer/grub/fonts/unicode.pf2.
Подготовка комплекта файлов для традиционной загрузки
Для традиционной загрузки по сети нужны следующие файлы:
- Базовый загрузчик pxelinux.0. Доступен в составе пакета pxelinux, файл /usr/lib/PXELINUX/pxelinux.0.
- Библиотеки syslinux. Необходимы для работы меню. Доступны в составе пакета syslinux в каталоге /usr/lib/syslinux/modules. Примерный набор необходимых библиотек:
- ldlinux.c32 — библиотека для загрузки меню;
- menu.c32 — библиотека реализации меню;
- chain.c32 — библиотека для реализации вложенных меню;
- vesamenu.c32 — библиотека для реализации альтернативного меню (меню vesa);
- libcom.c32, libutil.c32 — вспомогательные библиотеки.
- Загрузочное меню — должно быть создано вручную, см. далее.
- Ядро ОС и образ корневой файловой системы (также используются для загрузки EFI):
- файлы vmlinuz и initrd — в Astra Linux Special Edition x.8, доступны на установочных дисках в корневом каталоге;
- файлы linux и initrd.gz — в более ранних обновлениях, доступны на установочных дисках в каталоге netinst/debian-installer/amd64.
- Файл UniCyr_8x16.psf — шрифт с поддержкой кириллицы для меню традиционной загрузки. Доступен в составе пакета console-cyrillic (файл /usr/share/console-cyrillic/UniCyr_8x16.psf). Шрифт использует кодировку CP866, то есть для его применения кириллицу следует вводить не в стандартной кодировке UTF8, а в кодировке CP866 (в терминах текстового редактора kate - IBM688). Далее в примерах предполагается, что шрифт скопирован в файл /srv/tftp/pxelimux.cfg/UniCyr_8x16.psf.
Для копирования файлов с установочных дисков эти диски следует примонтировать, например:
Для Astra Linux Special Edition, если основной установочный диск находится в приводе компакт дисков:
sudo mkdir -p /srv/repo/se/
sudo mount /dev/sr0 /srv/repo/se/
sudo mkdir -p /srv/tftp/se/
sudo cp /srv/repo/se/netinst/linux /srv/tftp/se/
sudo cp /srv/repo/se/netinst/initrd.gz /srv/tftp/se/
Для Astra Linux Common Edition, если образ установочного диска находится в файле /srv/ce212.iso:
sudo mkdir -p /srv/repo/ce/
sudo mount /srv/ce212.iso /srv/repo/ce
sudo mkdir -p /srv/tftp/ce/
sudo cp /srv/repo/ce/netinst/linux /srv/tftp/ce/
sudo cp /srv/repo/ce/netinst/initrd.gz /srv/tftp/ce/
Скопировать в каталог /srv/tftp файл pxelinux.0 и необходимые библиотеки syslinux из установленной ОС:
sudo cp /usr/lib/PXELINUX/pxelinux.0 /srv/tftp/
sudo cp /usr/lib/syslinux/modules/bios/{chain.c32,ldlinux.c32,libcom32.c32,libutil.c32,menu.c32,vesamenu.c32} /srv/tftp/
Создание загрузочного меню
В загрузочном меню указывается:
- текстовая информация для идентификации элементов меню;
- загружаемые модули, в том числе файлы ядра и файловой системы:
- vmlinuz и initrd — в Astra Linux Special Edition x.8, доступны на установочных дисках в корневом каталоге;
- linux и initrd.gz — в более ранних обновлениях, доступны на установочных дисках в каталоге netinst/debian-installer/amd64;
- параметры загружаемого ядра и параметры автоматической настройки, в том числе:
- параметры, которые при обычной установке должны быть заданы до установки сетевого подключения:
- настройки локализации;
- настройки клавиатуры;
- имя компьютера;
- первичные сетевые настройки;
- для автоматической установки — файл со сценарием автоматической установки (файл preseeed);
- для загрузки live-образа — файл этого образа.
- параметры, которые при обычной установке должны быть заданы до установки сетевого подключения:
Подробнее про файлы preseed см.:
- Автоматическая установка Astra Linux Special Edition x.8
- Пример файла preseed для Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.7
Создание загрузочного меню для загрузки EFI
Загрузочное меню для загрузки EFI располагается в файле /srv/tftp/debian-installer/grub/grub.cfg (при использовании для tftp каталога /srv/tftp/). Пример меню:
if loadfont $prefix/fonts/unicode.pf2 ; then # set gfxmode=800x600 set gfxmode=1920x1080 set gfxpayload=keep insmod efi_gop insmod efi_uga insmod video_bochs insmod video_cirrus insmod gfxterm insmod png terminal_output gfxterm fi # Таймаут для выполнения автоматической загрузки set timeout=50 if background_image /isolinux/splash.png; then set color_normal=light-gray/black set color_highlight=white/black else set menu_color_normal=cyan/blue set menu_color_highlight=white/blue fi menuentry "Загрузка с диска" { insmod chain insmod disk insmod part_gpt insmod part_mbr search --set=root --file /efi/astralinux/grubx64.efi chainloader /efi/astralinux/grubx64.efi boot } submenu "Установка и live-загрузка Astra Linux Special Edtion 1.8 EFI" { submenu "Установка Astra Linux Special Edtion 1.8 EFI" { menuentry "Установка Astra Linux Special Edtion 1.8 EFI" { set background_color=red set gfxpayload=keep linux se/vmlinuz quiet modprobe.blacklist=evbug boot=live astra_install=1 fetch=ftp://192.168.56.1/repo/01.08/01/live/filesystem.squashfs astra-installer-preseed=tftp://192.168.56.1/astra-installer-preseed.yaml initrd se/initrd } } submenu "Live-загрузка Astra Linux Special Edtion 1.8 EFI" { menuentry "Установка Live-Astra Linux Special Edtion 1.8 EFI" { set background_color=red set gfxpayload=keep linux se/vmlinuz modprobe.blacklist=evbug boot=live astra-install=0 fetch=ftp://192.168.56.1/repo/01.08main/live/filesystem.squashfs nologin username=astra-live initrd se/initrd } } } submenu "Astra Linux предыдущие версии" { menuentry 'Install Astra Linux SE 1.7' { set background_color=black set root=(tftp) linux se/linux modprobe.blacklist=evbug auto=true priority=critical debian-installer/locale=en_US console-keymaps-at/keymap=ru hostname=se17 domain=my.dom astra-license/license=true url=tftp://192.168.56.1/01.07/preseed-lvm.lvm.cfg interface=auto netcfg/dhcp_timeout=60 mirror/ftp/directory=/repo/1.07/main astra_install=1 initrd se/initrd.gz } menuentry 'Install Astra Linux CE 2.12.42' { set background_color=black linux /ce/linux modprobe.blacklist=evbug auto=true priority=critical debian-installer/locale=en_US console-keymaps-at/keymap=ru hostname=ce212 domain=my.dom astra-license/license=true url=tftp://192.168.56.10/2.12/preseed.cfg interface=auto netcfg/dhcp_timeout=60 initrd ce/initrd.gz } }
Создание загрузочного меню для традиционной загрузки
Создать каталог /srv/tftp/pxelinux.cfg/:
sudo mkdir -p /srv/tftp/pxelinux.cfg
Создать в этом каталоге файл /srv/tftp/pxelinux.cfg/default. Пример содержимого файла:
Содержимое файла может зависеть от аппаратной конфигурации компьютеров, на которых выполняется установке.
ui menu.c32 # или альтернативная реализация меню: # ui vesamenu.c32 PROMPT 0 MENU TITLE PXE Boot menu # Таймаут для выполнения автоматической загрузки TIMEOUT 50 DEFAULT local LABEL local MENU LABEL Boot from local drive kernel chain.c32 append hd0 # Astra Linux Special Edition 1.8 # - ядро (kernel) находится в файле se/vmlinuz, # - initrd находится в файле se/initrd, # - файл автоматической установки (preseed) находится в файле se/preseed18.cfg LABEL netinstall MENU LABEL Start Astra Linux SE 1.8 net install kernel se/vmlinuz append initrd=se/initrd modprobe.blacklist=evbug auto=true priority=critical debian-installer/locale=en_US console-keymaps-at/keymap=ru hostname=se16 domain=my.dom astra-license/license=true url=tftp://192.168.56.1/se/preseed18.cfg interface=auto netcfg/dhcp_timeout=60 astra_install=1 vga=788 debian-installer/allow_unauthenticated=true nomodeset # Astra Linux Special Edition # - ядро (kernel) находится в файле se/linux, # - initrd находится в файле se/initrd.gz, # - файл автоматической установки (preseed) находится в файле se/preseed17.cfg LABEL netinstall MENU LABEL Start Astra Linux SE 1.7 net install kernel se/linux append initrd=se/initrd.gz modprobe.blacklist=evbug auto=true priority=critical debian-installer/locale=en_US console-keymaps-at/keymap=ru hostname=se16 domain=my.dom astra-license/license=true url=tftp://192.168.56.1/se/preseed17.cfg interface=auto netcfg/dhcp_timeout=60 astra_install=1 vga=788 debian-installer/allow_unauthenticated=true nomodeset # Astra Linux Common Edition # - файлы находятся в каталоге ce, имена файлов такие же, как для 1.7 LABEL netinstall MENU LABEL Start Astra Linux CE net install kernel ce/linux append initrd=ce/initrd.gz modprobe.blacklist=evbug auto=true priority=critical debian-installer/locale=en_US console-keymaps-at/keymap=ru hostname=ce212 domain=my.dom astra-license/license=true url=tftp://192.168.56.1/ce/preseed.cfg interface=auto netcfg/dhcp_timeout=60 vga=788 debian-installer/allow_unauthenticated=true nomodeset
Важные параметры:
hostname - имя хоста, которое будет использовано при автоматической установке ОС;
domain - имя домена ;
url - адрес, по которому должны быть доступны конфигурационные файлы. В данном примере используется протокол TFTP, однако можно использовать FTP или HTTP (файлы при этом должны быть размещены в соответствующих локациях).
append ... astra_install=1 - параметр ядра astra_install=1 необходим для корректной установки Astra Linux Special Edition с включенным МКЦ.