2016-07-11 15:49:32 +02:00
# tftpboot
1. [Overview ](#overview )
2. [Description ](#description )
2016-07-21 16:33:03 +02:00
* [PXE files ](#pxe-files )
* [Configuration files ](#configuration-files )
2016-07-11 15:49:32 +02:00
* [Preseed ](#preseed )
* [Scripts ](#scripts )
2016-07-21 16:33:03 +02:00
3. [How to use it ](#how-to-use-it )
2016-07-11 15:49:32 +02:00
4. [TODO ](#todo )
## Overview
2016-07-22 14:25:32 +02:00
All needed files to set up a PXE server.
2016-07-11 15:49:32 +02:00
## Description
### PXE files
Use some bootloaders files provide by :
2016-07-20 12:02:56 +02:00
* `pxelinux` debian package :
2016-07-11 15:49:32 +02:00
* gpxelinux.0
* pxelinux.0
2016-07-20 12:02:56 +02:00
* `syslinux-common` debian package :
2016-07-11 15:49:32 +02:00
* chain.c32
* menu.c32
* reboot.c32
* vesamenu.c32
2016-07-22 14:25:32 +02:00
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.
2016-07-11 15:49:32 +02:00
### Configuration files
2016-07-21 16:51:55 +02:00
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
2016-07-22 17:01:14 +02:00
1. Provide PXE entries for :
* Debian Jessie (Stable) amd64.
* Debian Jessie (Stable) amd64 with additionnals firmwares (see [make_debian_initrd_with_firmware.sh][debian initrd with firmware script] script).
* Debian Jessie (Stable) amd64 with additionnals firmwares and preseed file.
* 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 Jessie (Stable) amd64 for minions with preseed (Gnome 3 as default GUI).
* Debian Jessie (Stable) 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 with preseed (Gnome 3 as default GUI).
* Debian Wheezy (oldStable) i386.
* Debian Sid (unstable) amd64.
* Debian Sid (unstable) amd64 with additionnals firmwares (see [make_debian_initrd_with_firmware.sh][debian initrd with firmware script] script).
* Debian Sid (unstable) i386.
2016-07-21 18:08:40 +02:00
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 !
2016-07-21 16:51:55 +02:00
2016-07-11 15:49:32 +02:00
### Preseed
2016-07-21 16:33:03 +02:00
### Scripts
2016-07-11 15:49:32 +02:00
See the [scripts's README.md][scripts readme.md] file for more informations.
2016-07-11 15:57:17 +02:00
## How to use it
2016-07-21 16:33:03 +02:00
* 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`
2016-07-21 18:08:40 +02:00
* 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**)
2016-07-21 16:33:03 +02:00
2016-07-11 15:57:17 +02:00
## TODO
2016-07-22 14:25:32 +02:00
* Add a tiny preseed file that could be loaded for a manual install.
2016-07-21 18:08:40 +02:00
* Download the latecommand archive from this repository instead of the TFTPD server ?
2016-07-11 15:57:17 +02:00
2016-07-21 16:51:55 +02:00
[main menu.cfg]: ./config/menu.cfg
2016-07-21 18:08:40 +02:00
[debian menu.cfg]: ./config/debian/menu.cfg
[preseed jessie]: ./preseed/debian/jessie/preseed.cfg
[preseed wheezy]: ./preseed/debian/wheezy/preseed.cfg
2016-07-11 15:49:32 +02:00
[scripts readme.md]: https://git.ipr.univ-rennes1.fr/cellinfo/tftpboot/src/master/scripts "scripts's README.md for tftpboot"
2016-07-21 18:01:11 +02:00
[debian initrd with firmware script]: ./scripts/README.md#make_debian_initrd_with_firmwaresh "informations about the Debian's initrd with additionnals firmwares"