Данная статья применима к:
- 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:
Установка и настройка службы 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 располагается в файле debian-installer/grub/grub.cfg. Пример меню:
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 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 с включенным МКЦ.
Для применения сделанных изменений перезапустить службы:
sudo systemctl restart isc-dhcp-server # если используется
sudo systemctl restart tftpd-hpa