Операционная система ЗОСРВ «Нейтрино» > Руководство пользователя > Инструкции по установке > Описание различных способов установки > Сетевая загрузка устройств



Сетевая загрузка устройств

Инструкция по сетевой загрузке образов операционной системы

Раздел предназначен для разработчиков, системных администраторов и администраторов безопасности автоматизированных систем.

Подразумевается, что читатель статьи полностью освоил технологию создания загрузочных образов, а загрузочный сервер функционирует под управлением ОС Linux.

Содержание

Загрузка через PXE (Preboot eXecution Environment, только для x86)
Загрузка BIOS-систем
Загрузка UEFI-систем
Загрузка по протоколу AoE (ATA over Ethernet)
Загрузка устройств, использующих u-boot по протоколу TFTP (Trivial File Transfer Protocol)

Загрузка через PXE (Preboot eXecution Environment, только для x86)

Сетевая загрузка различных систем с архитектурой x86 может отличаться. Рассмотрим все доступные сценарии.

Загрузка BIOS-систем

Для загрузки через PXE (x86) на загрузочном сервере должны быть развернуты загрузчик pxqldr и загрузочный образ, соответствующие редакции используемой ЗОСРВ «Нейтрино». Задача загрузчика - выдать конкретным устройствам загрузочный образ по их MAC-адресу. Имя загрузочного образа должно соответствовать MAC-адресу, написанному большими буквами без знаков препинаний.

Технология PXE опирается на DHCP и TFTP сервер. В рассматриваемом случае они являются одним физическим устройством. Загрузчик и образ должны размещаться в одном и том же каталоге на загрузочном сервере (TFTP).


Caution: Загрузчик pxqldr не входит в штатную поставку ОС и предоставляется отдельно по запросу. Использование версий загрузчика, которые могут быть найдены в открытом доступе, имеет крайне высокий риск несовместимости.

Для успешной загрузки устройство и сервер должны быть в одной подсети, на нем должен быть активирован режим загрузки по PXE.

Профиль устройства должен быть добавлен в настройки DHCP сервера, чтобы ему присваивался IP из нужной подсети. Кроме того, для каждого загружаемого устройства на DHCP сервере должны быть настроены дополнительные параметры (см. далее).

Настройка DHCP для подключения нового устройства


Caution: Настройка различных DHCP серверов может отличаться. В данной статье рассматривается лишь ISC DHCP.

Для подключения устройства на сервере DHCP необходимо указать 2 опции: адрес сервера с образами и загрузочный образ. Обычно это next-server (option 66) и filename (option 67), но next-server иногда не срабатывает и нужно также указать как option 150. Пример секции настройки устройства (адрес 172.16.9.100 здесь соответствует адресу загрузочного сервера, также являющегося DHCP / TFTP сервером):

host clientname {
hardware ethernet XX:XX:XX:XX:XX:XX;
fixed-address 172.16.9.XXX;
next-server 172.16.9.100;
option tftp-server-address 172.16.9.100;
option option-150 code 150 = ip-address;
option option-150 "172.16.9.100";
filename "pxqldr.bin";
option bootfile-name "pxqldr.bin";
}

Загрузка UEFI-систем

Для загрузки UEFI-систем указанную выше методику необходимо дополнить.

На TFTP-сервере необходимо создать директорию efi/boot и разместить в ней загрузчик ipl-uefi-tftp, однако, имя конечного файла должно быть bootx64.efi.


Caution: В состав ЗОСРВ «Нейтрино» редакции 2024 и всех предшествующих данный загрузчик не входит, но может быть предоставлен по запросу.

В настройках DHCP-сервера указываем путь до загрузчика: efi/boot/bootx64.efi.

Загрузчик ищет на TFTP-сервере конфигурационный файл по пути efi/kpda.XXXXXXXXXXXX/.uefi-bootconf, где XXXXXXXXXXXX – MAC адрес загружаемой системы. Если конфигурационного файла на сервере TFTP не существует или в конфигурационном файле .uefi-bootconf установлен параметр noboot=1, то осуществляется поиск по пути efi/kpda/.uefi-bootconf, если и этого конфигурационного файла не существует или в нём установлен параметр noboot=1, то загрузка останавливается.

Список образов для загрузки строится на основании добавленных с помощью параметра image=name образов в конфигурационном файле .uefi-bootconf в порядке добавления в конфигурационный файл. По умолчанию, по истечении таймаута, будет загружен первый образ в списке.

