diff options
author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-12-21 20:30:43 +0100 |
---|---|---|
committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-12-21 20:30:43 +0100 |
commit | bd2bca99b5e27f3dc7b657f139947e51458ee8cb (patch) | |
tree | fc819a5a679598d8418260be70852b00c9fe438a /modules | |
parent | fix(system/services/mastodon): Update char patch to v4.3 (diff) | |
download | nixos-server-bd2bca99b5e27f3dc7b657f139947e51458ee8cb.tar.gz nixos-server-bd2bca99b5e27f3dc7b657f139947e51458ee8cb.zip |
fix(modules/disko): Remove deprecated legacy type and migrate to `by-name` disko/update
Diffstat (limited to '')
-rw-r--r-- | modules/by-name/di/disko/module.nix | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/modules/by-name/di/disko/module.nix b/modules/by-name/di/disko/module.nix new file mode 100644 index 0000000..0aff93f --- /dev/null +++ b/modules/by-name/di/disko/module.nix @@ -0,0 +1,78 @@ +{ + config, + lib, + ... +}: let + cfg = config.system.disko; + + defaultMountOptions = ["compress-force=zstd:15" "noatime"]; +in { + options.vhack.disko = { + enable = lib.mkEnableOption "disk configuration via disko"; + + disk = lib.mkOption { + type = lib.types.path; + example = "/dev/disk/by-id/ata-WDC_WD10SDRW-11A0XS0_WD-WXP2A901KJN5"; + description = "Path to the main disk"; + }; + }; + + config = { + disko.devices = { + disk.main = { + type = "disk"; + device = cfg.disk; + + content = { + type = "gpt"; + partitions = { + boot = { + size = "1M"; + type = "EF02"; # for grub MBR + }; + root = { + size = "100%"; + content = { + type = "btrfs"; + extraArgs = ["-f" "--label nixos"]; # f: Override existing partitions + + subvolumes = { + "/nix" = { + mountpoint = "/nix"; + mountOptions = defaultMountOptions; + }; + "/srv" = { + mountpoint = "/srv"; + mountOptions = defaultMountOptions; + }; + "/srv/.snapshots" = { + mountpoint = "/srv/.snapshots"; + mountOptions = defaultMountOptions; + }; + "/boot" = { + mountpoint = "/boot"; + mountOptions = defaultMountOptions; + }; + }; + }; + }; + }; + }; + }; + + nodev."/" = { + fsType = "tmpfs"; + mountOptions = ["defaults" "size=6G" "mode=755"]; + }; + }; + + fileSystems = { + "/srv" = { + neededForBoot = true; + }; + "/boot" = { + neededForBoot = true; + }; + }; + }; +} |