Skip to content

Feature: _pxe ​

Description ​

Produces PXE network boot artifacts for Garden Linux, enabling live boot over the network with an optional disk installation capability.

What it does ​

_pxe builds a .pxe.tar.gz archive containing the artifacts required for network booting: a compressed SquashFS root filesystem (root.squashfs), a Linux kernel (vmlinuz), an initial ramdisk (initrd), and a kernel command line file (cmdline). When combined with _trustedboot or _unsigned for a Unified System Image (USI) build, a Unified Kernel Image (boot.efi) is also included.

The feature ships a custom dracut module (98gardenlinux-live) that handles fetching root.squashfs over HTTP at boot time and mounting it with a writable overlay. A default systemd-networkd configuration brings up the network interface during PXE boot.

_pxe includes _ignite to support Ignition-based first-boot configuration.

By default, _pxe produces an ephemeral live boot environment. For disk installation capability, also include:

WARNING

systemd-networkd-wait-online is configured to mark the system online when at least one interface comes up. On systems with multiple NICs on different network segments, the SquashFS fetch may fail if the interface that comes up first is not the one connected to the PXE server.

Files ​

Files present in this feature and their purpose. See the feature file reference for the semantics of each file type.

FilePurpose
exec.config (ref)Configures the image at build time for the PXE live-boot environment.
file.exclude (ref)Removes /etc/repart.d/root.conf so that disk repartitioning is skipped in the PXE-only image.
file.include.markers.yaml (ref)Maps files in this feature to test-coverage marker IDs.
image.pxe.tar.gz (ref)Build script that assembles the PXE tarball from the rootfs artifacts.
info.yaml (ref)Declares type: flag, artifact .pxe.tar.gz, and included features.
pkg.include (ref)Installs curl, dosfstools, btrfs-progs, xfsprogs, dracut-network, ca-certificates, and other packages needed for the live-boot and network environment.
file.include/etc/dracut.conf.d/20-gl-live.conf (file.include)Configures dracut to build a live-boot initrd with SquashFS and overlay support.
file.include/etc/dracut.conf.d/30-omit-cdc-ether.conf (file.include)Omits the cdc_ether driver from the initrd to avoid conflicts with certain network adapters during PXE boot.
file.include/etc/kernel/cmdline.d/80-pxe.cfg (file.include)Adds PXE-specific parameters to the kernel command line, including the SquashFS fetch URL.
file.include/etc/systemd/network/91-default.network (file.include)Default systemd-networkd configuration that brings up a network interface during early boot to fetch the SquashFS image.
file.include/usr/lib/dracut/modules.d/98gardenlinux-live/99-any.conf (file.include)Dracut module configuration ensuring the Garden Linux live-boot module is included for any architecture.
file.include/usr/lib/dracut/modules.d/98gardenlinux-live/cleanup.sh (file.include)Cleans up the live environment after the root filesystem has been mounted.
file.include/usr/lib/dracut/modules.d/98gardenlinux-live/gl-end.service (file.include)Systemd unit run in the initrd to finalize the live-boot sequence.
file.include/usr/lib/dracut/modules.d/98gardenlinux-live/is-live-image.sh (file.include)Helper script that detects whether the system is booting as a live image.
file.include/usr/lib/dracut/modules.d/98gardenlinux-live/live-get-squashfs.sh (file.include)Downloads the SquashFS root image from the PXE server during initrd execution.
file.include/usr/lib/dracut/modules.d/98gardenlinux-live/live-overlay-setup.sh (file.include)Sets up the writable overlay on top of the read-only SquashFS root.
file.include/usr/lib/dracut/modules.d/98gardenlinux-live/live-sysroot-generator.sh (file.include)Generates the sysroot mount units needed to pivot into the live root filesystem.
file.include/usr/lib/dracut/modules.d/98gardenlinux-live/module-setup.sh (file.include)Registers the Garden Linux live-boot dracut module and its dependencies.
file.include/usr/lib/dracut/modules.d/98gardenlinux-live/squash-mount-generator.sh (file.include)Generates the systemd mount unit for the SquashFS image during early boot.

Includes:

  • _ignite — Provides Ignition support for declarative first-boot configuration of the PXE-booted system.