Сервер сетевой загрузки (PXE) на Freebsd ч.1 - Настройка сервера
Устав от однотипных операций установки различных операционных систем, задумался, каким образом это можно все упростить, чтобы не прожигать болванки каждый раз, т.к. при моей аккуратности они имеют свойств царапаться, теряться. Тем более, что не на всех компьютерах (серверах) присутствуют устройства чтения CD-DVD, а значит надо создавать загрузочные устройства на флешках. Выбор пал на установку (загрузку) операционных систем по сети.
Если у Вас DHCP под Linux, то необходимо добавить следущие строки в описание области в /usr/local/etc/dhcp.conf:
next-server 192.168.1.5; # TFTP server address
filename "gpxelinux.0"; # PXE boot loader filename
# mkdir -p /usr/tftpboot/images
# mkdir /usr/tftpboot/pxelinux.cfg
# cd /usr/ports/ftp/tftp-hpa
# make install clean
# ee /etc/inetd.conf
tftp dgram udp wait root /usr/local/libexec/in.tftpd in.tftpd -p -s
/usr/tftpboot -B 1024
inetd_enable="YES"
/etc/rc.d/inetd restart
cd /usr/ports/ftp/wget
make install clean
rehash
wget http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-4.04.tar.gz
tar xvfz syslinux-4.04.tar.gz
#cp /home/user/syslinux-4.04/gpxe/gpxelinux.0 /usr/tftpboot/
#cp /home/user/syslinux-4.04/com32/menu/menu.c32 /usr/tftpboot/
#cp /home/user/syslinux-4.04/com32/menu/vesamenu.c32 /usr/tftpboot/
#cp /home/user/syslinux-4.04/com32/modules/reboot.c32 /usr/tftpboot/
#cp /home/user/syslinux-4.04/com32/modules/chain.c32 /usr/tftpboot/
#cp /home/user/syslinux-4.04/memdisk/memdisk /usr/tftpboot/
touch /usr/tftpboot/pxelinux.cfg/default
wget h_ttp://mfsbsd.vx.sk/iso/mfsbsd-se-8.2-i386.iso
mkdir /usr/tftpboot/images/mfsbsd
cp /tmp/mfsbsd-8.2-i386.iso /usr/tftpboot/images/mfsbsd
ui menu.c32
menu title Utilities
label mfsbsd
menu label ^MfsBSD
kernel memdisk
initrd images/mfsbsd/mfsbsd-8.2-i386.iso
append iso raw
label reboot
menu label Reboot
kernel reboot.c32
ln -s /usr/tftpboot/images/ /usr/local/www/apache22/data/
ee /usr/local/etc/apache22/httpd.conf
<Directory "/images">
Order Deny,Allow
Deny from all
Allow from 192.168.1.0/24
Options Indexes
</Directory>
label mfsbsd
menu label ^MfsBSD
kernel h_ttp://192.168.1.5/memdisk
initrd http://192.168.1.5/images/mfsbsd/mfsbsd-8.2-i386.iso
append iso raw
wget http://downloads.sourceforge.net/project/systemrescuecd/sysresccd-x86/2.5.0/systemrescuecd-x86-2.5.0.iso
# mkdir /usr/tftpboot/images/memtest/
# mount -t cd9660 /dev/`mdconfig -f systemrescuecd-x86-2.5.0iso` /mnt
# cp /mnt/bootdisk/memtestp /usr/tftpboot/images/memtest
# umount /mnt
label memtest
menu label ^Memtest
kernel images/memtest/memtestp
cp /tmp/syslinux-4.04/com32/hdt/hdt.c32 /usr/tftpboot/
label hdt
menu label ^Hardware Detection Tool
kernel hdt.c32
default menu.c32
prompt 0
menu title Welcome PXE Boot Menu
menu INCLUDE pxelinux.cfg/graphics.conf
MENU AUTOBOOT Starting Local System in # seconds
label bootlocal
menu label ^Boot from Local hard disk
menu default
localboot 0
timeout 80
TOTALTIMEOUT 9000
LABEL LiveCD
MENU PASSWD 1234567
MENU LABEL ^LiveCD
KERNEL menu.c32
APPEND pxelinux.cfg/graphics.conf pxelinux.cfg/livecd.menu
LABEL Utilites
MENU LABEL ^Utilities
KERNEL menu.c32
APPEND pxelinux.cfg/graphics.conf pxelinux.cfg/utilities.menu
LABEL Setup OS Menu
MENU LABEL ^Install system
KERNEL menu.c32
APPEND pxelinux.cfg/graphics.conf pxelinux.cfg/setup.menu
LABEL reboot
menu label ^Reboot
kernel reboot.c32
menu color tabmsg 37;40 #80ffffff #00000000
menu color hotsel 30;47 #40000000 #20ffffff
menu color sel 30;47 #40000000 #20ffffff
menu color scrollbar 30;47 #40000000 #20ffffff
MENU MASTER PASSWD 444444
MENU WIDTH 80
MENU MARGIN 22
MENU PASSWORDMARGIN 26
MENU ROWS 10
MENU TABMSGROW 15
MENU CMDLINEROW 15
MENU ENDROW 26
MENU PASSWORDROW 12
MENU TIMEOUTROW 25
MENU VSHIFT 6
MENU PASSPROMPT Enter Password:
NOESCAPE 1
ALLOWOPTIONS 0
MENU TITLE LiveCD
LABEL LiveCD
MENU LABEL ^Return to Main Menu
KERNEL menu.c32
APPEND pxelinux.cfg/default
label MfsBSD
menu label ^MfsBSD
kernel memdisk
initrd images/mfsbsd/mfsbsd-se-8.2-i386.iso
append iso raw
label Systemrescue
menu label ^System Rescue CD
kernel images/systemrescuecd/rescuecd
append setkmap=ru netboot=tftp://10.218.138.246/images/systemrescuecd/sysrcd.dat
initrd images/systemrescuecd/initram.igz
/usr/tftpboot/pxelinux.cfg/setup.menu
/usr/tftpboot/pxelinux.cfg/Utilities.menu - также являются дополнительными пунктами меню и заполняются подобно livecd.menu, в зависимости от вносимых в него приложений.
ui vesamenu.c3
menu title Utilities
menu background backgnd.png
Комментарии
Не получается запустить Live
Не получается запустить Live CD systemrescuecd.
На пункте где через tftp загружается sysrcd.dat доходит до 10% и сбрасывается на 0 и снова
sysrcd.md5 загружается нормально.
Попробуйте загрузить по http
Попробуйте загрузить по http или nfs, если не получится отпишите. В понедельник на работу выйду, гляну.
Upd: По http загружается отлично и быстро
По HTTP все нормально
Дополнительно замечу:
1) Не загружался LiveCD - mfsBSD пришлось из /usr/tftpboot/pxelinux.cfg/default
строка append iso raw убрать опцию raw - все заработало
2)Приведенный bootlocal не работает - переделал на
label bootlocal
menu label ^Boot from Local hard disk
menu default
kernel chain.c32
append hd0 0
timeout 80
TOTALTIMEOUT 9000
shutdown
День добрый! Задался вопростом сделать отключение машинки из меню. Не подскажите как его правильно сделать? Добавил файлик poweroff.com в корень
label shutdown
menu label power off
comboot poweroff.com
Проблемка в том, что виртуалка (Oracle VM) отключается, а реальная машина нет. На мгновенье вылетает APM not present. гуглил, но что-то не особо результативно..Версия syslinux 4.04-4.06 без разницы.
В версиях после 4.06 этот файл вообще отсутствует (