From 031e635cfa35124942a71c922393641e9e245e5a Mon Sep 17 00:00:00 2001 From: zowoq <59103226+zowoq@users.noreply.github.com> Date: Thu, 2 May 2024 16:27:46 +1000 Subject: [PATCH 1/3] modules/nixos: add disko-zfs-systemd-boot --- modules/nixos/disko-zfs-systemd-boot.nix | 75 ++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 modules/nixos/disko-zfs-systemd-boot.nix diff --git a/modules/nixos/disko-zfs-systemd-boot.nix b/modules/nixos/disko-zfs-systemd-boot.nix new file mode 100644 index 000000000..2c14efe15 --- /dev/null +++ b/modules/nixos/disko-zfs-systemd-boot.nix @@ -0,0 +1,75 @@ +{ + config, + inputs, + lib, + ... +}: +let + devices = idx: { + type = "disk"; + device = "/dev/nvme${idx}n1"; + content = { + type = "gpt"; + partitions = { + ESP = lib.mkIf (idx == "0") { + size = "1G"; + type = "EF00"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + mountOptions = [ "nofail" ]; + }; + }; + zfs = { + size = "100%"; + content = { + type = "zfs"; + pool = "zroot"; + }; + }; + }; + }; + }; +in +{ + imports = [ inputs.disko.nixosModules.disko ]; + + boot.loader.systemd-boot.enable = true; + + # the default zpool import services somehow times out while this import works fine? + boot.initrd.systemd.services.zfs-import-zroot.serviceConfig.ExecStartPre = + "${config.boot.zfs.package}/bin/zpool import -N -f zroot"; + + # Sometimes fails after the first try, with duplicate pool name errors + boot.initrd.systemd.services.zfs-import-zroot.serviceConfig.Restart = "on-failure"; + + disko.devices = { + disk = { + x = devices "0"; + y = devices "1"; + }; + zpool = { + zroot = { + type = "zpool"; + options = { + ashift = "12"; + }; + rootFsOptions = { + acltype = "posixacl"; + atime = "off"; + compression = "lz4"; + mountpoint = "none"; + xattr = "sa"; + "com.sun:auto-snapshot" = "false"; + }; + datasets = { + root = { + type = "zfs_fs"; + mountpoint = "/"; + }; + }; + }; + }; + }; +} From 587d4a6412c98aaa48772e57d7cb31cb634a65e7 Mon Sep 17 00:00:00 2001 From: zowoq <59103226+zowoq@users.noreply.github.com> Date: Thu, 2 May 2024 16:28:16 +1000 Subject: [PATCH 2/3] build01: switch to zfs with systemd-boot --- hosts/build01/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hosts/build01/default.nix b/hosts/build01/default.nix index cb7d7b0aa..147f3b9ea 100644 --- a/hosts/build01/default.nix +++ b/hosts/build01/default.nix @@ -3,7 +3,7 @@ imports = [ inputs.self.nixosModules.cgroups inputs.self.nixosModules.community-builder - inputs.self.nixosModules.disko-zfs + inputs.self.nixosModules.disko-zfs-systemd-boot inputs.srvos.nixosModules.hardware-hetzner-online-amd ]; From 8c930bab34a29eec21daec0d482d0249a6585dfa Mon Sep 17 00:00:00 2001 From: zowoq <59103226+zowoq@users.noreply.github.com> Date: Thu, 25 Jul 2024 10:04:58 +1000 Subject: [PATCH 3/3] DROP --- hosts/build01/default.nix | 2 +- modules/nixos/common/default.nix | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hosts/build01/default.nix b/hosts/build01/default.nix index 147f3b9ea..f9e6ae464 100644 --- a/hosts/build01/default.nix +++ b/hosts/build01/default.nix @@ -2,7 +2,7 @@ { imports = [ inputs.self.nixosModules.cgroups - inputs.self.nixosModules.community-builder + #inputs.self.nixosModules.community-builder inputs.self.nixosModules.disko-zfs-systemd-boot inputs.srvos.nixosModules.hardware-hetzner-online-amd ]; diff --git a/modules/nixos/common/default.nix b/modules/nixos/common/default.nix index bf198746e..0ba386095 100644 --- a/modules/nixos/common/default.nix +++ b/modules/nixos/common/default.nix @@ -13,7 +13,7 @@ ./security.nix ./sops-nix.nix ./telegraf.nix - ./update.nix + #./update.nix ./users.nix inputs.srvos.nixosModules.server ];