| 13 Feb 2024 |
maralorn | * That way I start every boot with a clean / which has the same /nix and /disk. | 02:40:42 |
maralorn | No clue however if I can teach nixos to do those operations in that order.^^ | 02:41:10 |
maralorn | In reply to @lassulus:lassul.us maybe it becomes a loop thingie? I think so. / would depend on itself before it can be mounted. | 02:44:53 |
hexa | In reply to @maralorn:maralorn.de I most certainly don’t want btrfs.^^ I only recommend btrfs to my enemies | 02:51:11 |
raitobezarius | maralorn: bcachefs subvolumes are just directories with a special metadata attached | 03:05:26 |
raitobezarius | like btrfs ones | 03:05:27 |
raitobezarius | the only thing btrfs has over bcachefs in this instance is a mount option to make the binding not require any "parent" to be mount IIRC | 03:06:36 |
raitobezarius | (which is also fixable at bcachefs level if you are willing to do some C and Rust :P) | 03:07:07 |
raitobezarius | (but it's on my todolist to fix anyway) | 03:08:18 |
raitobezarius | In reply to @maralorn:maralorn.de No clue however if I can teach nixos to do those operations in that order.^^ I'd assume you'll need custom systemd unit code for this | 03:10:50 |
raitobezarius | or maybe even not if you can use the weird x.systemd-requires thingies to order your filesystem mountpoints magically | 03:11:37 |
raitobezarius | to be precise: https://www.freedesktop.org/software/systemd/man/latest/systemd.mount.html | 03:12:26 |
raitobezarius | IIRC, they can be passed as options to fileSystems.xyz.mountOptions or something | 03:12:51 |
raitobezarius | the only weird issue is that the last bind mount is going to redefine fileSystems."/" I guess (?) | 03:13:22 |
maralorn | There is of course also the option of simply rollbacking manually with something like "rm -rf /" which excludes /nix and /disk.^^ | 03:13:25 |
maralorn | In reply to @raitobezarius:matrix.org the only weird issue is that the last bind mount is going to redefine fileSystems."/" I guess (?) Yeah, thats exactly the part I am stumbling over. | 03:13:54 |
raitobezarius | I don't strongly recommend classical impermanence at this point with bcachefs | 03:13:54 |
raitobezarius | Not that it doesn't work | 03:13:58 |
raitobezarius | But well, bcachefs is still an experimental filesystem in the kernel | 03:14:06 |
raitobezarius | And snapshot code is the one that can exercise some annoyances | 03:14:13 |
raitobezarius | (normally the fsck is automatic healing but you probably don't want to come to #bcache and do a plea for manual recovery of your stuff :p) | 03:14:46 |
raitobezarius | In reply to @maralorn:maralorn.de Yeah, thats exactly the part I am stumbling over. You can sidestep this difficulty by giving up on adequate nixos modelling and just having a "final-fixup" unit which is orchestrated before local filesystems are ready but after all the subvolumes are mount | 03:15:16 |
raitobezarius | I personally think it's easier to write the feature inside bcachefs then writing this sort of clunky of operations :D | 03:15:34 |
raitobezarius | This will have weird interactions with many things, notably if you do multi-device bcachefs | 03:15:45 |
raitobezarius | (mounting a device in degraded, mount binding something coming from another location) | 03:16:05 |
maralorn | In reply to @raitobezarius:matrix.org You can sidestep this difficulty by giving up on adequate nixos modelling and just having a "final-fixup" unit which is orchestrated before local filesystems are ready but after all the subvolumes are mount That could actually work. | 03:17:35 |
raitobezarius | * I personally think it's easier to write the feature inside bcachefs than writing this sort of clunky of operations :D | 03:17:51 |
maralorn | Anyway. I have had great success with tmpfs on / for years. Would be stupid to change that exactly now where it becomes an uphill battle. | 03:18:37 |
maralorn | I just wanted to check out if I can do it the "proper" way. | 03:19:38 |
raitobezarius | In 6 mo - 1 year, maybe the proper way is fully fleshed out | 03:19:54 |