/home was a tmpfs the whole time #129

Merged
lament merged 1 commit from home-subvol into main 2026-08-27 03:52:11 -05:00
Owner

Follow-up to #128. Creating /home/lament fixed the missing-cwd error, but the directory was landing on the tmpfs root - so the standalone HM profile, and everything else in there, died on every reboot. The Fate hosts lost theirs to a power outage longer than the UPS; athena had simply not rebooted since July, which is the only reason its 77M of /home still existed. That was RAM, not disk.

  • @home subvol added to bios-linode, uefi-plain, uefi-luks, uefi-laptop
    • uefi-lvm (ishtar) already had one - this brings the rest of the fleet to the pattern it set
    • nodatacow on the VM layouts to match their sibling subvols: btrfs-on-zfs would otherwise stack CoW on CoW. ishtar keeps compress=zstd, bare metal, no ZFS underneath
  • persistence now comes from an actual mount rather than bind-mounts hanging off /persist
    • sidesteps impermanence's users.<name> form entirely, which can't deduce a home for an sssd-only account (no users.users.lament to read it from)
  • #128's tmpfiles rule stays and gets better: it now fires once per install into a persistent /home, rather than every boot into a tmpfs

disko only lays subvols down at install time, so the four existing hosts had theirs created by hand (btrfs subvolume create against subvolid=5) before this lands. athena's tmpfs /home is deliberately not preserved - stale project dir, dead zsh history, a re-loginable claude session.

Needs a reboot per host to actually pick up the new mount.

Follow-up to #128. Creating `/home/lament` fixed the missing-cwd error, but the directory was landing on the tmpfs root - so the standalone HM profile, and everything else in there, died on every reboot. The Fate hosts lost theirs to a power outage longer than the UPS; athena had simply not rebooted since July, which is the only reason its 77M of `/home` still existed. That was RAM, not disk. - `@home` subvol added to `bios-linode`, `uefi-plain`, `uefi-luks`, `uefi-laptop` - `uefi-lvm` (ishtar) already had one - this brings the rest of the fleet to the pattern it set - `nodatacow` on the VM layouts to match their sibling subvols: btrfs-on-zfs would otherwise stack CoW on CoW. ishtar keeps `compress=zstd`, bare metal, no ZFS underneath - persistence now comes from an actual mount rather than bind-mounts hanging off `/persist` - sidesteps impermanence's `users.<name>` form entirely, which can't deduce a home for an sssd-only account (no `users.users.lament` to read it from) - #128's tmpfiles rule stays and gets better: it now fires once per install into a persistent `/home`, rather than every boot into a tmpfs disko only lays subvols down at install time, so the four existing hosts had theirs created by hand (`btrfs subvolume create` against `subvolid=5`) before this lands. athena's tmpfs `/home` is deliberately not preserved - stale project dir, dead zsh history, a re-loginable claude session. Needs a reboot per host to actually pick up the new mount.
give /home its own subvol instead of leaving it on tmpfs
All checks were successful
CI / check (pull_request) Successful in 47s
CI / deploy (pull_request) Has been skipped
CI / build (pull_request) Successful in 2m27s
CI / dry-activate (pull_request) Successful in 32s
CI / check (push) Has been skipped
CI / build (push) Has been skipped
CI / dry-activate (push) Has been skipped
CI / deploy (push) Successful in 2m35s
150bf50c12
/home was riding the tmpfs root everywhere but ishtar, so lament's home - HM
profile included - evaporated on every reboot. @home subvol per layout, matching
the one ishtar already had. nodatacow on the VMs (btrfs-on-zfs), zstd on ishtar's
bare metal. subvols created by hand on the existing hosts; disko only lays them
down at install.
lament merged commit 150bf50c12 into main 2026-08-27 03:52:11 -05:00
lament deleted branch home-subvol 2026-08-27 03:52:11 -05:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
lament/pantheon!129
No description provided.