| 11 Apr 2026 |
matthewcroughan | you can fined the same here from 2024 too | 22:14:57 |
matthewcroughan | not sure where to find the defaults tbh | 22:15:03 |
matthewcroughan | better to be explicit and not beholden to defaults though, no? | 22:15:17 |
| 12 Apr 2026 |
pandapip1 | I've had this in my config for a while
fileSystems."/data".options = [ "nofail" ]; # TODO find out why we need this!
# Notably, https://github.com/nix-community/disko/blob/3a9450b26e69dcb6f8de6e2b07b3fc1c288d85f5/tests/zfs.nix#L12 also needs this
disko.devices = {
disk = {
...
data0 = {
type = "disk";
content = {
type = "gpt";
partitions = {
zfs = {
size = "100%";
content = {
type = "zfs";
pool = "data";
};
};
};
};
};
data1 = {
type = "disk";
content = {
type = "gpt";
partitions = {
zfs = {
size = "100%";
content = {
type = "zfs";
pool = "data";
};
};
};
};
};
};
zpool = {
data = {
type = "zpool";
mode = "mirror";
rootFsOptions = {
compression = "lz4";
"com.sun:auto-snapshot" = "true";
};
postCreateHook = "zfs list -t snapshot -H -o name | grep -E '^data@blank$' || zfs snapshot data@blank";
datasets = {
"main" = {
type = "zfs_fs";
mountpoint = "/data";
};
};
};
};
};
Got any idea why the nomount is needed? It still mounts correctly, it just shows up as failing on boot, and if nomount isn't set it blocks boot.
| 00:26:21 |
pandapip1 | * I've had this in my config for a while
fileSystems."/data".options = [ "nofail" ]; # TODO find out why we need this!
# Notably, https://github.com/nix-community/disko/blob/3a9450b26e69dcb6f8de6e2b07b3fc1c288d85f5/tests/zfs.nix#L12 also needs this
disko.devices = {
disk = {
...
data0 = {
type = "disk";
content = {
type = "gpt";
partitions = {
zfs = {
size = "100%";
content = {
type = "zfs";
pool = "data";
};
};
};
};
};
data1 = {
type = "disk";
content = {
type = "gpt";
partitions = {
zfs = {
size = "100%";
content = {
type = "zfs";
pool = "data";
};
};
};
};
};
};
zpool = {
data = {
type = "zpool";
mode = "mirror";
rootFsOptions = {
compression = "lz4";
"com.sun:auto-snapshot" = "true";
};
postCreateHook = "zfs list -t snapshot -H -o name | grep -E '^data@blank$' || zfs snapshot data@blank";
datasets = {
"main" = {
type = "zfs_fs";
mountpoint = "/data";
};
};
};
};
};
Got any idea why the nomount is needed? It still mounts correctly, it just shows up as failing on boot, and if nomount isn't set it blocks boot.
| 00:26:30 |
pandapip1 | * I've had this in my config for a while
fileSystems."/data".options = [ "nofail" ]; # TODO find out why we need this!
# Notably, https://github.com/nix-community/disko/blob/3a9450b26e69dcb6f8de6e2b07b3fc1c288d85f5/tests/zfs.nix#L12 also needs this
disko.devices = {
disk = {
...
data0 = {
type = "disk";
content = {
type = "gpt";
partitions = {
zfs = {
size = "100%";
content = {
type = "zfs";
pool = "data";
};
};
};
};
};
data1 = {
type = "disk";
content = {
type = "gpt";
partitions = {
zfs = {
size = "100%";
content = {
type = "zfs";
pool = "data";
};
};
};
};
};
};
zpool = {
data = {
type = "zpool";
mode = "mirror";
rootFsOptions = {
compression = "lz4";
"com.sun:auto-snapshot" = "true";
};
postCreateHook = "zfs list -t snapshot -H -o name | grep -E '^data@blank$' || zfs snapshot data@blank";
datasets = {
"main" = {
type = "zfs_fs";
mountpoint = "/data";
};
};
};
};
};
Got any idea why the nofail is needed? It still mounts correctly, it just shows up as failing on boot, and if nofail isn't set it blocks boot.
| 00:27:50 |
matthewcroughan | hmm | 18:48:19 |
matthewcroughan | nixos-disko-images-aarch64-linux> [2026-04-12T18:47:09Z INFO virtiofsd] Client disconnected, shutting down
nixos-disko-images-aarch64-linux> [2026-04-12T18:47:09Z INFO virtiofsd] Client disconnected, shutting down
nixos-disko-images-aarch64-linux> Virtual machine didn't produce an exit code.
error: build of '/nix/store/iqb7h2cw2bgh42l6pkijwm4g1fcqwzcw-nixos-disko-images.drv' on 'ssh-ng://nix-ssh@m2u' failed: Cannot build '/nix/store/iqb7h2cw2bgh42l6pkijwm4g1fcqwzcw-nixos-disko-images.drv'. | 18:48:21 |
matthewcroughan | that's a new one | 18:48:22 |
matthewcroughan | Why does disko spew tons of empty newlines? | 18:54:44 |
matthewcroughan |  Download image.png | 18:54:46 |
matthewcroughan | extraPostVM logs don't go here either | 18:55:01 |
matthewcroughan | something wants to get out and log, but not sure what | 18:56:09 |
| @emma:rory.gay left the room. | 18:57:01 |
matthewcroughan | * nixos-disko-images-aarch64-linux> \[2026-04-12T18:47:09Z INFO virtiofsd\] Client disconnected, shutting down
nixos-disko-images-aarch64-linux> \[2026-04-12T18:47:09Z INFO virtiofsd\] Client disconnected, shutting down
nixos-disko-images-aarch64-linux> Virtual machine didn't produce an exit code.
error: build of '/nix/store/iqb7h2cw2bgh42l6pkijwm4g1fcqwzcw-nixos-disko-images.drv' on 'ssh-ng://nix-ssh@m2u' failed: Cannot build '/nix/store/iqb7h2cw2bgh42l6pkijwm4g1fcqwzcw-nixos-disko-images.drv'.
| 18:57:19 |
matthewcroughan | The issue goes away with increased memSize | 18:57:39 |
matthewcroughan | I guess this is another bug, but somehow logging doesn't catch it | 18:57:50 |
matthewcroughan | * I guess this is another bug, but somehow logging doesn't work this time around | 18:58:00 |
matthewcroughan | Is there any opposition for a general purpose compression command lassulus ? | 19:04:47 |
matthewcroughan | I already tried this once and you said no, that others should configure it themselves | 19:04:57 |
matthewcroughan | But IMO it should not be, it should be an option like it is in repart | 19:05:08 |
matthewcroughan | https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/image/repart.nix#L152-L171 | 19:05:26 |
matthewcroughan | * I already tried this once and you said no, that others should configure it themselves in extraPostVM | 19:05:49 |
matthewcroughan | Like right now I'm writing a wrapper that lets somebody do it | 19:10:12 |
matthewcroughan | disko.imageBuilder.extraPostVM = lib.optionalString cfg.image.embedUboot ''
${lib.getExe' pkgs.coreutils "dd"} conv=notrunc,fsync if=${cfg.platformFirmware}/u-boot-rockchip.bin of=$out/${config.disko.devices.disk.disk1.imageName} bs=512 seek=64
'' + lib.optionalString cfg.image.disko.compress ''
${pkgs.zstd}/bin/zstd --compress $out/*raw
rm $out/*raw
'';
| 19:10:19 |
matthewcroughan | It ends up looking like this | 19:10:23 |
matthewcroughan | but I don't like that | 19:10:30 |
matthewcroughan | instead it'd be nice if I could just set disko.imageBuilder.compression.enable = true | 19:11:03 |
matthewcroughan | https://blog.holms.place/2022/01/22/zfs-on-sd-card-under-linux.html | 21:41:14 |
| 13 Apr 2026 |
| Tanja (she/her) removed their profile picture. | 14:19:52 |