{ lib, ... }: { disko.devices = { disk = { disk1 = { type = "disk"; device = lib.mkDefault "/dev/nvme0n1"; content = { type = "gpt"; partitions = { ESP = { size = "500M"; type = "EF00"; content = { type = "filesystem"; format = "vfat"; mountpoint = "/boot"; }; }; luks = { size = "100%"; content = { type = "luks"; name = "crypted"; extraOpenArgs = [ "--allow-discards" ]; # If you want to use the key for interactive login be sure there is no trailing newline. # For example use `echo -n 'password' > /tmp/secret.key` settings.keyFile = "/tmp/secret.key"; content = { type = "lvm_pv"; vg = "pool"; }; }; }; }; }; }; }; lvm_vg = { pool = { type = "lvm_vg"; lvs = { root = { size = "30G"; content = { type = "filesystem"; format = "ext4"; mountpoint = "/"; }; }; home = { size = "30G"; content = { type = "filesystem"; format = "ext4"; mountpoint = "/home"; }; }; }; }; }; }; }