Пример содержимого конфигурационного файла efi/kpda.7085C252F04B/.uefi-bootconf:

# Boot config file
noboot=0
timeout=0
image=7085C252F04B

В этом случае загрузочный образ должен быть размещен по адресу efi/kpda.7085C252F04B/7085C252F04B.

Загрузка по протоколу AoE (ATA over Ethernet)

Обычно этот механизм загрузки используется загрузчиком boot в устройствах МЦСТ Эльбрус.

Для загрузки через AoE на загрузочном сервере запущен соответствующий демон, его настройка лежит вне тематики данной статьи. Будем считать, что каталог, в который смонтирован виртуальный жесткий диск именуется /srv/aoe/. Именно в этом каталоге должны размещаться загрузочные образы систем.

Для загрузки устройство и сервер должны быть в одной подсети. Для этого профиль устройства должен быть добавлен в настройки DHCP сервера с присвоением ему IP-адреса из нужной подсети. Кроме того, устройство и сервер должны быть в одном сегменте сети (широковещательном домене).

Настройка загрузчика boot в устройствах МЦСТ Эльбрус

Подключить отладочный UART (типичные настройки 115200 8N1) и включить устройство.

Дождаться приглашения:

Autoboot in 03 sec. PRESS SPACE TO DISABLE IT.

Нажать пробел, чтобы перейти в BOOT меню:

BOOT SETUP Press command letter, or press 'h' to get help

Нажать ~, чтобы перейти в ENHANCED меню:

:~ ENHANCED CMD MODE Enter command, 'help' to get help, or Esc to exit

Задать адрес AoE сервера:

# set aoe server major 0 # set aoe server minor 1

Перезагрузить устройство.

Запомнить номер AoE диска (10 в представленном выводе):

CPU#00: Starting file systems init: CPU#00: Done CPU#00: Search drive and partition by label or uuid succeed CPU#00: Drive [2]: SATA - PCI BUS[1]:DEV[3]:FUNC[0], MCST SATA COMBINED Port [0] - KINGSTON SMS200S3120G CPU#00: Partition [0]: Linux EXT2; CPU#00: Partition [1]: Unknown partition type: 0xb3 CPU#00: Drive [10]: AoE 0.1 BC:09:B4:2B:3B:18 Coraid EtherDrive vblade CPU#00: Partition [0]: Linux EXT2;

Нажать пробел, чтобы перейти в BOOT меню:

BOOT SETUP Press command letter, or press 'h' to get help

Нажать c, чтобы перейти в CHANGE BOOT меню:

:c ​ CHANGE BOOT PARAMETERS Current Settings: drive_number: '2' drive label: '' partition_number: '0' file system id: '' command_string: '' filename: '/boot.conf' initrdfilename: '' autoboot in: '0' ​ ​ To advance to next setting press ENTER. To skip setting press ESC

Задать номер диска AoE:

Enter drive number : 10

Нажать Enter:

Enter partition number: <Enter>

Нажать Enter:

Enter command string : <Enter>

Задать название загрузочного образа (каталог /srv/aoe, путь соответствует /):

Enter filename : /e2k-pc101-test.ifs

Нажать Enter:

Enter initrd file name: <Enter>

Задать тайм-аут:

Enter autoboot value : 3

Нажать m, чтобы сохранить настройки:

BOOT SETUP Press command letter, or press 'h' to get help :m Boot Parameters written to NVRAM

Перезагрузить устройство.

Загрузка устройств, использующих u-boot по протоколу TFTP (Trivial File Transfer Protocol)

Для загрузки через TFTP на сервере запущен соответствующий демон, который выдает устройствам загрузочный образ по IP-адресу, его настройка лежит вне тематики данной статьи. Обычно этот механизм загрузки используется загрузчиком u-boot.

Для загрузки устройство и сервер должны быть в одной подсети, на нем должны быть настроены параметры загрузки по TFTP. Переменные окружения u-boot, связанные с загрузкой по TFTP (команда printenv позволяет вывести список переменных и их значения):

Пример задания команд для загрузки устройства 172.16.9.10:

setenv ipaddr "172.16.9.10" setenv serverip "172.16.9.100" setenv bootcmd "tftp 0x000100000 ifs-mx6q-sabresmart.raw; go 0x000100000" saveenv boot

Команды u-boot, указанные выше:




Предыдущий раздел: Инструкции по установке