{ disko.devices = { disk = { main = { type = "disk"; device = "/dev/nvme0n1"; content = { type = "gpt"; partitions = { ESP = { size = "1G"; type = "EF00"; content = { type = "filesystem"; format = "vfat"; mountpoint = "/boot"; mountOptions = ["umask=0077" "nofail"]; }; }; zfs = { size = "100%"; content = { type = "zfs"; pool = "zroot"; }; }; }; }; }; backup = { type = "disk"; device = "/dev/nvme1n1"; content = { type = "gpt"; partitions = { zbk = { size = "100%"; content = { type = "zfs"; pool = "zbk"; }; }; }; }; }; }; zpool = { zbk = { type = "zpool"; rootFsOptions = { acltype = "posixacl"; atime = "off"; compression = "zstd"; mountpoint = "none"; xattr = "sa"; autotrim = "on"; }; options.ashift = "12"; datasets = { "zbk" = { type = "zfs_fs"; options.mountpoint = "none"; }; "zbk/zbk" = { type = "zfs_fs"; mountpoint = "/mnt/zbk"; options."sharesmb" = "on"; # Used by services.zfs.autoSnapshot options. options."com.sun:auto-snapshot" = "true"; }; }; }; zroot = { type = "zpool"; rootFsOptions = { # https://wiki.archlinux.org/title/Install_Arch_Linux_on_ZFS acltype = "posixacl"; atime = "off"; compression = "zstd"; mountpoint = "none"; xattr = "sa"; autotrim = "on"; }; options.ashift = "12"; datasets = { "local" = { type = "zfs_fs"; options.mountpoint = "none"; }; "local/home" = { type = "zfs_fs"; mountpoint = "/home"; # Used by services.zfs.autoSnapshot options. options."com.sun:auto-snapshot" = "true"; }; "local/nix" = { type = "zfs_fs"; mountpoint = "/nix"; options."com.sun:auto-snapshot" = "false"; }; "local/persist" = { type = "zfs_fs"; mountpoint = "/persist"; options."com.sun:auto-snapshot" = "false"; }; "local/root" = { type = "zfs_fs"; mountpoint = "/"; options."com.sun:auto-snapshot" = "false"; postCreateHook = "zfs list -t snapshot -H -o name | grep -E '^zroot/local/root@blank$' || zfs snapshot zroot/local/root@blank"; }; }; }; }; }; }