2024-03-02 01:27:24 +00:00
|
|
|
{
|
2024-06-28 19:12:55 +01:00
|
|
|
disko.devices.disk =
|
|
|
|
let
|
|
|
|
bootPartition = {
|
|
|
|
size = "1M";
|
|
|
|
type = "EF02";
|
|
|
|
};
|
2024-03-02 01:27:24 +00:00
|
|
|
|
2024-06-28 19:12:55 +01:00
|
|
|
swapPartition = {
|
|
|
|
# 8G is apparently recommended for this much RAM, but we set up
|
|
|
|
# 4G on both disks for mirroring purposes.
|
|
|
|
#
|
|
|
|
# That'll still be 8G during normal operation, and it's probably
|
|
|
|
# not too bad to have slightly less swap if a disk dies.
|
|
|
|
size = "4G";
|
|
|
|
content = {
|
|
|
|
type = "swap";
|
|
|
|
randomEncryption = true;
|
|
|
|
};
|
2024-03-02 01:27:24 +00:00
|
|
|
};
|
|
|
|
|
2024-06-28 19:12:55 +01:00
|
|
|
mountOptions = [ "compress=zstd" "noatime" ];
|
|
|
|
in
|
|
|
|
{
|
|
|
|
sda = {
|
|
|
|
type = "disk";
|
|
|
|
device = "/dev/sda";
|
|
|
|
content = {
|
|
|
|
type = "gpt";
|
|
|
|
partitions = {
|
|
|
|
boot = bootPartition;
|
|
|
|
swap = swapPartition;
|
2024-03-02 01:27:24 +00:00
|
|
|
|
2024-06-28 19:12:55 +01:00
|
|
|
disk1 = {
|
|
|
|
size = "100%";
|
|
|
|
# Empty partition to combine in RAID0 with the other disk
|
|
|
|
};
|
2024-03-02 01:27:24 +00:00
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2024-06-28 19:12:55 +01:00
|
|
|
sdb = {
|
|
|
|
type = "disk";
|
|
|
|
device = "/dev/sdb";
|
|
|
|
content = {
|
|
|
|
type = "gpt";
|
|
|
|
partitions = {
|
|
|
|
boot = bootPartition;
|
|
|
|
swap = swapPartition;
|
2024-03-02 01:27:24 +00:00
|
|
|
|
2024-06-28 19:12:55 +01:00
|
|
|
disk2 = {
|
|
|
|
size = "100%";
|
|
|
|
content = {
|
|
|
|
type = "btrfs";
|
|
|
|
# Hack to get multi-device btrfs going
|
|
|
|
# See https://github.com/nix-community/disko/issues/99
|
|
|
|
extraArgs = [ "-d" "raid1" "-m" "raid1" "--runtime-features" "quota" "/dev/sda3" ];
|
|
|
|
subvolumes = {
|
|
|
|
"/volume" = { };
|
|
|
|
"/volume/root" = {
|
|
|
|
inherit mountOptions;
|
|
|
|
mountpoint = "/";
|
|
|
|
};
|
|
|
|
"/volume/home" = {
|
|
|
|
inherit mountOptions;
|
|
|
|
mountpoint = "/home";
|
|
|
|
};
|
|
|
|
"/volume/var" = {
|
|
|
|
inherit mountOptions;
|
|
|
|
mountpoint = "/var";
|
|
|
|
};
|
|
|
|
"/volume/nix-store" = {
|
|
|
|
inherit mountOptions;
|
|
|
|
mountpoint = "/nix";
|
|
|
|
};
|
|
|
|
"/snapshots" = { };
|
2024-03-02 01:27:24 +00:00
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|