{
  config,
  lib,
  ...
}: let
  cfg = config.disko;
  mkEfiPartition = mountpoint: {
    size = "1024M";
    type = "EF00";
    content = {
      type = "filesystem";
      format = "vfat";
      inherit mountpoint;
      mountOptions = [
        "uid=0"
        "gid=0"
        "fmask=0077"
        "dmask=0077"
        "nodev"
        "nosuid"
        "noexec"
        "x-systemd.idle-timeout=1min"
        "x-systemd.automount"
        "noauto"
        "nofail"
        "noatime"
        "X-mount.mkdir"
      ];
    };
  };
  label = "btrfs-raid1";
  subvolumes = {
    "/root" = {
      mountpoint = "/";
      mountOptions = ["degraded" "compress-force=zstd:1" "noatime"];
    };
    "/home" = {
      mountpoint = "/home";
      mountOptions = ["degraded" "compress-force=zstd:1" "noatime" "nodev" "nosuid"];
    };
    "/nix" = {
      mountpoint = "/nix";
      mountOptions = ["degraded" "compress-force=zstd:1" "noatime" "nodev"];
    };
    "/log" = {
      mountpoint = "/var/log";
      mountOptions = ["degraded" "compress-force=zstd:1" "noatime" "nodev" "nosuid"];
    };
    "/persist" = {
      mountpoint = "/persist";
      mountOptions = ["degraded" "compress-force=zstd:1" "noatime" "nodev" "nosuid"];
    };
  };
in {
  disko.devices = {
    disk = {
      disk1 = {
        type = "disk";
        device = "/dev/sda";
        content = {
          type = "gpt";
          partitions = {
            boot = {
              size = "1M";
              type = "EF02"; # for grub MBR
            };
            ESP = mkEfiPartition "/boot";
            nixos = {
              size = "100%";
            };
          };
        };
      };
      disk2 = {
        type = "disk";
        device = "/dev/sdb";
        content = {
          type = "gpt";
          partitions = {
            boot = {
              size = "1M";
              type = "EF02"; # for grub MBR
            };
            ESP = mkEfiPartition "/boot1";
            nixos = {
              size = "100%";
              content = let
                thisPartition = cfg.devices.disk.disk2.content.partitions.nixos.device;
                mirror = cfg.devices.disk.disk1.content.partitions.nixos.device;
              in {
                type = "btrfs";
                extraArgs = [
                  "-f"
                  "--label ${label}"
                  "-m raid1"
                  "-d raid1"
                  "${mirror}"
                ];
                postCreateHook = ''
                  mountpoint="$(mktemp -d)"
                  mount "${thisPartition}" "$mountpoint" -o subvol=/ || mount "${mirror}" "$mountpoint" -o subvol=/
                  trap 'umount "$mountpoint"; rmdir "$mountpoint"' EXIT
                  btrfs subvolume snapshot -r $mountpoint/root $mountpoint/root-blank
                '';
                inherit subvolumes;
              };
            };
          };
        };
      };
    };
  };

  fileSystems = with lib.attrsets;
    mapAttrs' (
      _: value:
        nameValuePair value.mountpoint {device = lib.mkForce "/dev/disk/by-label/${label}";}
    )
    subvolumes;
}
