4.6 KiB
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:
- ✅ Successfully Created ISO: Generated
output/particleos-250724-0759.iso(928MB) - ✅ Fixed All Build Issues: Resolved dependency conflicts, Dockerfile syntax errors, and missing directories
- ✅ 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-particleosscript for deployment
- Created separate system image (
- ✅ Robust Package Management: Dynamic package detection for any version of bootc/ostree packages
- ✅ Complete Dependency Resolution: All required libraries and tools properly installed
- ✅ 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:
- Boots reliably on various hardware
- Provides intuitive installation experience
- Deploys atomic bootc-managed system
- 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