2023-11-10 22:03:12 +01:00
|
|
|
{ pkgs, ... }:
|
2023-11-04 23:43:37 +01:00
|
|
|
|
|
|
|
{
|
|
|
|
imports = [
|
|
|
|
../secrets/machines/back.nix
|
|
|
|
../system/baremetal-server.nix
|
|
|
|
../system/ucode-intel.nix
|
2023-11-10 22:03:12 +01:00
|
|
|
../system/zfs.nix
|
2023-11-04 23:43:37 +01:00
|
|
|
];
|
|
|
|
|
|
|
|
system.stateVersion = "23.11";
|
|
|
|
|
|
|
|
boot.loader.systemd-boot.enable = false;
|
|
|
|
boot.loader.grub = {
|
|
|
|
enable = true;
|
|
|
|
copyKernels = true;
|
|
|
|
efiInstallAsRemovable = true;
|
|
|
|
efiSupport = true;
|
|
|
|
fsIdentifier = "uuid";
|
|
|
|
enableCryptodisk = true;
|
|
|
|
device = "nodev";
|
|
|
|
};
|
|
|
|
|
|
|
|
boot.initrd = {
|
|
|
|
availableKernelModules = [ "hpsa" "sd_mod" "aesni_intel" "cryptd" ];
|
|
|
|
kernelModules = [ "md_mod" "raid0" "raid1" ];
|
|
|
|
luks.devices.nixos-root.device = "/dev/md1";
|
|
|
|
|
|
|
|
# Manually start degraded arrays if needed, to still allow booting from them.
|
|
|
|
# See https://github.com/NixOS/nixpkgs/issues/72608
|
|
|
|
preLVMCommands = ''
|
|
|
|
for dev in /dev/md*; do
|
|
|
|
if [ -b "$dev" ]; then
|
|
|
|
mdadm --run "$dev"
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
boot.swraid = {
|
|
|
|
enable = true;
|
|
|
|
mdadmConf = ''
|
|
|
|
DEVICE partitions
|
|
|
|
ARRAY /dev/md0 level=raid1 num-devices=2 metadata=1.0 name=nixos:0 UUID=8b85ad8d:07770d93:de437327:626744b3
|
|
|
|
ARRAY /dev/md1 level=raid1 num-devices=2 metadata=1.2 name=nixos:1 UUID=fa799b6d:76859754:7bf68be4:d184553c
|
|
|
|
PROGRAM ${pkgs.toybox}/bin/true
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
fileSystems."/" = {
|
|
|
|
device = "/dev/mapper/nixos-root";
|
|
|
|
fsType = "btrfs";
|
|
|
|
options = [ "noatime" "subvol=@" ];
|
|
|
|
};
|
|
|
|
|
|
|
|
fileSystems."/home" = {
|
|
|
|
device = "/dev/mapper/nixos-root";
|
|
|
|
fsType = "btrfs";
|
|
|
|
options = [ "subvol=@home" ];
|
|
|
|
};
|
|
|
|
|
|
|
|
fileSystems."/nix" = {
|
|
|
|
device = "/dev/mapper/nixos-root";
|
|
|
|
fsType = "btrfs";
|
|
|
|
options = [ "noatime" "subvol=@nix" ];
|
|
|
|
};
|
|
|
|
|
|
|
|
fileSystems."/var/log" = {
|
|
|
|
device = "/dev/mapper/nixos-root";
|
|
|
|
fsType = "btrfs";
|
|
|
|
options = [ "noatime" "compress=zstd" "subvol=@log" ];
|
|
|
|
};
|
|
|
|
|
|
|
|
fileSystems."/boot" = {
|
|
|
|
device = "/dev/md0";
|
|
|
|
fsType = "vfat";
|
|
|
|
};
|
|
|
|
}
|