Baikal-M/Network installation

Материал из ALT Linux Wiki
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


Настройка установки по сети alt-server-10.0-aarch64

Общие замечания

В качестве сервера, с которого производится установка, выбран одноплатник RPi4. Это сделано из соображений его доступности и удобства. Предполагаю, что использование в качестве сервера для сетевой установки другого компьютера, в том числе с другой архитектурой, не имеет принципиальных отличий.

Целевая система для установки alt-server-10.0-aarch64 - TF307-MB-S-D c прошивкой из SDK-M 5.3

После настройки на RPi4 сервера для установки по сети нужно соединить Ethernet порты RPi4 и TF307 напрямую патчкордом.

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

На RPi4 установлен образ:

http://ftp.altlinux.org/pub/distributions/ALTLinux/p10/images/workstation/aarch64/alt-workstation-10.0-rpi4-aarch64.img.xz

Контрольная сумма MD5: dd9941c775eff9a1321069a0b16e9351

В качестве DHCP и TFTP сервера используется dnsmasq. Он присутствует в образе alt-workstation-10.0-rpi4-aarch64.img.xz

В качестве HTTP сервера используется nginx

В качестве загрузчика для ядра и initrd используется iPXE.

Нужный загрузчик содержится в пакете ipxe-bootimgs

apt-get update
apt-get install ipxe-bootimgs nginx

Файлы, нужные для загрузки, будут находиться в /var/lib/tftpboot

Образ будет в подкаталоге aarch64.

ISO образ будет смонтирован в подкаталог alt-server-10.0-aarch64

Если каталога нет, нужно создать:

mkdir -p /var/lib/tftpboot/aarch64/alt-server-10.0-aarch64

Копирование iPXE:

cp /usr/share/ipxe/snponly-arm64.efi /var/lib/tftpboot

Нужно положить образ

http://ftp.altlinux.org/pub/distributions/ALTLinux/p10/images/server/aarch64/alt-server-10.0-aarch64.iso

контрольная сумма MD5: c2871c0271033461e981c7eb88887dc9

в каталог /var/lib/tftpboot/aarch64

Монтирование образа:

mount -t iso9660 -o loop,ro /var/lib/tftpboot/aarch64/alt-server-10.0-aarch64.iso /var/lib/tftpboot/aarch64/alt-server-10.0-aarch64/

Настрока статическиого IP на RPi4 с помощью etcnet

cd /etc/net/ifaces/eth0
mv options options_old

Новый файл options:

TYPE=eth
DISABLED=no
NM_CONTROLLED=no
BOOTPROTO=static
CONFIG_IPV4=YES

Новый файл ipv4address:

192.168.1.1/24

Для активации настроек:

service network restart

Настройка dnsmasq

Запрос по DHCP делает и UEFI и iPXE

При этих запросах должны быть переданы разные имена файлов для сетевой загрузки:

  • при запросе от UEFI - исполняемый файл iPXE (snponly-aarch64.efi)
  • при запросе от iPXE - скрипт с описанием загрузки образа (config-aarch64.ipxe)

Файл /etc/dnsmasq.conf

interface=eth0 # serve requests from this interface

port=0 # disable DNS service
no-resolv
no-hosts

user=_dnsmasq
group=_dnsmasq
# don't run as root

dhcp-range=192.168.1.100,192.168.1.200,255.255.255.0,1m

enable-tftp
tftp-root=/var/lib/tftpboot
# config-aarch64.ipxe, snponly-aarch64.efi must be there

dhcp-match=set:efi-aarch64,option:client-arch,11

# Distinguish between firmware downloading iPXE and iPXE downloading config
# (iPXE sets user-class option to `iPXE...something`, UEFI firmwares use
# a different user-class)
dhcp-userclass=set:ipxe,iPXE

tag-if=set:aarch64-ipxe,tag:efi-aarch64,tag:ipxe

dhcp-boot=tag:efi-aarch64,snponly-arm64.efi # set correct path to arm64-efi iPXE binary
dhcp-boot=tag:aarch64-ipxe,config-aarch64.ipxe # set correct path to aarch64 iPXE script

Настройка nginx

Файл /etc/nginx/sites-enabled.d/altinst.conf

server {
       location / {
               root /var/lib/tftpboot/aarch64;
               autoindex on;
               gzip off;
       }
}

Настройка iPXE

Файл /var/lib/tftpboot/config-aarch64.ipxe


#!ipxe
kernel aarch64/alt-server-10.0-aarch64/boot/vmlinuz initrd=full.cz root=bootchain bootchain=fg,altboot ip=dhcp4 changedisk fastboot live automatic=method:http,network:dhcp,server:192.168.1.1,directory:/alt-server-10.0-aarch64 stagename=altinst showopts lang=ru_RU
initrd aarch64/alt-server-10.0-aarch64/boot/full.cz
boot

Запуск сервисов

Запуск сервиса dnsmasq

mkdir -p /var/lib/dhcp/
systemctl enable dnsmasq.service --now

Запуск сервиса nginx

systemctl enable nginx.service --now

Cервера для установки по сети настроен.

Установка по сети

Для запуска установки по сети нужно сделать следующее:

При загрузке TF307 нажать F2. Будет выдано меню UEFI

Выбрать пункт "Boot Manager", затем выбрать пункт "UEFI PXEv4", соответствующий тому Ethernet интерфейсу, к которому подключена RPi4.

Если по ошибке выбрать отключенный Ethernet интерфейс ничего не произойдёт.