fix(impermanence): rollback as systemd initrd service, not postDeviceCommands
themes/engine/plymouth.nix enables systemd stage-1 initrd (boot.initrd.systemd.enable) distro-wide, and Plymouth is imported unconditionally from core/system/default.nix. systemd stage 1 hard-rejects boot.initrd.postDeviceCommands with a failed assertion, so every config with nomarchy.system.impermanence.enable = true — including installs that chose impermanence at the installer prompt — failed to evaluate. Convert the Erase-Your-Darlings rollback to a boot.initrd.systemd.services oneshot unit ordered after the LUKS mapping opens and before sysroot.mount, and add boot.initrd.systemd.initrdBin for btrfs-progs/coreutils/util-linux/ findutils (the systemd initrd doesn't ship them by default). Script body is unchanged. Verified eval via extendModules on nixosConfigurations.default; boot-time wipe semantics still need a real wipe-boot cycle (Pillar 8). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -97,7 +97,7 @@ If churn continues, you have a config under `~/.config/<app>/` that home-manager
|
||||
error: The path '/persist' does not exist
|
||||
```
|
||||
|
||||
**Cause:** Impermanence requires (a) a `/persist` mountpoint that survives the boot wipe, and (b) every directory you want to keep must be in the persistence list. Nomarchy persists the basics in `core/system/impermanence.nix:46-72` (NetworkManager, Bluetooth, fprint, SSH host keys, the user's `.ssh` / `.gnupg` / Documents / Downloads / Pictures / Videos / Projects). Anything else you care about — Steam library, Flatpak data, custom dotfiles — must be added.
|
||||
**Cause:** Impermanence requires (a) a `/persist` mountpoint that survives the boot wipe, and (b) every directory you want to keep must be in the persistence list. Nomarchy persists the basics in `core/system/impermanence.nix:91-120` (NetworkManager, Bluetooth, fprint, SSH host keys, the user's `.ssh` / `.gnupg` / Documents / Downloads / Pictures / Videos / Projects). Anything else you care about — Steam library, Flatpak data, custom dotfiles — must be added.
|
||||
|
||||
**Fix:** Make sure `/persist` is mounted (check `mount | grep persist`). Then add the missing path in your `system.nix`:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user