Установка PXE
Загрузка по сети работает через PXE. Установка состоит глобально из 3 шагов:
- Настройка интерфейса
- Настройка tftp и DHCP-серверов
- Загрузка по сети
Настройка интерфейса
Для загрузки через PXE нам нужно, чтобы компьютеры были в одной сети. Выяснять, какие сетевые карты поддерживают загрузку по WiFi я не стал, поэтому просто соединил компьютеры кабелем и создал новый интерфейс.
На Linux Mint 21 настройка сети должна выполняться через Network manager. Выведем список всех интерфейсов:
nmcli device status
Интерфейсу надо назначить IP-адрес. Я использовал подсеть 10.0.0.0. Подставьте в команду ниже свой IP-адрес и название интерфейса. Она создаст соединение:
sudo nmcli connection add type ethernet ifname enp0s31f6 con-name NewInterface ipv4.addresses 10.0.0.1/24 ipv4.dns "8.8.8.8" ipv4.method manual connection.autoconnect yes
Интерфейс создан и готов к работе, его состояние можно проверить командами ip a или nmcli device status.
Настройка tftp и DHCP серверов
Далее установим tftp сервер, чтобы он отдавал установочные файлы по сети:
sudo apt install tftpd-hpa apache2 syslinux isc-dhcp-server -y
Добавим в конфиг tftp папку с установочными файлами:
sudo sed -i 's|TFTP_DIRECTORY=.*|TFTP_DIRECTORY=»/opt/tftp»|' /etc/default/tftpd-hpa
Создадим папку и распакуем файлы системы в папку tftp:
sudo mkdir /opt/tftp sudo cp /usr/lib/syslinux/modules/bios/* /opt/tftp/ wget http://archive.ubuntu.com/ubuntu/dists/bionic-updates/main/installer-amd64/current/images/netboot/netboot.tar.gz sudo tar -xzvf netboot.tar.gz -C /opt/tftp/
А затем настроим собственно установку образа Ubuntu по сети в конфиге PXE. Для этого откроем конфиг файл PXE
sudo nano /opt/tftp/pxelinux.cfg/default
и приведем его к такому виду:
DEFAULT ubuntu LABEL ubuntu MENU LABEL ^Install Ubuntu Server 18 KERNEL ubuntu-installer/amd64/linux APPEND vga=788 initrd=ubuntu-installer/amd64/initrd.gz
Перезапустим службу tftp для применения изменений.
sudo systemctl restart tftpd-hpa
Наш tftp сервер готов к работе.
Настройка DHCP
Теперь настроим DHCP сервер. Для этого отредактируем настройки сервера.
sudo nano /etc/dhcp/dhcpd.conf
Укажем в файле IP-адреса вашей подсети. Мой конфиг для подсети 10.0.0.0:
subnet 10.0.0.0 netmask 255.255.255.0 { range 10.0.0.2 10.0.0.100; option broadcast-address 10.0.0.255; option routers 10.0.0.1; next-server 10.0.0.1; filename "pxelinux.0";}
Сохраним изменения и перезапустим службу. По умолчанию служба не выводит результата запуска поэтому я добавил в команду запрос статуса.
sudo systemctl restart isc-dhcp-server
Если служба запустилась, значит сервер поднялся и работает.
На этом настройка серверов завершена. Осталось загрузиться по сети и установить систему.
