{ config, lib, pkgs, ... }: { boot = { initrd.kernelModules = [ "zfs" ]; kernelModules = [ "zfs" ]; supportedFilesystems = [ "zfs" ]; zfs.devNodes = "/dev/"; loader.grub.zfsSupport = true; }; services.zfs = { trim.enable = true; autoScrub.enable = true; autoScrub.pools = [ "rpool" ]; }; virtualisation.containers.storage.settings.storage = { driver = "zfs"; graphroot = "/var/lib/containers/storage"; runroot = "/run/containers/storage"; options.zfs.fsname = "rpool/data/containers"; options.zfs.mountopt = "nodev"; }; virtualisation.cri-o = { storageDriver = "zfs"; extraPackages = [ pkgs.zfs ]; }; fileSystems = { "/" = { device = "rpool/root"; fsType = "zfs"; options = [ "zfsutil" ]; }; "/nix" = { device = "rpool/root/nix"; fsType = "zfs"; options = [ "zfsutil" ]; }; "/etc" = { device = "rpool/root/etc"; fsType = "zfs"; options = [ "zfsutil" ]; }; "/home" = { device = "rpool/root/home"; fsType = "zfs"; options = [ "zfsutil" ]; }; "/srv" = { device = "rpool/root/srv"; fsType = "zfs"; options = [ "zfsutil" ]; }; "/var" = { device = "rpool/root/var"; fsType = "zfs"; options = [ "zfsutil" ]; }; "/var/lib" = { device = "rpool/root/var/lib"; fsType = "zfs"; options = [ "zfsutil" ]; }; "/var/lib/rancher" = { device = "rpool/root/var/lib/rancher"; fsType = "zfs"; options = [ "zfsutil" ]; }; "/var/lib/docker" = { device = "rpool/root/var/lib/docker"; fsType = "zfs"; options = [ "zfsutil" ]; }; "/var/lib/containers" = { device = "rpool/root/var/lib/containers"; fsType = "zfs"; options = [ "zfsutil" ]; }; "/var/lib/etcd" = { device = "rpool/root/var/lib/etcd"; fsType = "zfs"; options = [ "zfsutil" ]; }; "/var/log" = { device = "rpool/root/var/log"; fsType = "zfs"; options = [ "zfsutil" ]; }; "/var/spool" = { device = "rpool/root/var/spool"; fsType = "zfs"; options = [ "zfsutil" ]; }; }; }