# ADR: Use iPXE as the Primary Bootloader with Chaining for Architecture Independence

**Status:** Implemented

**Context:**  
Harmony requires a flexible and unified bootloader solution to handle both BIOS and UEFI architectures. We need support for dynamic boot configurations, advanced network booting capabilities, and the ability to manage diskless machines.

**Decision:**  
Adopt iPXE as the primary bootloader. For BIOS and UEFI clients, use chaining to load iPXE, ensuring all clients boot into a common iPXE environment.

**Consequences:**  
- **Benefits:**  
  - Single configuration file for all architectures.  
  - Enables dynamic and scripted boot processes.  
  - Supports booting over various protocols (HTTP, HTTPS, iSCSI, SAN, etc.).  
  - Allows diskless machines with networked root filesystems.  
- **Trade-offs:**  
  - Adds a dependency on iPXE.  
  - Requires proper configuration and maintenance of iPXE.
