From 4b389828ad4ea5e97403bac73a70f884e4f51335 Mon Sep 17 00:00:00 2001 From: Felix Buehler Date: Sat, 2 Sep 2023 17:42:43 +0200 Subject: [PATCH] newton: use disko --- machines/configurations.nix | 4 +- machines/newton/configuration.nix | 5 ++- machines/newton/disko-config.nix | 74 +++++++++++++++++++++++++++++++ machines/newton/disks.nix | 29 ------------ 4 files changed, 81 insertions(+), 31 deletions(-) create mode 100644 machines/newton/disko-config.nix delete mode 100644 machines/newton/disks.nix diff --git a/machines/configurations.nix b/machines/configurations.nix index 408a60e..640775b 100644 --- a/machines/configurations.nix +++ b/machines/configurations.nix @@ -7,6 +7,7 @@ let sops-nix nixos-hardware passworts + disko ; nixosSystem = nixpkgs.lib.makeOverridable nixpkgs.lib.nixosSystem; overlay-unstable = final: prev: { @@ -36,8 +37,9 @@ let ]; documentation.info.enable = false; }) - sops-nix.nixosModules.sops + disko.nixosModules.disko passworts.nixosModules.passworts + sops-nix.nixosModules.sops ]; } ../modules diff --git a/machines/newton/configuration.nix b/machines/newton/configuration.nix index 2b91fbf..c341651 100644 --- a/machines/newton/configuration.nix +++ b/machines/newton/configuration.nix @@ -2,7 +2,6 @@ { imports = [ ./boot.nix - ./disks.nix ./hardware-configuration.nix ./network.nix ./services.nix @@ -10,6 +9,10 @@ ./system.nix ]; + disko.devices = import ./disko-config.nix { + disks = [ "/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi0" ]; + }; + networking.hostName = "newton"; sops = { diff --git a/machines/newton/disko-config.nix b/machines/newton/disko-config.nix new file mode 100644 index 0000000..29b110a --- /dev/null +++ b/machines/newton/disko-config.nix @@ -0,0 +1,74 @@ +{ disks ? [ "/dev/sda" ], ... }: +{ + 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 = "/"; + }; + }; + srv = { + size = "350G"; + content = { + type = "filesystem"; + format = "ext4"; + mountpoint = "/srv"; + }; + }; + swap = { + size = "4G"; + content = { + type = "swap"; + randomEncryption = true; + resumeDevice = true; + }; + }; + }; + }; + }; +} diff --git a/machines/newton/disks.nix b/machines/newton/disks.nix deleted file mode 100644 index c9627f1..0000000 --- a/machines/newton/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/newton-root"; - fsType = "ext4"; - }; - - fileSystems."/boot" = { - device = "/dev/disk/by-label/newton-boot"; - fsType = "vfat"; - }; - - fileSystems."/srv" = { - device = "/dev/disk/by-label/newton-srv"; - fsType = "ext4"; - }; - - swapDevices = [{ - device = "/dev/disk/by-label/newton-swap"; - }]; -}