diff options
| author | Isabella Bastaja <isabella@sorre.xyz> | 2026-10-04 21:29:47 +0200 |
|---|---|---|
| committer | Isabella Bastaja <isabella@sorre.xyz> | 2026-10-06 23:25:49 +0200 |
| commit | 91629938bb4f455c5c04331d4a8fa60253ffa435 (patch) | |
| tree | 99d3c012d31d3fb5bfe2c27bdf430921c53ab0ba /hosts/enode/impermenance.nix | |
| parent | cdb8341737e398743a5e5b13d24b408fd8398974 (diff) | |
enode: disk setup, minor fixes
Diffstat (limited to 'hosts/enode/impermenance.nix')
| -rw-r--r-- | hosts/enode/impermenance.nix | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/hosts/enode/impermenance.nix b/hosts/enode/impermenance.nix new file mode 100644 index 0000000..9915bb1 --- /dev/null +++ b/hosts/enode/impermenance.nix @@ -0,0 +1,36 @@ +{ lib, ... }: { + boot.initrd.postDeviceCommands = lib.mkAfter '' + echo "Rollback running" > /mnt/rollback.log + mkdir -p /mnt + mount -t btrfs /dev/mapper/cryptroot /mnt + + # Recursively delete all nested subvolumes inside /mnt/root + btrfs subvolume list -o /mnt/root | cut -f9 -d' ' | while read subvolume; do + echo "Deleting /$subvolume subvolume..." >> /mnt/rollback.log + btrfs subvolume delete "/mnt/$subvolume" + done + + echo "Deleting /root subvolume..." >> /mnt/rollback.log + btrfs subvolume delete /mnt/root + + echo "Restoring blank /root subvolume..." >> /mnt/rollback.log + btrfs subvolume snapshot /mnt/root-blank /mnt/root + + umount /mnt + ''; + + # Use /persist as the persistence root, matching Disko's mountpoint + environment.persistence."/persist" = { + hideMounts = true; + directories = [ + "/var/lib/backups" + "/var/lib/headscale" + "/var/lib/caddy" # for certs + ]; + files = [ + "/etc/machine-id" + "/etc/shadow" + "/etc/passwd" + ]; + }; +} |
