summaryrefslogtreecommitdiff
path: root/hosts/minime/zfs.nix
diff options
context:
space:
mode:
Diffstat (limited to 'hosts/minime/zfs.nix')
-rw-r--r--hosts/minime/zfs.nix31
1 files changed, 31 insertions, 0 deletions
diff --git a/hosts/minime/zfs.nix b/hosts/minime/zfs.nix
new file mode 100644
index 0000000..a2a1acd
--- /dev/null
+++ b/hosts/minime/zfs.nix
@@ -0,0 +1,31 @@
+{ pkgs, lib, config, ... }: {
+ services.fstrim.enable = true;
+ services.zfs = {
+ autoSnapshot.enable = true;
+ trim.enable = true;
+ autoScrub = {
+ enable = true;
+ pools = [ "zpool" ];
+ };
+ };
+ networking.hostId = "41ba28ff";
+ boot = {
+ kernelPackages = 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 latestKernelPackage;
+ supportedFilesystems = [ "zfs" ];
+ kernelParams = [ "nohibernate" ];
+ plymouth.enable = false;
+ tmp.useTmpfs = true;
+ };
+}