Для использования подойдет любая операционная система.
Использовали Debian 7.
root@debian:~# more /etc/debian_version
7.11
1. Установка и настройка TFTP Сервера:
Ставим tFtp сервер.
sudo apt-get install tftpd-hpa
Редактируем конфиг
sudo nano /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa
TFTP_USERNAME=”tftp”
TFTP_DIRECTORY=”/var/lib/tftpboot”
TFTP_ADDRESS=”0.0.0.0:69″
TFTP_OPTIONS=”–secure -m /var/lib/tftpboot/tftp-remap -v”
Создаем файл sudo nano /var/lib/tftpboot/tftp-remap
с содержимым автозамен для установки Windows:
r bootmgr.exe /seven/bootmgr.exe
r abortpxe.com /seven/abortpxe.com
r hdlscom1.com /seven/hdlscom1.com
r hdlscom1.n12 /seven/hdlscom1.n12
r hdlscom2.com /seven/hdlscom2.com
r hdlscom2.n12 /seven/hdlscom2.n12
r pxeboot.com /seven/pxeboot.com
r pxeboot.n12 /seven/pxeboot.n12
r WdsConfig.inf /seven/WdsConfig.inf
r wdsnbp.com /seven/wdsnbp.com
r \\Boot\\BCD seven/Boot/BCD
r \\boot\\boot.sdi seven/Boot/boot.sdi
r \\Boot\\winpe.wim seven/Boot/winpe.wim
2. Создаем наше PXE меню.
Качаем архив syslinux. Скачиваем последнюю версию и изымаем pxelinux.0, chain.c32, menu.c32:
# wget http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-4.04.tar.bz2
# tar xf syslinux-4.04.tar.bz2
# cp syslinux-4.04/core/pxelinux.0 /srv/tftp/
либо руками качаем с https://www.kernel.org/pub/linux/utils/boot/syslinux/
Файлы находятся в директориях:
syslinux-4.04\core\pxelinux.0
syslinux-4.04\com32\modules\chain.c32
syslinux-4.04\com32\menu\menu.c32
Эти три файла грузим в наш корень tftp сервера /var/lib/tftpboot
создаем наше меню /var/lib/tftpboot/pxelinux.cfg/default
содержимое:
ui menu.c32
PROMPT 0
menu background background.png
menu title PXE boot menu
LABEL bootlocal
menu label Boot from first HDD
kernel chain.c32
append hd0 0
timeout 120000
TEXT HELP
The system will boot after time is up.
ENDTEXT
LABEL Windows ->
KERNEL menu.c32
APPEND pxelinux.cfg/windows
LABEL Linux ->
KERNEL menu.c32
APPEND pxelinux.cfg/linux
LABEL FreeBSD ->
KERNEL menu.c32
APPEND pxelinux.cfg/bsd
LABEL HDD and RAM utils ->
KERNEL menu.c32
APPEND pxelinux.cfg/du
LABEL LiveCDs ->
KERNEL menu.c32
APPEND pxelinux.cfg/livecds
LABEL Antiviruses ->
KERNEL menu.c32
APPEND pxelinux.cfg/av
создаем меню Windows /var/lib/tftpboot/pxelinux.cfg/windows
PROMPT 0
UI samenu.c32
menu background background.png
MENU TITLE Windows
LABEL <- Main Menu
KERNEL menu.c32
APPEND pxelinux.cfg/default
LABEL Windows 10 (x32/x64)
kernel ten/pxeboot.0
LABEL Windows 7 (x32/x64)
kernel seven/pxeboot.0
LABEL Windows XP
kernel xp/pxeboot.0
LABEL <- Main Menu
KERNEL menu.c32
APPEND pxelinux.cfg/defaul
и т.д.
На этом PXE меню готово так как у нас отдельный DHCP сервер, если такового нет дополнительно нужно его установить.
Теперь добавим разные способы установки.
Samba описана в статье для сетевой установки Windows 7
Доступ по протоколу http, устанавливаем apache
aptitude install apache2
Редактируем конфиг:
nano /etc/apache2/sites-enabled/000-default
и указываем корень к нашим смонтированным OS /var/lib/tftpboot/images к примеру.
Перезагружаем apache
service apache2 restart
Редактируем fstab nano /etc/fstab и дописываем туда наши ISO
/var/lib/tftpboot/iso/win7/win7.iso /var/lib/tftpboot/iso-seven udf,iso9660 user,loop 0 0
/var/lib/tftpboot/iso/Mint/linuxmint-18.1-mate-32bit.iso /var/lib/tftpboot/images/mint/linuxmint-18.1-mate-32bit udf,iso9660 user,loop 0 0
/var/lib/tftpboot/iso/CentOS/CentOS-7-i386-DVD-1511.iso /var/lib/tftpboot/images/centos/CentOS-7-i386-DVD-1511 udf,iso9660 user,loop 0 0
Ставим NFS
aptitude install nfs-kernel-server
nano /etc/exports
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/var/lib/tftpboot/images/mint/linuxmint-18.1-mate-32bit *(ro,sync,no_wdelay,insecure_locks,no_root_squash,insecure)
/var/lib/tftpboot/images/centos/CentOS-7-i386-DVD-1511 *(ro,sync,no_wdelay,insecure_locks,no_root_squash,insecure)
Запускаем: /etc/init.d/nfs-kernel-server start