{ inputs, lib, ... }: let storageDisks = [ "ata-ST8000VN002-2ZM188_WPV023WG" "ata-ST8000VN002-2ZM188_WPV07RMA" "ata-ST8000VN002-2ZM188_WPV020CG" ]; in { imports = [ inputs.disko.nixosModules.disko ]; disko.devices = { disk = { # Root system drive (1TB NVMe) main = { type = "disk"; device = "/dev/disk/by-id/nvme-KINGSTON_SNV3S1000G_50026B7383CC0908"; content = { type = "gpt"; partitions = { # EFI boot partition efi = { size = "1G"; type = "EF00"; content = { type = "filesystem"; format = "vfat"; mountpoint = "/boot"; }; }; # Main Btrfs partition root = { end = "-0"; content = { type = "btrfs"; extraArgs = [ "-f" ]; subvolumes = { "@root" = { mountpoint = "/"; mountOptions = [ "compress=zstd1" "noatime" ]; }; "@nix" = { mountpoint = "/nix"; mountOptions = [ "compress=zstd1" "noatime" ]; }; "@persist" = { mountpoint = "/persist"; mountOptions = [ "compress=zstd1" "noatime" ]; }; "@services" = { mountpoint = "/var/lib"; mountOptions = [ "compress=zstd1" "noatime" "space_cache=v2" ]; }; "@logs" = { mountpoint = "/var/log"; mountOptions = [ "compress=zstd1" "noatime" ]; }; }; }; }; }; }; }; } // lib.listToAttrs (lib.imap1 (i: diskId: { name = "storage${toString i}"; value = { type = "disk"; device = "/dev/disk/by-id/${diskId}"; content = { type = "gpt"; partitions = { primary = { size = "100%"; content = { type = "filesystem"; format = "xfs"; mountpoint = "/mnt/disk${toString i}"; mountOptions = [ "defaults" "noatime" ]; }; }; }; }; }; }) storageDisks); }; }