tftpboot/README.md

99 lines
4.5 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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"