Developers

Building the ISO

The LeiOS installation image is built with Debian's live-build. Its configuration lives in the live-images repository.

Requirements

  • A Debian or Ubuntu build host. Debian stable or testing is recommended.
  • sudo access.
  • Several gigabytes of free space in /tmp and in the working directory.
  • These packages:
sudo apt-get update
sudo apt-get install live-build debootstrap squashfs-tools xorriso syslinux-common

The li helper script also needs Bun. It offers to install Bun if it is missing.

Build

git clone https://git.leicraftmc.de/LeiOS/live-images.git
cd live-images

# Configure the build (first time, and after every configuration change)
sudo lb config

# Build the image
sudo lb build

The image is written to the repository root as leios-<version>-amd64.hybrid.iso. Write it to a USB drive as described in Installation.

The li helper runs the full cycle in one go: ./li build runs lb clean --all, lb config and lb build. Like the lb commands, it needs root privileges.

For a clean, reproducible build, drop the package cache first:

sudo lb clean --purge

What the build contains

The live-build configuration (auto/config) builds:

  • Debian 13 "trixie" for amd64, with the security, updates and backports sources,
  • the main, contrib, non-free and non-free-firmware archive areas, including firmware,
  • a hybrid ISO that boots on BIOS (grub-pc) and UEFI (grub-efi) machines, with memtest86+.

Customizing

PathPurpose
config/package-lists/*.list.chrootPackages installed into the image.
config/includes.chroot/Files copied into the image as is, for example etc/os-release, the APT sources and the Calamares configuration.
config/hooks/*.hook.chrootScripts that run inside the image during the build, for example installing the LeiOS signing key.
config/bootloaders/Boot menu configuration and theme.
auto/configThe lb config options: distribution, architectures, archive areas, image name.

Run sudo lb config again after changing the configuration.

Troubleshooting

  • The build runs out of space. Free up space in /tmp and in the working directory.
  • A build fails unexpectedly. Clear stale artifacts with sudo lb clean --purge and rebuild.
  • You need details. Check the live-build log in the build tree.

For everything else, see the Debian Live manual.