99 lines
4.5 KiB
Markdown
99 lines
4.5 KiB
Markdown
# 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 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.
|
||
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"
|