Migrating an existing Bluefin to Dakota (ComposeFS)
bootc-migrate-composefs
converts an in-place, already-installed OSTree-backed Bluefin system into
a ComposeFS-backed Dakota system β no reinstall, and /home, /var,
/etc customizations, flatpaks, container storage, and user accounts all
survive the trip.
The previous OSTree deployment stays in the boot menu as a fallback the
whole time, and the migration is reversible up until you run commit.
Interactive wizardβ
The easiest way in is the terminal wizard β no flags to remember:
sudo bootc-migrate-composefs tui
It walks through target image selection, a plain-English review of exactly what's about to happen, and a live phase-by-phase progress view with scrollable logs. Browsing the wizard doesn't require root β only pressing Run does, since that's when it actually spawns the migration.






Quick start (flags, no wizard)β
# 1. Get the migrator
curl -fsSL -o bmc.tar.gz \
https://github.com/tuna-os/bootc-migrate-composefs/releases/latest/download/bootc-migrate-composefs-x86_64-unknown-linux-gnu.tar.gz
tar xzf bmc.tar.gz
sudo install -m755 bootc-migrate-composefs /usr/local/bin/
# 2. Dry-run β makes no changes, just checks your system is ready
sudo bootc-migrate-composefs --target-image ghcr.io/projectbluefin/dakota:stable --dry-run
# 3. Migrate (~5β25 min depending on cache/network)
sudo bootc-migrate-composefs --target-image ghcr.io/projectbluefin/dakota:stable
# 4. Reboot β the new composefs entry is the default
sudo systemctl reboot
# 5. Confirm, then make it permanent
cat /proc/cmdline | grep -o 'composefs=[0-9a-f]*'
sudo bootc-migrate-composefs commit # one-way; removes the OSTree fallback
Back up anything you can't afford to lose first. This rewrites how your
system boots. It's reversible until you run commit β but treat it as risky
until you've rebooted and confirmed everything works.
For the full phase-by-phase breakdown, filesystem support (Bluefin LTS/XFS,
LVM, LUKS, dedicated /var), rollback, and troubleshooting, see the
project README.
See alsoβ
- Dakota β the image you're migrating to