Связаться со мной:
1 заметка с тегом

tftp

PXE сервер на FreeBSD

В конфиг dnsmasq добавляем

dhcp-option-force=66,192.168.0.1   # ip сервера
dhcp-option-force=67,gpxelinux.0   # загрузчик

Перезапускаем dnsmasq

service dnsmasq restart

Создаем каталог для pxe

mkdir /usr/local/pxe
mkdir /usr/local/pxe/pxelinux.cfg

Устанавливаем tftp

pkg install tftp-hpa

В /etc/inetd.conf добавляем

tftp  dgram  udp  wait  root  /usr/local/libexec/in.tftpd  in.tftpd -p -s /usr/local/pxe

Вписываем

echo 'inetd_enable="YES"' >> /etc/rc.conf

Запускаем inetd

/etc/rc.d/inetd start

Скачиваем и распаковываем syslinux

fetch http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-4.05.tar.gz
tar -xf syslinux-4.05.tar.gz

Копируем файлы

cd syslinux-4.05
cp gpxe/gpxelinux.0 /usr/local/pxe/
cp com32/menu/menu.c32 /usr/local/pxe/
cp com32/menu/vesamenu.c32 /usr/local/pxe/
cp com32/modules/reboot.c32 /usr/local/pxe/
cp com32/modules/chain.c32 /usr/local/pxe/
cp memdisk/memdisk /usr/local/pxe/

Образы будем грузить по http, т.к tftp очень медленный. Ставим nginx.

pkg install nginx

Создаем каталог с образами и симлинк на него в nginx

mkdir  /usr/local/pxe/images/
ln -s /usr/local/pxe/images/ /usr/local/www/nginx/images

Вписываем

echo 'nginx_enable="YES"' >> /etc/rc.conf

И стартуем

service nginx start

Заливаем наши образы в /usr/local/pxe/images/

В файле /usr/local/pxe/pxelinux.cfg/default создаем конфиг меню с нашими образами. У меня получился такой

ui menu.c32
menu title PXE Boot Menu

label boothdd
  menu label Boot from Hard Drive
  localboot 0
 
label memtest
  menu label memtest
  kernel memdisk
  initrd http://192.168.0.1/images/Memtest86-4.3.7.iso
  append iso raw

label mfsbsd
  menu label mfsbsd
  kernel memdisk
  initrd http://192.168.0.1/images/mfsbsd-12.0-RELEASE-amd64.iso
  append iso raw

label debian-10
  menu label debian-10
  kernel http://192.168.0.1/images/debian10/linux
  append vga=normal initrd=http://192.168.0.1/images/debian10/initrd.gz  --

label rescue
  menu label rescue
  kernel http://192.168.0.1/images/debian10/linux
  append vga=normal initrd=http://192.168.0.1/images/debian10/initrd.gz  rescue/enable=true --

linux и initrd.gz для установщика debian можно взять тут
Теперь можно пробовать грузится с PXE, если все сделали правильно то появится меню с выбором загружаемого образа.

1 сентября   Freebsd   pxe   tftp