Many advanced options here. Read full documentation on Syslinux to understand it all.
Its password protected from modification during PXE boot, very useful to prevent tampering.
Note: this example uses the legacy way to generate submenus, which is compatible with older Syslinux versions. Syslinux 3.62 supports a slightly different syntax, which is faster and somewhat more flexible.
Directory Structure:
/tftpboot/ /tftpboot/memdisk /tftpboot/pxelinux.0 /tftpboot/menu.c32 /tftpboot/pxelinux.cfg/ /tftpboot/pxelinux.cfg/default /tftpboot/pxelinux.cfg/graphics.conf /tftpboot/pxelinux.cfg/fixes.menu /tftpboot/pxelinux.cfg/setup.menu /tftpboot/TRK/ /tftpboot/TRK/chkdsk.trk /tftpboot/TRK/initrd.trk /tftpboot/TRK/kernel.trk /tftpboot/Memtest/memtest.x86 /tftpboot/Suse/ /tftpboot/Suse/initrd92 /tftpboot/Suse/linux92 /tftpboot/Floppy/ /tftpboot/Floppy/kbfloppy.img/tftpboot/pxelinux.cfg/default:
DEFAULT menu.c32 PROMPT 0 MENU TITLE PXE Special Boot Menu MENU INCLUDE pxelinux.cfg/graphics.conf MENU AUTOBOOT Starting Local System in # seconds LABEL bootlocal MENU LABEL ^Boot Point of Sale MENU DEFAULT LOCALBOOT 0 TIMEOUT 80 TOTALTIMEOUT 9000 LABEL FixesMenu MENU LABEL ^Fixes Menu KERNEL menu.c32 APPEND pxelinux.cfg/graphics.conf pxelinux.cfg/fixes.menu LABEL SetupMenu MENU LABEL ^Setup Menu KERNEL menu.c32 APPEND pxelinux.cfg/graphics.conf pxelinux.cfg/setup.menu/tftpboot/pxelinux.cfg/graphics.conf:
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 yourpassword MENU WIDTH 80 MENU MARGIN 22 MENU PASSWORDMARGIN 26 MENU ROWS 6 MENU TABMSGROW 15 MENU CMDLINEROW 15 MENU ENDROW 24 MENU PASSWORDROW 12 MENU TIMEOUTROW 13 MENU VSHIFT 6 MENU PASSPROMPT Enter Password: NOESCAPE 1 ALLOWOPTIONS 0Change ALLOWOPTIONS to 1 (one) so to be able to edit any of the entries while booted with PXE on the menu system for testing purposes. Also change NOESCAPE to 0 (zero) for the same reasons.
/tftpboot/pxelinux.cfg/fixes.menu:
MENU TITLE Fixes Menu LABEL MainMenu MENU LABEL ^Return to Main Menu KERNEL menu.c32 APPEND pxelinux.cfg/default LABEL fsck MENU LABEL ^File system check KERNEL TRK/kernel.trk APPEND initrd=TRK/chkdsk.trk ramdisk_size=32768 root=/dev/ram0 vga=0 LABEL memtest MENU LABEL ^Memory Test: Memtest86+ v1.65 KERNEL Memtest/memtest.x86 LABEL trk3 MENU LABEL ^Trinity Rescue Kit KERNEL TRK/kernel.trk APPEND initrd=TRK/initrd.trk ramdisk_size=32768 root=/dev/ram0 vga=0 trknfs=IPADDR:/trk ip=::::::dhcp splash=verbose/tftpboot/pxelinux.cfg/setup.menu:
MENU TITLE Setup Menu LABEL MainMenu MENU LABEL ^Return to Main Menu KERNEL menu.c32 APPEND pxelinux.cfg/default LABEL setupkb MENU LABEL ^Any floppy disk image KERNEL memdisk APPEND initrd=Floppy/kbfloppy.img LABEL linux MENU PASSWD yourpassword MENU LABEL Install - ^Classic KERNEL Suse/linux92 APPEND initrd=Suse/initrd92 ramdisk_size=65536 vga=0 textmode=1 install=http://IPADDR serverdir=/9.2/install autoyast=http://IPADDR/9.2/scripts/ay92.xml LABEL trkclone MENU PASSWD yourpassword MENU LABEL Install - ^Faster KERNEL TRK/kernel.trk APPEND initrd=TRK/initrd.trk ramdisk_size=65536 root=/dev/ram0 vga=0 install=Y trknfs=IPADDR:/trk ip=::::::dhcp splash=verbose LABEL linuxfull MENU PASSWD yourpassword MENU LABEL Install - ^Developer KERNEL Suse/linux92 APPEND initrd=Suse/initrd92 ramdisk_size=65536 vga=0 textmode=1 install=http://IPADDR serverdir=/9.2/install autoyast=http://IPADDR/9.2/scripts/develdesktop.xml
--------
https://forums.fogproject.org/topic/8488/how-to-pxe-boot-cent-os-7/61
:MENU menu item --gap -- ---------------- iPXE boot menu ---------------- item mac Macrium Reflect item clonezilla Clonezilla 2015 item ubuntu6 Ubuntu 16:04.1 x64 item ubuntu6 Ubuntu 16:04.1 x32 item ubuntu Ubuntu 15:10 x64 item ubuntu Ubuntu 15:10 x32 item kubuntu6 Kubuntu 16:04.1 x64 item kubuntu6 Kubuntu 16:04.1 x32 item kubuntu Kubuntu 15:10 x64 item kubuntu Kubuntu 15:10 x32 item mint18 Linux Mint 18 "Sarah" - MATE (32-bit) item Mint18 Linux Mint 18 "Sarah" - MATE (64-bit) item mint Linux Mint 17.2 "Rafaela" - MATE (32-bit) item Mint Linux Mint 17.2 "Rafaela" - MATE (64-bit) item mint Linux Mint 17.2 "Rafaela" - Cinnamon (32-bit) item Mint Linux Mint 17.2 "Rafaela" - Cinnamon (64-bit) item BOOTCD Hirens 15.2 BOOTCD item pgon Paragon Harddisk Manager 12 item ubd Ultimate Boot Disk item ez EZ Gig IV Cloning Software item centos Centos item centos2 Centos Live item hostinfo details about this computer item shell ipxe shell item return return to previous menu choose --default return --timeout 5000 target && goto ${target} :mac initrd http://${fog-ip}/fog/service/ipxe/mac/mac.iso chain memdisk iso raw || goto MENU :clonezilla kernel http://${fog-ip}/bootimgs/clonezilla/vmlinuz initrd http://${fog-ip}/bootimgs/clonezilla/initrd.img imgargs vmlinuz boot=live username=user fetch=http://${fog-ip}/bootimgs/clonezilla/filesystem.squashfs locale=en_US.UTF-8 keyboard-layouts=NONE boot || echo failed to boot prompt goto MENU``` :ubuntu6 kernel http://${fog-ip}/bootimgs/16.04.1_64/casper/vmlinuz.efi initrd http://${fog-ip}/bootimgs/16.04.1_64/casper/initrd.lz imgargs vmlinuz.efi root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/16.04.1_64/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed goto start :ubuntu6 kernel http://${fog-ip}/bootimgs/16.04.1_32/casper/vmlinuz initrd http://${fog-ip}/bootimgs/16.04.1_32/casper/initrd.lz imgargs vmlinuz.efi root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/16.04.1_32/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed goto start :ubuntu kernel http://${fog-ip}/bootimgs/15.10_64/casper/vmlinuz.efi initrd http://${fog-ip}/bootimgs/15.10_64/casper/initrd.lz imgargs vmlinuz.efi root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/15.10_64/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed goto start :ubuntu kernel http://${fog-ip}/bootimgs/15.10_32/casper/vmlinuz initrd http://${fog-ip}/bootimgs/15.10_32/casper/initrd.lz imgargs vmlinuz root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/15.10_32/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed goto start :kubuntu6 kernel http://${fog-ip}/bootimgs/kubuntu6_64/casper/vmlinuz.efi initrd http://${fog-ip}/bootimgs/kubuntu6_64/casper/initrd.lz imgargs vmlinuz.efi root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/kubuntu6_64/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed goto start :kubuntu6 kernel http://${fog-ip}/bootimgs/kubuntu6_32/casper/vmlinuz initrd http://${fog-ip}/bootimgs/kubuntu6_32/casper/initrd.lz imgargs vmlinuz root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/kubuntu6_32/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed :kubuntu kernel http://${fog-ip}/bootimgs/kubuntu5_64/casper/vmlinuz.efi initrd http://${fog-ip}/bootimgs/kubuntu5_64/casper/initrd.lz imgargs vmlinuz.efi root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/kubuntu5_64/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed goto start :kubuntu kernel http://${fog-ip}/bootimgs/kubuntu5_32/casper/vmlinuz initrd http://${fog-ip}/bootimgs/kubuntu5_32/casper/initrd.lz imgargs vmlinuz root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/kubuntu5_32/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed goto start :mint18 kernel http://${fog-ip}/bootimgs/lm18_32/casper/vmlinuz initrd http://${fog-ip}/bootimgs/lm18_32/casper/initrd.lz imgargs vmlinuz root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/lm18_32/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed goto start :Mint18 kernel http://${fog-ip}/bootimgs/lm18_64/casper/vmlinuz.efi initrd http://${fog-ip}/bootimgs/lm18_64/casper/initrd.lz imgargs vmlinuz root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/lm18_64/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed goto start :mint kernel http://${fog-ip}/bootimgs/lm_32/casper/vmlinuz initrd http://${fog-ip}/bootimgs/lm_32/casper/initrd.lz imgargs vmlinuz root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/lm_32/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed goto start :Mint kernel http://${fog-ip}/bootimgs/lm_64/casper/vmlinuz initrd http://${fog-ip}/bootimgs/lm_64/casper/initrd.lz imgargs vmlinuz root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/lm_64/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed goto start :mint kernel http://${fog-ip}/bootimgs/lmc_32/casper/vmlinuz initrd http://${fog-ip}/bootimgs/lmc_32/casper/initrd.lz imgargs vmlinuz root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/lmc_32/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed goto start :Mint kernel http://${fog-ip}/bootimgs/lmc_64/casper/vmlinuz initrd http://${fog-ip}/bootimgs/lmc_64/casper/initrd.lz imgargs vmlinuz root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/lmc_64/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed goto start :centos initrd http://${fog-ip}/bootimgs/centos/images/pxeboot/initrd.img chain http://${fog-ip}/bootimgs/centos/images/pxeboot/vmlinuz initrd=initrd.img method=http://${fog-ip}/bootimgs/centos/ devfs=nomount ip=dhcp boot || goto MENU :centos2 initrd http://${fog-ip}/bootimgs/centos/images/pxeboot/initrd.img chain http://${fog-ip}/bootimgs/centos/images/pxeboot/vmlinuz initrd=initrd.img root=live:http://${fog-ip}/bootimgs/centos/LiveOS/squashfs.img ip=dhcp rootflags="loop" rootfstype=auto ro rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0 boot || goto MENU :BOOTCD initrd http://${fog-ip}/bootimgs/bootcd/hirensboot.iso || chain memdisk iso raw || boot || goto MENU :pgon initrd http://${fog-ip}/bootimgs/pgon/phdman12.iso || chain memdisk iso raw || boot || goto MENU :ubd initrd http://${fog-ip}/bootimgs/ubcd/ubcd535.iso || chain memdisk iso raw || boot || goto MENU :ez initrd http://${fog-ip}/bootimgs/ez/EZGIG438.iso || chain memdisk iso raw || boot || goto MENU :hostinfo echo This computer : || echo MAC address....${net0/mac} || echo IP address.....${ip} || echo Netmask........${netmask} || echo Serial.........${serial} || echo Asset number...${asset} || echo Manufacturer...${manufacturer} || echo Product........${product} || echo BIOS platform..${platform} || echo || echo press any key to return to Menu || prompt goto MENU :shell shell || goto MENU :return chain http://${fog-ip}/${fog-webroot}/bootimgs/boot.php?mac=${net0/mac} || prompt goto MENU Autoboot
Nenhum comentário:
Postar um comentário