From 06937b156bdd343614a30ab9e5deb339ac52da57 Mon Sep 17 00:00:00 2001 From: Felix Buehler Date: Wed, 1 Nov 2023 17:46:37 +0100 Subject: [PATCH] machine/thinkman: migrate to disko --- machines/thinkman/configuration.nix | 5 +- machines/thinkman/disko-config.nix | 74 +++++++++++++++++++++++++++++ machines/thinkman/disks.nix | 29 ----------- 3 files changed, 78 insertions(+), 30 deletions(-) create mode 100644 machines/thinkman/disko-config.nix delete mode 100644 machines/thinkman/disks.nix diff --git a/machines/thinkman/configuration.nix b/machines/thinkman/configuration.nix index 5bc31b2..bdf232f 100644 --- a/machines/thinkman/configuration.nix +++ b/machines/thinkman/configuration.nix @@ -2,7 +2,6 @@ { imports = [ ./boot.nix - ./disks.nix ./hardware-configuration.nix ./network.nix ./profiles.nix @@ -12,6 +11,10 @@ networking.hostName = "thinkman"; + disko.devices = import ./disko-config.nix { + disks = [ "/dev/disk/by-id/nvme-eui.0025385b01410682" ]; + }; + sops = { defaultSopsFile = ./secrets.yaml; age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; diff --git a/machines/thinkman/disko-config.nix b/machines/thinkman/disko-config.nix new file mode 100644 index 0000000..d2de2c1 --- /dev/null +++ b/machines/thinkman/disko-config.nix @@ -0,0 +1,74 @@ +{ disks ? [ "/dev/nvme0" ], ... }: +{ + disk = { + vdb = { + type = "disk"; + device = builtins.head disks; + content = { + type = "gpt"; + partitions = { + boot = { + size = "1M"; + type = "EF02"; # for grub MBR + }; + ESP = { + size = "512M"; + type = "EF00"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + mountOptions = [ + "defaults" + ]; + }; + }; + luks = { + size = "100%"; + content = { + type = "luks"; + name = "encrypted"; + extraOpenArgs = [ "--allow-discards" ]; + passwordFile = "/tmp/disk.key"; + content = { + type = "lvm_pv"; + vg = "pool"; + }; + }; + }; + }; + }; + }; + }; + lvm_vg = { + pool = { + type = "lvm_vg"; + lvs = { + root = { + size = "100G"; + content = { + type = "filesystem"; + format = "ext4"; + mountpoint = "/"; + }; + }; + home = { + size = "450G"; + content = { + type = "filesystem"; + format = "ext4"; + mountpoint = "/home"; + }; + }; + swap = { + size = "32G"; + content = { + type = "swap"; + randomEncryption = true; + resumeDevice = true; + }; + }; + }; + }; + }; +} diff --git a/machines/thinkman/disks.nix b/machines/thinkman/disks.nix deleted file mode 100644 index ea70bff..0000000 --- a/machines/thinkman/disks.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - boot.initrd.luks.devices."luks-drive" = { - name = "luks-drive"; - device = "/dev/disk/by-partlabel/Crypt"; - preLVM = true; - allowDiscards = true; - }; - - fileSystems."/" = { - device = "/dev/disk/by-label/thinkman-root"; - fsType = "ext4"; - }; - - fileSystems."/boot" = { - device = "/dev/disk/by-label/thinkman-bo"; - fsType = "vfat"; - }; - - fileSystems."/home" = { - device = "/dev/disk/by-label/thinkman-home"; - fsType = "ext4"; - }; - - swapDevices = [{ - device = "/dev/disk/by-label/thinkman-swap"; - }]; -}