From ec351aae64124b7e846622b5f07211a4c002f4a2 Mon Sep 17 00:00:00 2001 From: Aleksandr Lebedev Date: Fri, 26 Sep 2025 20:17:55 +0200 Subject: [PATCH] -zfs --- systems/x86_64-linux/stargate/default.nix | 19 ++++++++++++++++++- systems/x86_64-linux/stargate/disko.nix | 2 +- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/systems/x86_64-linux/stargate/default.nix b/systems/x86_64-linux/stargate/default.nix index 90b9a5b..e0a6417 100644 --- a/systems/x86_64-linux/stargate/default.nix +++ b/systems/x86_64-linux/stargate/default.nix @@ -12,7 +12,22 @@ ... }: with lib; -with lib.custom; { +with lib.custom; let + zfsCompatibleKernelPackages = + lib.filterAttrs ( + name: kernelPackages: + (builtins.match "linux_[0-9]+_[0-9]+" name) + != null + && (builtins.tryEval kernelPackages).success + && (!kernelPackages.${config.boot.zfs.package.kernelModuleAttribute}.meta.broken) + ) + pkgs.linuxKernel.packages; + latestKernelPackage = lib.last ( + lib.sort (a: b: (lib.versionOlder a.kernel.version b.kernel.version)) ( + builtins.attrValues zfsCompatibleKernelPackages + ) + ); +in { facter.reportPath = if (builtins.pathExists ./facter.json) then ./facter.json @@ -20,6 +35,8 @@ with lib.custom; { imports = lib.snowfall.fs.get-non-default-nix-files ./. ++ [./services]; #systemd.network.wait-online.enable = lib.mkForce false; #facter boot.supportedFilesystems = ["zfs"]; + # Note this might jump back and forth as kernels are added or removed. + boot.kernelPackages = latestKernelPackage; networking.hostId = "049b86a7"; # head -c4 /dev/urandom | od -A none -t x4 services.zfs.autoScrub = { enable = true; diff --git a/systems/x86_64-linux/stargate/disko.nix b/systems/x86_64-linux/stargate/disko.nix index c4a5954..4cf7308 100644 --- a/systems/x86_64-linux/stargate/disko.nix +++ b/systems/x86_64-linux/stargate/disko.nix @@ -47,7 +47,7 @@ in { mode = "raidz2"; options.compression = "zstd"; options.ashift = "12"; - mountpoint = "/zstorage"; + mountpoint = "/zstorage"; datasets = { services = { type = "zfs_fs";