From f4301e2194ede90f6fe3ab70be5e598a6eb5f2e4 Mon Sep 17 00:00:00 2001 From: Raghuram Subramani Date: Wed, 9 Oct 2024 18:19:57 +0530 Subject: (impermanence): Initial try. --- disko.nix | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 disko.nix (limited to 'disko.nix') diff --git a/disko.nix b/disko.nix new file mode 100644 index 0000000..f8d74a1 --- /dev/null +++ b/disko.nix @@ -0,0 +1,81 @@ +{ + device ? throw "Set this to your disk device, e.g. /dev/sda", + ... +}: { + disko.devices = { + disk.main = { + inherit device; + type = "disk"; + content = { + type = "gpt"; + partitions = { + boot = { + name = "boot"; + size = "1M"; + type = "EF02"; + }; + esp = { + name = "ESP"; + size = "500M"; + type = "EF00"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + }; + }; + swap = { + size = "4G"; + content = { + type = "swap"; + resumeDevice = true; + }; + }; + root = { + name = "root"; + size = "100%"; + content = { + type = "lvm_pv"; + vg = "root_vg"; + }; + }; + }; + }; + }; + lvm_vg = { + root_vg = { + type = "lvm_vg"; + lvs = { + root = { + size = "100%FREE"; + content = { + type = "btrfs"; + extraArgs = ["-f"]; + + subvolumes = { + "/root" = { + mountpoint = "/"; + }; + + "/persist" = { + mountOptions = ["subvol=persist" "noatime"]; + mountpoint = "/persist"; + }; + + "/nix" = { + mountOptions = ["subvol=nix" "noatime"]; + mountpoint = "/nix"; + }; + + "/home" = { + mountOptions = ["subvol=home" "noatime"]; + mountpoint = "/home"; + }; + }; + }; + }; + }; + }; + }; + }; +} -- cgit v1.2.3