Установка Fedora через загрузку PXE

Как установить Fedora через сеть с помощью загрузки PXE?

Мотивация: BIOS целевой системы просто не может загружаться с USB-накопителей. Альтернативная мотивация заключается в том, что загрузка по сети просто удобнее.

Задача: у LAN уже есть DHCP-сервер, который нельзя изменить, то есть тот, который не поддерживает настройку связанных с PXE опций (он является частью маршрутизатора Fritz Box).

Также возможно настроить службу прокси-сервера DHCP для PXE. Таким образом, существующий сервер DHCP не нужно изменять. Затем можно использовать обычную систему Linux (например, рабочую станцию) для размещения среды выполнения preboot (PXE).

Следующие шаги необходимы для установки PXE для сетевой загрузки образа установки сети Fedora (предполагая также хост Fedora):

Проверьте изображение

 $ gpg --verify Fedora-Server-21-x86_64-CHECKSUM $ sha256sum --check Fedora-Server-21-x86_64-CHECKSUM Fedora-Server-netinst-x86_64-21.iso: OK 

Установите изображение

 mkdir /mnt/iso mount -o loop Fedora-Server-netinst-x86_64-21.iso /mnt/iso 

Настройка DHCP

 yum install dnsmasq tftp-server syslinux-tftpboot 

Пакет tftp-server предназначен только для создания каталога /var/lib/tftpboot , dnsmasq уже имеет интегрированный сервер tftp.

Конфигурация:

 cat > /etc/dnsmasq.conf interface=enp0s25 # and don't bind to 0.0.0.0 bind-interfaces # extra logging log-dhcp dhcp-range=192.168.178.0,proxy # first IP address is the one of the host dhcp-boot=pxelinux.0,192.168.178.34,192.168.178.0 pxe-service=x86PC,"Automatic Network Boot",pxelinux # Specify the IP address of another tftp server enable-tftp # default location of tftp-server on Fedora tftp-root=/var/lib/tftpboot # disable DNS port=0 

Начни это:

 systemctl start dnsmasq.service 

Настройка каталога TFTP

Скопируйте все необходимые файлы:

 cp /mnt/iso/images/pxeboot/initrd.img /var/lib/tftpboot cp /mnt/iso/images/pxeboot/vmlinuz /var/lib/tftpboot cp /tftpboot/pxelinux.0 /var/lib/tftpboot cp /tftpboot/vesamenu.c32 /var/lib/tftpboot cp /tftpboot/ldlinux.c32 /var/lib/tftpboot cp /tftpboot/libcom32.c32 /var/lib/tftpboot cp /tftpboot/libutil.c32 /var/lib/tftpboot 

Добавить конфигурацию:

 mkdir /var/lib/tftpboot/pxelinux.cfg cat > /var/lib/tftpboot/pxelinux.cfg/default default vesamenu.c32 prompt 0 # disable timeout timeout 0 #timeout 600 # if file is missing, this is ignored display boot.msg label linux menu label Install Fedora 21 Server x86-64 kernel vmlinuz append initrd=initrd.img inst.stage2=http://workstation.example.org/ 

Настройка HTTP-сервера

 yum install nginx 

Настроить экземпляр:

 cat > /etc/nginx/conf.d/iso.conf server { listen 80 default_server; server_name localhost; root /mnt/iso ; include /etc/nginx/default.d/*.conf; } 

Отключите экземпляр по умолчанию / переместите его на другой порт:

 --- a/nginx/nginx.conf +++ b/nginx/nginx.conf @@ -43,7 +43,7 @@ http { include /etc/nginx/conf.d/*.conf; server { - listen 80 default_server; + listen 8080 default_server; server_name localhost; root /usr/share/nginx/html; 

запустите сервер:

 systemctl start nginx.service 

Установщик Fedora (dracut) в основном просто должен получить один файл с этого http-сервера:

 LiveOS/squashfs.img 

Настройка Firewalld

 firewall-cmd --add-service=http firewall-cmd --add-service=dhcp firewall-cmd --add-service=tftp firewall-cmd --add-service=http --permanent firewall-cmd --add-service=dhcp --permanent firewall-cmd --add-service=tftp --permanent 

Загрузочные клиенты

Вот и все. Клиенты знают, что могут загружать сеть через PXE и ​​получать образ Netinstall Fedora.

Вариации могут быть: добавление файла кикстарта (и установка тайм-аута) для полностью автоматической сетевой установки, настройка различных настроек PXE для разных клиентов (на основе MAC-адреса) и т. Д.

уборка

Демон можно остановить, и изображение обратной петли можно размонтировать:

 systemctl stop nginx.service systemctl stop dnsmasq.service umount /mnt/iso 

Защитная записка

Этот метод должен выполняться только в доверенной интрасети, потому что клиент netboot получает свою конфигурацию, а несколько изображений абсолютно незащищенны через TFTP и HTTP.