{
  disko.devices = {
    disk =
      let
        # This is a general setup which will be replicated on both disks ...
        # even the boot partition, just the mountpoint is different which will
        # be set in the nixos configuration
        diskLayout =
          { bootName }:
          {
            type = "gpt";
            partitions = {
              boot = {
                size = "1M";
                type = "EF02";
              };
              # efi? idk, experiment if this is really needed
              ESP = {
                size = "500M";
                type = "EF00";
                content = {
                  type = "filesystem";
                  format = "vfat";
                  mountpoint = "/${bootName}";
                  mountOptions = [ "umask=0077" ];
                };
              };
              zfs = {
                size = "100%";
                content = {
                  type = "zfs";
                  pool = "zraid";
                };
              };
            };
          };
      in
      {
        one = {
          type = "disk";
          device = "/dev/nvme0n1";
          content = diskLayout { bootName = "boot"; };
        };
        two = {
          type = "disk";
          device = "/dev/nvme1n1";
          content = diskLayout { bootName = "boot-fallback"; };
        };
      };
    zpool = {
      zraid = {
        type = "zpool";
        mode = "mirror";
        # Workaround: cannot import 'zraid': I/O error in disko tests
        options.cachefile = "none";
        rootFsOptions = {
          compression = "zstd";
          "com.sun:auto-snapshot" = "true";
        };
        mountpoint = "/";
        postCreateHook = "zfs list -t snapshot -H -o name | grep -E '^zraid@blank$' || zfs snapshot zraid@blank";

        datasets = {
          zfs_fs = {
            type = "zfs_fs";
            mountpoint = "/zfs_fs";
          };
        };
      };
    };
  };
}