{ flake, flakeInputs, pkgs, config, lib, ... }: { imports = with flake.nixosModules.systemProfiles; [ disko ]; config = { fileSystems."/persistent".neededForBoot = true; environment.persistence."/persistent" = { hideMounts = true; directories = [ "/nix" "/root" "/var/log" "/var/lib/nixos" "/var/lib/sops-nix" "/var/lib/systemd" config.boot.lanzaboote.pkiBundle ]; timezone = true; }; disko.devices = { disk.nvm = { type = "disk"; device = "/dev/nvme0n1"; content = { type = "gpt"; partitions = { ESP = { size = "512M"; type = "EF00"; content = { type = "filesystem"; format = "vfat"; mountpoint = "/boot"; mountOptions = [ "fmask=0033" "dmask=0022" ]; }; }; luks = { size = "100%"; content = { type = "luks"; name = "nvm"; extraFormatArgs = [ "--cipher" "aegis128-random" "--key-size" "128" "--integrity" "aead" ]; content = { type = "btrfs"; extraArgs = let subvols = ["/persistent"] ++ map (p: "/persistent/${p}") ["/nix" "/var/log"]; restricted = map (p: "/persistent/${p}") ["/root"]; in [ "--csum" "blake2" "--compress" "zstd:15" "--rootdir" (toString (pkgs.runCommand "rootdir" { } '' mkdir $out install -d ${lib.concatMapStringsSep " " (p: "$out/${p}") subvols} install -m 0700 -d ${lib.concatMapStringsSep " " (p: "$out/${p}") restricted} '')) ] ++ lib.concatMap (p: ["--subvol" p]) subvols; subvolumes = { "/persistent".mountpoint = "/persistent"; "/swap" = { mountpoint = "/.swap"; swap.swapfile.size = "96G"; }; }; }; }; }; }; }; }; }; }; }