particleos-installer/todo.md

4.6 KiB

ParticleOS ISO Builder - TODO

Project Goals

  • Create a bootable ISO for ParticleOS using bootc
  • Implement atomic image installation to VM/bare metal
  • Build a true bootc-native approach

COMPLETED TODAY (2025-07-24)

Major Achievements:

  1. Successfully Created ISO: Generated output/particleos-250724-0759.iso (928MB)
  2. Fixed All Build Issues: Resolved dependency conflicts, Dockerfile syntax errors, and missing directories
  3. Implemented True bootc Native Approach:
    • Created separate system image (particleos-system:latest) and live image (particleos-live:latest)
    • Built minimal live environment with bootc tools
    • Embedded install-particleos script for deployment
  4. Robust Package Management: Dynamic package detection for any version of bootc/ostree packages
  5. Complete Dependency Resolution: All required libraries and tools properly installed
  6. ISO Boots in QEMU: VM starts and kernel loads (though has rootfs mounting issue)

Technical Fixes Applied:

  • Dependency Issues: Fixed bootc dependencies (podman, skopeo, libglib2.0-0t64, etc.)
  • Dockerfile Syntax: Separated install-particleos script from embedded content
  • Directory Structure: Added missing isolinux directory creation
  • Syslinux Modules: Robust detection for ldlinux.c32 and other .c32 modules
  • Package Installation: Dynamic version detection for all custom packages

🔄 CURRENT STATUS

  • ISO Created: output/particleos-250724-0759.iso (928MB compressed)
  • VM Boots: QEMU VM starts and kernel loads
  • Root Issue: Kernel panic - "Unable to mount root fs on unknown-block(0,0)"

🎯 NEXT STEPS (Priority Order)

1. Fix Live Environment Root Filesystem (CRITICAL)

  • Issue: Live environment can't mount its root filesystem
  • Root Cause: Likely missing or incorrect casper/live-boot configuration
  • Actions Needed:
    • Verify casper configuration in live environment
    • Check initramfs includes proper live-boot modules
    • Ensure squashfs is properly referenced in bootloader config
    • Test with simpler live-boot setup first

2. Debug Live Boot Process

  • Actions:
    • Add debug parameters to kernel boot line
    • Check initramfs contents for live-boot scripts
    • Verify casper.conf and filesystem.manifest are correct
    • Test with Ubuntu's standard live-boot configuration

3. Improve Installer Experience

  • Current: Basic command-line installer with device selection
  • Future: Consider graphical installer or guided text interface
  • Features to add:
    • Partitioning options
    • User account creation
    • Network configuration
    • Progress indicators

4. Test Installation Process

  • Actions:
    • Test bootc install command in live environment
    • Verify system image deployment works
    • Test booting installed system
    • Validate atomic update capabilities

5. Documentation and Polish

  • Actions:
    • Document build process
    • Create user installation guide
    • Add error handling and recovery options
    • Optimize ISO size and boot speed

🔧 TECHNICAL DEBT

  • Live-boot Configuration: Needs proper setup for custom live environment
  • Error Handling: Add better error messages and recovery options
  • Testing: Need automated testing for build and installation process
  • Documentation: Comprehensive guides for users and developers

📊 BUILD METRICS

  • System Image: ~1.4GB uncompressed
  • Live Image: ~928MB compressed
  • Build Time: ~10-15 minutes
  • Dependencies: All resolved successfully

🎉 SUCCESS INDICATORS

  • ISO builds without errors
  • All dependencies resolved
  • VM boots and kernel loads
  • Live environment mounts root filesystem
  • Installer script works correctly
  • System image deploys successfully
  • Installed system boots and works

🚀 ULTIMATE GOAL

Create a production-ready ParticleOS ISO that:

  1. Boots reliably on various hardware
  2. Provides intuitive installation experience
  3. Deploys atomic bootc-managed system
  4. Supports seamless updates and rollbacks

Discussions

Discuess targeting Plucky Penguin or event Questing Quokka since it's only 2 months from release
Discuss update build to use latest KDE Plasma 6 with default to Wayland
Discuss blocking AppArmor and switch to SELinux in the image creation. ** See selinux_ubuntu.md **
Once we can build a iso, create ci/cd to, include artifacts or release.
Discuss how to get flatpak installed and install certain flatpak application
Discuss things missing but ** can ** be migrated from Aurora, Bazzite, and Bluefin