PXE Сервер

Подготовка сервера

На сервере DHCP настроим параметры:

Boot Server Host Name - ip вашего PXE сервера
Bootfile Name - pxelinux.0

Разрешим tftp в фаерволе

sudo firewall-cmd --add-service=tftp
sudo firewall-cmd --add-service=tftp permanent​

Обновляем установленный сервер:

yum update

Отключение SELinux. Открываем конфиг и редактируем строки /etc/selinux/config :

SELINUX=disabled
SELINUXTYPE=targeted
SETLOCALDEFS=0

Установка нужных пакетов для нашего сервера:

yum -y install xinetd tftp tftp-server nfs-utils syslinux

Чтобы изменения вступили в силу, перезагружаемся:

reboot

 

Настройка TFTP и NFS сервера

Редактируем конфигурационный файл TFTP сервера /etc/xinetd.d/tftp:

vi /etc/xinetd.d/tftp

Редактируем только одну строчку:

disable = yes

Редактируем конфигурационный файл NFS сервера /etc/exports:

vi /etc/exports

Прописываем следующее:

/var/lib/tftpboot/ 192.168.1.0/24(rw,no_root_squash)

Добавляем в автозагрузку:

systemctl enable xinetd
systemctl enable nfs-server

Запустим:

systemctl start xinetd
systemctl start nfs-server

И проверяем:

systemctl status xinetd
systemctl status nfs-server

 

Создание загрузочного меню PXE сервера

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

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot
cp /usr/share/syslinux/vesamenu.c32 /var/lib/tftpboot
cp /usr/share/syslinux/memdisk /var/lib/tftpboot
cp /usr/share/syslinux/mboot.c32 /var/lib/tftpboot
cp /usr/share/syslinux/chain.c32 /var/lib/tftpboot

Создадим папку для файлов меню загрузки:

vi /var/lib/tftpboot/pxelinux.cfg

Создадим файл главного меню:

vi /var/lib/tftpboot/pxelinux.cfg/default

И заполним его следующим:

default vesamenu.c32

Время через которое стартует первый пункт меню

timeout 10

menu title ##### PXE MENU: #####

Label 1
menu label ^1)

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

Заполнение PXE сервера софтом.

Для начала скачаем Программы которые нам нужно запускать : acronis true image, memtest+ и какой нибудь Live CD.
Далее закачиваем все программы на наш сервер PXE в директорию /var/lib/tftpboot/live .
И приступаем к редактированию файла pxelinux.cfg

default vesamenu.c32
timeout 10

menu title ##### PXE MENU: #####

Загрузка с вашего HDD\SDD.

Label 1
menu label ^1) Boot from local drive
localboot 0

Запуск ядра memdisk который обратиться к Acronis_full.iso и запуститься на ОЗУ.


Label 2
menu label ^2) Acronis
kernel memdisk
append iso initrd=live/Acronis_full.iso

Запуск Memtest+

Label 3
menu label ^3) Memtest+
kernel memdisk
append iso initrd=live/memtest.iso

Запуск WindowsPE

Label 4
menu label ^4) WindowsPE
kernel memdisk
append iso initrd=live/Win7PE.iso

И проверяем то что внесли. Желательно не запускать через ядро memdisk дистрибутивы больше 250мб. Чем меньше iso тем быстрее он
запустится. Лучше их собирать самому под свои задачи.

Добавим 5 линию которая нас будит перенаправлять на отдельный файл в котором будут внесены антивирусы:

Label 5
menu label ^5) Antivirus
kernel vesamenu.c32
append pxelinux.cfg/Antivirus

Антивирусы

Скачаем два антивируса DrWeb live CD и Nod32 live CD. Далее в папке /var/lib/tftpboot/live создадим подпапку Antivirus и в ней подпапки DrWeb и Nod32.
И в них разархивируем скачанные iso. 
Далее создадим файл Antivirus в дерикторию /var/lib/tftpboot/pxelinux.cfg/
И заполним его:

default vesamenu.c32
menu title ##### Antivirus:#####

Запуск DrWeb

Label 1
menu label ^1) DrWeb
kernel live/Antivirus/DrWeb/casper/vmlinuz
initrd live/Antivirus/Drweb/casper/initrd.lz
append root=/dev/nfs boot=casper netboot=nfs nfsroot=10.0.54.137:/var/lib/tftpboot/live/Antivirus/DrWeb language=ru locale=ru_RU.UTF-8 quiet splash noapic --

Запуск Nod32

Label 2
menu label ^2) Nod32
kernel live/Antivirus/Nod32/casper/vmlinuz
initrd live/Antivirus/Nod32/casper/initrd.lz
append root=/dev/nfs boot=casper netboot=nfs nfsroot=10.0.54.137:/var/lib/tftpboot/live/Antivirus/Nod32 language=ru locale=ru_RU.UTF-8 quiet splash noapic --

Кнопка назад

Label 3
menu label ^3) Back
kernel vesamenu.c32
append pxelinux.cfg/default

Запускать антивирусы мы будим через ядро vmlinuz и монтировать образ будим с помощью NFS. Директория находится на сервере 10.0.54.137 (Наш PXE сервер) в var/lib/tftpboot/live/Antivirus/DrWeb.