# tftpboot 1. [Overview](#overview) 2. [Description](#description) * [PXE files](#pxe-files) * [Configuration files](#configuration-files) * [Preseed](#preseed) * [Scripts](#scripts) 3. [How to use it](#how-to-use-it) 4. [TODO](#todo) ## Overview All needed files to set up a PXE server. ## Description ### PXE files Use some bootloaders files provide by : * `pxelinux` debian package : * gpxelinux.0 * pxelinux.0 * `syslinux-common` debian package : * chain.c32 * menu.c32 * reboot.c32 * vesamenu.c32 To get those files from the packages of APT repositories : ``` sh mkdir -p temp_pxe_files cd temp_pxe_files aptitude download pxelinux syslinux-common ar p pxelinux*.deb data.tar.xz | tar xJ -C . --strip-components=4 ./usr/lib/PXELINUX/{g,}pxelinux.0 ar p syslinux-common*.deb data.tar.xz | tar xJ -C . --strip-components=6 ./usr/lib/syslinux/modules/bios/{chain,menu,reboot,vesamenu}.c32 ``` The MD5 checksum can mismatch between the files from this repo and those from Debian's packages. ### Configuration files Contains the files which defines the PXE menu. The [first one][main menu.cfg] will : * Call all others menu.cfg from subdirectories (debian/, clonezilla/,…) as an entry. * Define a timeout (4 seconds). * Define the default entry (boot on local first disk). * … #### config/debian/menu.cfg 1. Provide PXE entry for : * Debian Wheezy (oldStable) amd64 * Debian Wheezy (oldStable) i386 * Debian Wheezy (oldStable) amd64 with additionnals firmwares (see [make_debian_initrd_with_firmware.sh][debian initrd with firmware script] script) * Debian Wheezy (oldStable) amd64 with additionnals firmwares and preseed file * Debian Wheezy (oldStable) amd64 for minions with preseed (Gnome 3 as default GUI) * Debian Jessie (Stable) amd64 * Debian Jessie (Stable) amd64 with preseed file * Debian Jessie (Stable) amd64 for minions with preseed (Gnome 3 as default GUI) * Debian Jessie (Stable) amd64 for minions with preseed (Mate as default GUI) * Debian Jessie (Stable) amd64 for minions with preseed (Cinnamon as default GUI) * Debian Sid (unstable) amd64 * Debian Sid (unstable) amd64 with additionnals firmwares * Debian Sid (unstable) i386 2. If you want to use with your own TFTPD server, you need te set your IP server ! Replace all occurrences of *129.20.27.239* by the IP of your TFTPD server to be able to load the preseed files ! ### Preseed ### Scripts See the [scripts's README.md][scripts readme.md] file for more informations. ## How to use it * Put the data of this repository on the PXE server : * Clone the repository with https URL or with SSH to **/var/lib/tftpboot**. * Download the last archive : `wget https://git.ipr.univ-rennes1.fr/cellinfo/tftpboot/archive/master.tar.gz` * Install a TFTP server (`tftpd-hpa` package for Debian's based systems or `tftp-server` for Redhat's based systems). * Start the tftpd's service : * `sudo service tftpd-hpa start` * `sudo systemctl start tftpd-hpa` * You can test if the TFTP server provide the files with a TFTP client (`tftp-hpa`) by downloading a file with the command : * `tftp $IP.SRV.TFTP -c get README.md /tmp/README.md_from_tftpd_server` * Set your IP in some files instead of the default one *129.20.27.239* : * [debian menu.cfg][debian menu.cfg] to be able to load the preseed files (**preseed/url=tftp://SRV.IP.AD.DR/**) * [Jessie preseed file][preseed jessie] to download the postinstall script from your TFTPD server (**in-target /usr/bin/tftp SRV.IP.AD.DR**) * [Wheezy preseed file][preseed wheezy] to download the postinstall script from your TFTPD server (**in-target /usr/bin/tftp SRV.IP.AD.DR**) ## TODO * Add a tiny preseed file that could be loaded for a manual install. * Download the latecommand archive from this repository instead of the TFTPD server ? [main menu.cfg]: ./config/menu.cfg [debian menu.cfg]: ./config/debian/menu.cfg [preseed jessie]: ./preseed/debian/jessie/preseed.cfg [preseed wheezy]: ./preseed/debian/wheezy/preseed.cfg [scripts readme.md]: https://git.ipr.univ-rennes1.fr/cellinfo/tftpboot/src/master/scripts "scripts's README.md for tftpboot" [debian initrd with firmware script]: ./scripts/README.md#make_debian_initrd_with_firmwaresh "informations about the Debian's initrd with additionnals firmwares"