beefcake/impermanence: seed machine-id in initrd (fixes the dbus crash-loop) #726
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix-impermanence-machineid"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The fix for flip-attempt-#1's dbus crash-loop. ROOT CAUSE (proven from the failed boot's own persisted journal): on the @blank-wiped root, /etc/machine-id is absent when PID1 starts → systemd generates a random transient id + ConditionFirstBoot=true → dbus-broker's launcher fails its privilege-drop (launcher_run_child: Permission denied) → crash-loops every 90s → NetworkManager never starts → no network → boot hangs. The persistence layer's activation-time machine-id symlink lands ~50s too late.
FIX: an initrd service (persist-machine-id) copies the persisted machine-id onto the fresh root BEFORE switch-root (after rollback + the stage-1 /persist mount), so PID1 sees it and boots normally. Self-seeding so a missing machine-id can never re-trigger the loop.
PROVEN in the VM (rollback-config now runs dbus+NetworkManager+avahi on the wiped ZFS-rollback root with /persist mounted stage-1 exactly as beefcake does): machine-id stable across the wipe (==/persist), is-system-running=running (converged, not hung), dbus+NM active, no crash-loop — all PASS.
Flag stays OFF (held by #725). Retry #2 after this + #725 land = re-flip + deploy --boot + reboot. Datasets (@blank, /persist) still staged on beefcake.
🤖 Generated with Claude Code
https://claude.ai/code/session_01G7HHrn1sxz4ozvREyHmi4i