{ lib, ... }: let hashDisk = disk: "os-${builtins.substring 0 5 (builtins.hashString "sha256" disk)}"; os = "/dev/disk/by-id/mmc-CUTB42_0x95d14f9e"; vdev = [ "/dev/disk/by-id/ata-ST20000NM002H-3KV133_ZYD5RYRG" "/dev/disk/by-id/ata-ST20000NM002H-3KV133_ZYD5S02X" ]; in { boot.loader = { systemd-boot = { enable = true; }; efi = { canTouchEfiVariables = true; }; }; disko.devices = { disk = { "os-${hashDisk os}" = { type = "disk"; device = os; content = { type = "gpt"; partitions = { ESP = { size = "1G"; type = "EF00"; content = { type = "filesystem"; format = "vfat"; mountpoint = "/boot"; mountOptions = [ "nofail" ]; }; }; system = { size = "100%"; content = { type = "zfs"; pool = "zroot"; }; }; swap = { size = "16G"; content = { type = "swap"; }; }; }; }; }; } // (lib.listToAttrs ( map (disk: { name = "data-${hashDisk disk}"; value = { type = "disk"; device = disk; content = { type = "zfs"; pool = "zdata"; }; }; }) vdev )); zpool = { zroot = { type = "zpool"; rootFsOptions = { mountpoint = "none"; compression = "lz4"; acltype = "posixacl"; xattr = "sa"; "com.sun:auto-snapshot" = "true"; }; options.ashift = "12"; datasets = { "root" = { type = "zfs_fs"; options.mountpoint = "none"; }; "root/nixos" = { type = "zfs_fs"; options.mountpoint = "/"; mountpoint = "/"; }; "root/home" = { type = "zfs_fs"; options.mountpoint = "/home"; mountpoint = "/home"; }; "root/tmp" = { type = "zfs_fs"; mountpoint = "/tmp"; options = { mountpoint = "/tmp"; sync = "disabled"; }; }; }; }; zdata = { type = "zpool"; options.ashift = "12"; rootFsOptions = { mountpoint = "none"; compression = "lz4"; acltype = "posixacl"; xattr = "sa"; "com.sun:auto-snapshot" = "true"; }; mode = { topology = { type = "topology"; vdev = [ { mode = "mirror"; members = vdev; } ]; }; }; datasets = { "nas" = { type = "zfs_fs"; mountpoint = "/mnt/hdd"; mountOptions = [ "nofail" ]; }; "service-data" = { type = "zfs_fs"; mountpoint = "/var/lib"; mountOptions = [ "nofail" ]; }; }; }; }; }; }