| 6 Jul 2025 |
musicmatze | So far that worked nicely | 14:21:47 |
| Derpy (they/any) changed their display name from Any (they/any) to Derpy (they/any). | 17:00:19 |
| 7 Jul 2025 |
| Zempashi joined the room. | 09:49:56 |
| Zempashi changed their display name from Julien Girardin to Zempashi. | 11:07:13 |
| Vladislav Grechannik joined the room. | 17:28:14 |
Vladislav Grechannik | Does anybody run multiple bcachefs subvolumes with encryption? It bothers me that it asks for a password each time on boot (in my case I have to enter my password 3 times for each subvolume) | 17:31:33 |
@steeringwheelrules:tchncs.de | are there any examples of zfs setup that works with hibernation? as far as I'm aware it only needs to not be used for the swap partition, but the rest of the drives (including nixos) can be zfs, right? | 22:31:26 |
magic_rb | No, zfs shouldnt be used for hibernation period | 22:33:15 |
| 8 Jul 2025 |
shelvacu | In reply to @steeringwheelrules:tchncs.de are there any examples of zfs setup that works with hibernation? as far as I'm aware it only needs to not be used for the swap partition, but the rest of the drives (including nixos) can be zfs, right? my understanding is that for hibernation, the hiberfile is loaded in initrd. If the zfs pool is also loaded/mounted for any reason during that initrd, then after the memory gets restored zfs will have inconsistent information about the pool. I wouldn't risk it | 02:43:17 |
magic_rb | Yeah zfs has no safeguards against this case. So theoretically if you avoid the scenario above it may be safe. But even then its a very untested codepath, though to be honest so is suspend and that seems to be working completely fine | 06:02:53 |
| Zempashi removed their profile picture. | 15:54:47 |
| 9 Jul 2025 |
| jonhermansen joined the room. | 01:17:27 |
| znaniye joined the room. | 14:04:06 |
| 10 Jul 2025 |
| bbigras joined the room. | 18:20:56 |
[0x4A6F] | This might work for hibernation:
disko.devices = {
disk = {
nvme0n1 = {
device = "/dev/nvme0n1";
type = "disk";
content = {
type = "gpt";
partitions = {
boot = {
priority = 1;
start = "34s";
end = "2047s";
type = "EF02"; # for grub MBR
};
ESP = {
priority = 2;
start = "2048s";
end = "2099199s";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
};
};
luks = {
priority = 3;
start = "2099200s";
end = "100%";
type = "8309";
content = {
type = "luks";
name = "crypted-nvme0n1";
settings = {
allowDiscards = true;
};
content = {
type = "lvm_pv";
vg = "nvme0n1";
};
};
};
};
};
};
};
lvm_vg = {
nvme0n1 = {
type = "lvm_vg";
lvs = {
# LVs are created in alphabetic order for some reason
# Prefixing them with a letter like this ensures desired creation order
a_swap = {
size = "64GiB"; # equal size to maximum available RAM
content = {
type = "swap";
};
};
z_data = {
size = "100%FREE";
content = {
type = "zfs";
pool = "root";
};
};
};
};
};
zpool = {
root = {
type = "zpool";
rootFsOptions = {
compression = "lz4";
"com.sun:auto-snapshot" = "false";
mountpoint = "none";
reservation = "16G";
};
postCreateHook = ''
zfs snapshot root@blank;
zfs snapshot root/nixos@blank;
zfs snapshot root/nix@blank;
zfs snapshot root/home@blank;
zfs snapshot root/persist@blank
'';
datasets = {
nixos = {
type = "zfs_fs";
mountpoint = "/";
options.mountpoint = "legacy";
};
nix = {
type = "zfs_fs";
mountpoint = "/nix";
options.mountpoint = "legacy";
};
home = {
type = "zfs_fs";
mountpoint = "/home";
options.mountpoint = "legacy";
options."com.sun:auto-snapshot" = "true";
};
persist = {
type = "zfs_fs";
mountpoint = "/persist";
options.mountpoint = "legacy";
options."com.sun:auto-snapshot" = "true";
};
};
};
};
};
But be aware of zfs#12842 - make Linux hibernation (suspend-to-disk) more robust and nixpkgs#208037 - nixos/zfs: mitigate data loss issues when resuming from hibernate
You might also need these to enter the danger territory (make yourself familiar with zpool recovery strategy):
boot.zfs.allowHibernation = true;
boot.zfs.forceImportRoot = false;
boot.zfs.forceImportAll = false;
| 21:17:01 |
@steeringwheelrules:tchncs.de | thank you! I will try and play with this | 23:28:11 |
| 11 Jul 2025 |
| Cathal joined the room. | 19:53:53 |
| 13 Jul 2025 |
| Marie changed their profile picture. | 20:11:57 |
| 14 Jul 2025 |
bbigras | Is btrs okay for hibernation? | 23:11:06 |
| 15 Jul 2025 |
@steeringwheelrules:tchncs.de | been using it for years now and hadn't had any issues with hibernation | 17:53:55 |
bbigras | "/swap" = {
mountpoint = "/.swapvol";
swap.swapfile.size = "20M";
};
https://github.com/nix-community/disko/blob/2bf3421f7fed5c84d9392b62dcb9d76ef09796a7/example/luks-btrfs-subvolumes.nix#L57-L60
Is this a swap partition or a swap file?
| 19:31:30 |
blimbus | swap file | 20:47:47 |
| 17 Jul 2025 |
| @ersei:ersei.net left the room. | 15:35:11 |
| Tom joined the room. | 19:09:10 |
bbigras | swap.swapfile.size = "20M"; Why only 20M? will it grow on itself? | 22:48:14 |
| ribosomerocker joined the room. | 23:58:44 |
| 18 Jul 2025 |
| @dont.wanna.tell:matrix.org left the room. | 09:24:48 |
| 21 Jul 2025 |
| rocky ((λ💝.💝)💐) (she/they; ask before DM please) changed their display name from pink_rocky to pink_rocky (she/they; ask before DM please). | 07:30:57 |
| Ab Kein set a profile picture. | 15:54:48 |
| tioan joined the room. | 22:16:20 |