Calamares: A Distribution-Independent Installer
Calamares: A Distribution-Independent Installer
While Anaconda is tightly coupled to the Fedora/RPM ecosystem and Debian-Installer is tied to debconf and dpkg, Calamares is the preeminent distribution-independent, modular installer framework.
+-----------------------------------------------------------+
| Calamares Architecture |
| |
| [ Modern Qt6 / C++ Wizard Interface ] |
| | |
| v |
| [ Modular Execution Queue (settings.conf) ] |
| | |
| v |
| Phase 1: Welcome & Language Selection (welcome.conf) |
| Phase 2: Timezone & Geographic Region (locale.conf) |
| Phase 3: Keyboard Layout Mapping (keyboard.conf) |
| Phase 4: Disk Partitioning & LUKS FDE (partition.conf) |
| Phase 5: User & Password Creation (users.conf) |
| Phase 6: Unpack / rsync Payload (unpackfs.conf) |
| Phase 7: Bootloader Installation (bootloader.conf) |
| Phase 8: Finishing & Clean Reboot (finished.conf) |
+-----------------------------------------------------------+
Why Calamares is Ideal for Custom Distributions
- Clean Separation of Concerns: Calamares does not care what package manager you use. It can unpack a raw tarball, clone an existing SquashFS image, or call custom python scripts.
- Modular Architecture: Modules are implemented in C++ or Python 3. You can replace, reorder, or add custom installation steps by editing YAML/Python configurations.
- Hardware Partitioning: Calamares integrates the robust KDE Partition Manager backend (KPMcore), supporting LUKS encryption, Btrfs subvolumes, ZFS, and manual partition resizing out of the box.
Configuring Calamares for BYOL
Calamares is controlled by a top-level /etc/calamares/settings.conf file:
# /etc/calamares/settings.conf
modules-search: [ local ]
sequence:
- show:
- welcome
- locale
- keyboard
- partition
- users
- summary
- exec:
- partition
- mount
- unpackfs
- machineid
- fstab
- locale
- keyboard
- localecfg
- users
- networkcfg
- bootloader
- umount
- show:
- finished
branding: byol
prompt-install: true
dont-chroot: falseIn the unpackfs step, Calamares simply reads the running SquashFS layer from the live ISO and streams it directly to the newly partitioned target disk. In less than 3 minutes, the user has installed a clean copy of your distribution!