Add README.md
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
# Documentation and information relating to my PXE boot server
|
||||
|
||||
## Brief Infrastructure Overview
|
||||
|
||||
Hosted on a headless Debian 13 VM
|
||||
|
||||
dnsmasq used for TFTP, Nginx for HTTP and GRUB serving as the bootloader
|
||||
|
||||
DHCP options handled via my already existing OpenWrt router
|
||||
|
||||
Kernel, initramfs and other required files exist in a dedicated storage directory/disk and are exposed to Nginx via symbolic links
|
||||
|
||||
## High Level Architecture Overivew
|
||||
|
||||
```
|
||||
Client (bare-metal or VM) configured to network boot turns on
|
||||
⇣
|
||||
DHCP request broadcast
|
||||
⇣
|
||||
OpenWrt DHCP server responds, assigning an IP and providing PXE options in the response
|
||||
⇣
|
||||
Client downloads the GRUB bootloader, its theme and configuration files via TFTP
|
||||
⇣
|
||||
Once the client is within GRUB you can select the desired environment to boot into
|
||||
⇣
|
||||
Kernel, initramfs and other required files are loaded over HTTP via Nginx
|
||||
⇣
|
||||
If needed, additional files are now downloaded from the Internet
|
||||
⇣
|
||||
Selected OS / installer or environment is now loaded
|
||||
```
|
||||
## Features
|
||||
|
||||
- Lightweight, with less than 2GB of disk space and under 200MB of RAM used for the VM with fresh headless Debian 13 install
|
||||
|
||||
- UEFI and BIOS support
|
||||
|
||||
- Custom GRUB theme for UEFI based systems
|
||||
|
||||
- Zero DHCP dependency on server, will work in an existing environment
|
||||
|
||||
- TFTP for bootstrapping, HTTP for payloads
|
||||
|
||||
- Easy to add additional operating systems as additional menu entries and HTTP payloads
|
||||
|
||||
- Currently supports booting into AlmaLinux, Arch Linux, Clonezilla, Debian, Memtest and SystemRescue all from the same menu
|
||||
|
||||
- Installer files reside in dedicated storage directory which Nginx reads via symbolic links, allowing storage for payloads to be easily expanded
|
||||
|
||||
- Default option of booting into the already existing local disk allowing clients to remain configured for network boot
|
||||
|
||||
## Extremely useful documentation
|
||||
|
||||
https://manpages.debian.org/wheezy/dnsmasq-base/dnsmasq.8.en.html
|
||||
|
||||
https://www.rfc-editor.org/rfc/rfc4578.html
|
||||
|
||||
https://openwrt.org/docs/guide-user/base-system/dhcp
|
||||
|
||||
https://clonezilla.org/livepxe.php
|
||||
|
||||
https://www.system-rescue.org/manual/PXE_network_booting/
|
||||
|
||||
https://www.gnu.org/software/grub/manual/grub/html_node/Network.html
|
||||
|
||||
https://www.gnu.org/software/grub/manual/grub/html_node/Theme-file-format.html
|
||||
Reference in New Issue
Block a user