nixos-config/hosts/desktop/nvme-raid.nix

109 lines
3.4 KiB
Nix

{
disko.devices = {
disk = {
nvme1 = {
type = "disk";
device = "/dev/nvme1n1";
content = {
type = "gpt";
partitions = {
crypt0 = {
size = "100%";
content = {
type = "luks";
name = "crypt1";
extraOpenArgs = [
"--allow-discards"
];
settings = {crypttabExtraOpts = ["tpm2-device=auto" "token-timeout=10"];};
};
};
};
};
};
nvme0 = {
type = "disk";
device = "/dev/nvme0n1";
content = {
type = "gpt";
partitions = {
ESP = {
label = "nixboot";
name = "ESP";
type = "EF00";
size = "1G";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [ "umask=0077" ];
};
};
crypt0 = {
size = "100%";
content = {
type = "luks";
name = "crypt0";
extraOpenArgs = [
"--allow-discards"
];
settings = {crypttabExtraOpts = ["tpm2-device=auto" "token-timeout=10"];};
content = {
type = "btrfs";
extraArgs = [
"-L" "nixos" "-f"
"-d single -m raid1"
"/dev/mapper/crypt1"
];
mountpoint = "/mnt/rootfs";
mountOptions = ["compress=zstd" "noatime"];
subvolumes = {
"@root" = {
mountpoint = "/";
mountOptions = ["subvol=@root" "compress=zstd" "noatime"];
};
"@home" = {
mountpoint = "/home";
mountOptions = ["subvol=@home" "compress=zstd" "noatime"];
};
"@games" = {
mountpoint = "/var/games";
mountOptions = ["subvol=@games" "compress=zstd" "noatime"];
};
"@code" = {
mountpoint = "/var/code";
mountOptions = ["subvol=@code" "compress=zstd" "noatime"];
};
"@nix" = {
mountpoint = "/nix";
mountOptions = ["subvol=@nix" "compress=zstd" "noatime"];
};
"@persist" = {
mountpoint = "/persist";
mountOptions = ["subvol=@persist" "compress=zstd" "noatime"];
};
"@log" = {
mountpoint = "/var/log";
mountOptions = ["subvol=@log" "compress=zstd" "noatime"];
};
"@snapshots" = {
mountpoint = "/var/.snapshots";
mountOptions = ["subvol=@snapshots" "compress=zstd" "noatime"];
};
"@swap" = {
mountpoint = "/swap";
swap.swapfile.size = "64G";
};
};
};
};
};
};
};
};
};
};
}