Оглавление |
---|
Информация | ||
---|---|---|
| ||
|
Предупреждение | ||
---|---|---|
| ||
|
Информация |
---|
PXE (англ.Preboot eXecution Environment) — среда для загрузки компьютеров с помощью сетевой карты без использования жестких дисков, компакт-дисков и других устройств, применяемых при загрузке операционной системы. Подробная информация об автоматической установке с помощью списка ответов: https://www.debian.org/releases/stretch/s390x/apbs01.html.ru |
Введение
Предполагается, что для выполнения загрузки по сети используется следующая конфигурация оборудования:
- все компьютеры находятся в одной локальной сети (в одном широковещательном домене);
- в этой сети имеются:
- настроенный DHCP-сервер, выдающий клиентским компьютерам не только сетевые IP-адреса, но и другие сетевые параметры (в частности, IP-адрес TFTP-сервера, с которого будет загружаться установочный образ). Далее для примера приводится установка и настройка DHCP-сервера, однако если в сети уже имеется собственный DHCP-сервер, то следует выполнить его настройку в соответствии с приведенными в статье инструкциями ;
- настроенный TFTP сервер, с которого можно загрузить установочные данные и файлы для первичной загрузки:
настроенные разделяемые сетевые ресурсы, из которых можно загружать пакеты. Для загрузки могут использоваться протоколы FTP или HTTP.
Предупреждение Это не совсем обычные репозитории пакетов: в обычных репозиториях пакетов нет загрузочных модулей ядра.
Чтобы необходимые модули были доступны при сетевой установке проще всего использовать в качестве разделяемых сетевых ресурсов примонтированные установочные диски (образы дисков).Для примера используются HTTP-репозитории.
Информация |
---|
В составе инфраструктуры используются РАЗНЫЕ источники данных, работающие по РАЗНЫМ протоколам, расположенные в РАЗНЫХ местах файловой системы, и, возможно, даже на разных серверах:
|
Информация |
---|
Для упрощения изложения далее предполагается, что сетевые службы DHCP, TFTP, HTTP располагаются на одном и том же компьютере. При необходимости эти службы могут быть установлены на разных компьютерах |
Как это работает:
- клиент подключается к сети и запрашивает IP-адрес, передавая в запросе информацию о собственной конфигурации;
- DHCP-сервер назначает клиенту IP-адрес и вместе с назначенным адресом передаёт клиенту дополнительные сетевые параметры, в том числа IP-адрес TFTP-сервера с необходимыми файлами сценариев установки;
- клиент подключается к TFTP-серверу и загружает файлы со сценариями установки;
- клиент выполняет установку в соответствии с полученными сценариями.
Предупреждение |
---|
Установка выполняется с заранее заданными фиксированными именами (имя хоста, имя пользователя, пароль пользователя). Рекомендуется после установки сменить имена и пароли. |
Установка и настройка сервера PXE
Установка пакетов
Установить необходимые пакеты:
Command |
---|
sudo apt install tftpd-hpa pxelinux syslinux |
Где:
- tftpd-hpa - TFTP-server;
- pxelinux - загрузчик для сетевой загрузки PXE;
- syslinux - загрузчик для сетевой загрузки DOS FAT / NTFS;
Настройка службы TFTP
Служба tftpd после установки запускается автоматически и сразу предоставляет доступ к каталогу /srv/tftp/, в котором далее и будут размещены файлы для сетевой загрузки.
Установка и настройка службы DHCP
Информация |
---|
Создание собственой службы DHCP требуется только в том случае, если в сети нет уже такой действующей службы. Если в сети уже имеется служба DHCP (DHCP-сервер), то следует внести в его настройку указанные ниже параметры в соответствии его с инструкциями по эксплуатации. |
Для создания собственного DHCP-сервера:
Установить пакет:
Command 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 8.8.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 ; if option architecture = 00:07 { filename "bootx64.efi"; } elsif option architecture = 00:09 { filename "bootx64.efi"; } else { 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; }
После внесения изменений в настройки перезапустить службу:
Command sudo systemctl restart isc-dhcp-server
Независимо от использующейся службы DHCP для загрузки по сети нужны следующие файлы:
- pxelinux.0;
- библиотеки syslinux;
- ядро ОС;
- специальный initrd.
Эти файлы находятся на установочном диске в каталоге netinst и для того, чтобы они могли быть переданы клиентам, они должны быть скопированы в каталог /srv/tftp/.
Для копирования файлов:
Для Astra Linux Special Edition (в примере ниже предполагается, что основной установочный диск находится в приводе компакт дисков) это копирование сделать командами:
Command 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, если образ установочного диска находится в файле ce212.iso:
Command sudo mkdir -p /srv/repo/ce/
sudo mount 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 из установленной ОС:
Command 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} /srv/tftp/
Создать каталог /srv/tftp/pxelinux.cfg/:
Command sudo mkdir -p /srv/tftp/pxelinux.cfg
Создать в этом каталоге файл /srv/tftp/pxelinux.cfg/default. Пример содержимого файла:
Блок кода ui menu.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 LABEL netinstall MENU LABEL Start Astra Linux SE 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/preseed.cfg interface=auto netcfg/dhcp_timeout=60 astra_install=1 vga=788 debian-installer/allow_unauthenticated=true nomodeset # Astra Linux Common Edition 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
Информация Начиная с обновления 1.7.4 при сетевой установке с технологического установочного диска (ТУД) автоматически вызывается интерактивный диалог настройки network-console, предоставляющий возможность переключения дальнейшего выполнения установки под удаленное управление с использованием протокола SSH. Если эта возможность не требуется (требуется полное завершение установки с помощью файла preseed без интерактивного взаимодействия), то отключить вызов network-console можно задав в файле выбора устанавливаемой ОС /srv/tftp/pxelinux.cfg/default параметр ядра network-console/enable=false, например:
Блок кода append initrd=se/initrd.gz network-console/enable=false
Информация При использовании приведенного выше файла по умолчанию загрузка клиента выполняется с локального жесткого диска. Это сделано для предотвращения повторной автоматической установки после завершения первой установки, или случайной установки на компьютер с уже установленной ОС, подключенный к этой же сети. Важные параметры:
hostname - имя хоста, которое будет использовано при автоматической установке ОС;
domain - имя домена ;
url - адрес, по которому должны быть доступны конфигурационные файлы. В данном примере используется протокол TFTP, однако можно использовать FTP или HTTP (файлы при этом должны быть размещены в соответствующих локациях).
append ... astra_install=1 - параметр ядра astra_install=1 необходим для корректной установки Astra Linux Special Edition с включенным МКЦ.
Для загрузки в режиме UEFI служит специальный EFI образ загрузчика grub. Для его установки:
Загрузить архив с образом с помощью web-браузера по ссылке: скачать. По умолчанию архив будет сохранен в подкаталоге Загрузки домашнего каталога;
Распаковать архив Загрузки/netinst.tar.gz в каталог /srv/tftp:
Command sudo tar xvf Загрузки/netinst.tar.gz -C /srv/tftp
Отредактировать конфигурационный файл /srv/tftp/debian-installer/amd64/grub/grub.cfg:
Блок кода if loadfont $prefix/font.pf2 ; then set gfxmode=800x600 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 "Boot default EFI bootloader" { set background_color=black regexp -s root '\((.+)\)' "$cmdpath" chainloader /EFI/Boot/Bootx64.efi } # Установка Astra Linux Special Edition menuentry 'Install Astra Linux SE' { set background_color=black linux /se/linux modprobe.blacklist=evbug debian-installer/allow_unauthenticated=true auto=true priority=critical debian-installer/locale=en_US console-keymaps-at/keymap=ru hostname=test2 domain=my.dom astra-license/license=true url=tftp://192.168.56.1/se/preseed.cfg interface=auto netcfg/dhcp_timeout=60 nomodeset initrd /se/initrd.gz } # Установка Astra Linux Common Edition menuentry 'Install Astra Linux CE' { set background_color=black linux /ce/linux modprobe.blacklist=evbug debian-installer/allow_unauthenticated=true auto=true priority=critical debian-installer/locale=en_US console-keymaps-at/keymap=ru hostname=test2 domain=my.dom astra-license/license=true url=tftp://192.168.56.1/ce/preseed.cfg interface=auto netcfg/dhcp_timeout=60 nomodeset initrd /ce/initrd.gz }
При редактировании следует указать правильное имя домена и пути поиска файлов. При этом, несмотря на указание в имени пути протокола FTP, в самом деле используется протокол TFTP, что следует учесть, указывая имя файла. По умолчанию в файле задана загрузка образа EFI из EFI/Boot/Bootx64.efi (на некоторых системах может быть иначе). Это сделано для того, чтобы избежать повторной автоматической установки после завершения первой установки, или случайной установки на компьютер с уже установленной ОС, подключенный к этой же сети;
Перезапустить службы:
Command sudo systemctl restart isc-dhcp-server # если используется
sudo systemctl restart tftpd-hpa