particle-os/02-installer-bootc
2025-08-05 04:14:29 +00:00
..
calamares-config first commit 2025-08-05 04:14:29 +00:00
scripts first commit 2025-08-05 04:14:29 +00:00
Containerfile first commit 2025-08-05 04:14:29 +00:00
create-vm.sh first commit 2025-08-05 04:14:29 +00:00
justfile first commit 2025-08-05 04:14:29 +00:00
README.md first commit 2025-08-05 04:14:29 +00:00
test-container-vm.sh first commit 2025-08-05 04:14:29 +00:00
test-vm.sh first commit 2025-08-05 04:14:29 +00:00

Debian Atomic Desktop - Bootc Installer (Phase 2 Alternative)

This is an alternative approach to Phase 2 that uses bootc + Calamares instead of live-build. This approach is more modern and consistent with our atomic architecture.

Architecture Overview

Instead of using live-build to create a traditional installer ISO, this approach:

  1. Creates a bootc container that includes Calamares
  2. Calamares handles partitioning, user setup, and system configuration
  3. Post-install script uses bootc install to deploy the atomic image
  4. bootc creates the ISO from the container

Advantages Over Live-Build

  • Consistent tooling - Everything uses bootc
  • No sysvinit conflicts - Pure systemd environment
  • Atomic guarantees - The installer itself is atomic
  • Simpler maintenance - One build system instead of two
  • Modern approach - Uses container-native tooling

Quick Start

  1. Build the installer:

    just build-installer
    
  2. Test the installer:

    just test-installer-systemd
    
  3. Create ISO (when ready):

    just create-iso
    

How It Works

1. Container Build

The Containerfile creates a bootc container with:

  • Calamares installer
  • bootc for atomic deployment
  • Systemd services
  • Partitioning tools

2. Calamares Configuration

  • settings.conf - Main Calamares configuration
  • Handles partitioning, user setup, etc.
  • Calls our post-install script

3. Post-Install Script

  • post-install.sh - Uses bootc to deploy atomic image
  • Gets target device from Calamares
  • Runs bootc install to-disk

4. ISO Creation

  • bootc creates bootable ISO from container
  • ISO boots into Calamares installer
  • Installer deploys atomic image

File Structure

02-installer-bootc/
├── Containerfile          # Bootc container definition
├── justfile              # Build automation
├── README.md             # This file
├── calamares-config/     # Calamares configuration
│   └── settings.conf     # Main Calamares settings
└── scripts/              # Installation scripts
    └── post-install.sh   # Bootc deployment script

Comparison with Live-Build Approach

Aspect Live-Build Bootc + Calamares
Build System live-build bootc
Dependencies Complex package conflicts Clean container
Maintenance Two build systems One build system
Atomic Guarantees Limited Full atomic
Modern Tooling Traditional Container-native

Next Steps

  1. Test the basic container - Verify Calamares works
  2. Configure Calamares - Add proper partitioning and user modules
  3. Test bootc deployment - Verify atomic image installation
  4. Create ISO - Use bootc to generate bootable ISO
  5. Integration testing - Test full installation flow

Prerequisites

  • podman or docker
  • just
  • bootc
  • qemu (for testing)

This approach should eliminate the sysvinit conflicts we encountered with live-build and provide a cleaner, more modern installer experience.