photoncloud-monorepo/chainfire/baremetal/pxe-server/http/directory-structure.txt
centra 5c6eb04a46 T036: Add VM cluster deployment configs for nixos-anywhere
- netboot-base.nix with SSH key auth
- Launch scripts for node01/02/03
- Node configuration.nix and disko.nix
- Nix modules for first-boot automation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-11 09:59:19 +09:00

81 lines
3.1 KiB
Text

# PXE Boot Server Directory Structure
#
# This document describes the directory layout for the HTTP/TFTP server
# that serves PXE boot assets.
#
# Base Directory: /var/lib/pxe-boot/
/var/lib/pxe-boot/
├── ipxe/ # iPXE bootloaders and scripts
│ ├── undionly.kpxe # iPXE bootloader for BIOS (legacy)
│ ├── ipxe.efi # iPXE bootloader for UEFI x86-64
│ ├── ipxe-i386.efi # iPXE bootloader for UEFI x86 32-bit (rare)
│ ├── boot.ipxe # Main boot script (served via HTTP)
│ └── README.txt # Documentation
├── nixos/ # NixOS netboot images
│ ├── bzImage # Linux kernel (compressed)
│ ├── initrd # Initial ramdisk
│ ├── squashfs # Root filesystem (if using squashfs)
│ ├── version.txt # Build version info
│ └── profiles/ # Profile-specific boot images (optional)
│ ├── control-plane/
│ │ ├── bzImage
│ │ └── initrd
│ ├── worker/
│ │ ├── bzImage
│ │ └── initrd
│ └── all-in-one/
│ ├── bzImage
│ └── initrd
└── README.txt # Top-level documentation
# TFTP Directory (if using separate TFTP server)
# Usually: /var/lib/tftpboot/ or /srv/tftp/
/var/lib/tftpboot/
├── undionly.kpxe # Symlink to /var/lib/pxe-boot/ipxe/undionly.kpxe
├── ipxe.efi # Symlink to /var/lib/pxe-boot/ipxe/ipxe.efi
└── ipxe-i386.efi # Symlink to /var/lib/pxe-boot/ipxe/ipxe-i386.efi
# URL Mapping
# The following URLs are served by nginx:
#
# http://10.0.100.10/boot/ipxe/boot.ipxe
# -> /var/lib/pxe-boot/ipxe/boot.ipxe
#
# http://10.0.100.10/boot/ipxe/undionly.kpxe
# -> /var/lib/pxe-boot/ipxe/undionly.kpxe
#
# http://10.0.100.10/boot/nixos/bzImage
# -> /var/lib/pxe-boot/nixos/bzImage
#
# http://10.0.100.10/boot/nixos/initrd
# -> /var/lib/pxe-boot/nixos/initrd
# File Sizes (Typical)
# - undionly.kpxe: ~100 KB
# - ipxe.efi: ~1 MB
# - boot.ipxe: ~10 KB (text script)
# - bzImage: ~10-50 MB (compressed kernel)
# - initrd: ~50-500 MB (depends on included tools/drivers)
# Permissions
# All files should be readable by the nginx user:
# chown -R nginx:nginx /var/lib/pxe-boot
# chmod -R 755 /var/lib/pxe-boot
# chmod 644 /var/lib/pxe-boot/ipxe/*
# chmod 644 /var/lib/pxe-boot/nixos/*
# Disk Space Requirements
# Minimum: 1 GB (for basic setup with one NixOS image)
# Recommended: 5-10 GB (for multiple profiles and versions)
# - Each NixOS profile: ~500 MB - 1 GB
# - Keep 2-3 versions for rollback: multiply by 2-3x
# - Add buffer for logs and temporary files
# Backup Recommendations
# - Boot scripts (ipxe/*.ipxe): Version control (git)
# - Bootloaders (ipxe/*.kpxe, *.efi): Can re-download, but keep backups
# - NixOS images: Can rebuild from S3 builder, but keep at least 2 versions
# - Configuration files: Version control (git)