From bd2bca99b5e27f3dc7b657f139947e51458ee8cb Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Sat, 21 Dec 2024 20:30:43 +0100 Subject: fix(modules/disko): Remove deprecated legacy type and migrate to `by-name` --- modules/by-name/di/disko/module.nix | 78 +++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 modules/by-name/di/disko/module.nix (limited to 'modules') 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; + }; + }; + }; +} -- cgit 1.4.1