Nix-Config/hosts/apollo/boot.nix
2026-10-02 18:33:05 -05:00

97 lines
No EOL
2 KiB
Nix

{ pkgs, lib, inputs, ... }:
{
imports = [
lanzaboote.nixosModules.lanzaboote
];
boot = {
#Bootloader
environment.systemPackages = [ pkgs.sbctl ];
lanzaboote = {
enable = true;
pkiBundle = "/var/lib/sbctl";
autoGenerateKeys.enable = true;
autoEnrollKeys.enable = true;
};
loader.efi.canTouchEfiVariables = true;
loader.systemd-boot.enable = lib.mkForce false;
# Luks Decryption for ZFS
initrd = {
supportedFilesystems = [ "ext4" "zfs" ];
availableKernelModules = [ "hid_apple" ];
systemd = {
enable = true;
fido2.enable = true;
emergencyAccess = true;
mounts = [
{
what = "/dev/mapper/zfs-keys";
where = "/keys";
type = "ext4";
options = "ro";
}
];
};
luks.fido2Support = false;
luks.devices."zfs-keys" = {
device = "/dev/disk/by-id/nvme-CT1000P2SSD8_2138E5D5DA5A-part2";
crypttabExtraOpts = [ "fido2-device=auto" ];
};
systemd.services."zfs-import-nix-root" = {
wants = [ "keys.mount" ];
after = [ "keys.mount" ];
};
};
};
systemd.services."zfs-import-nix-main" = {
wants = [ "keys.mount" ];
after = [ "keys.mount" ];
};
boot.zfs.forceImportRoot = false;
fileSystems."/" = {
device = "nix-root/root";
fsType = "zfs";
};
fileSystems."/var/log" = {
device = "nix-root/syslog";
fsType = "zfs";
};
fileSystems."/nix" = {
device = "nix-root/nix";
fsType = "zfs";
};
fileSystems."/keys" = {
device = "/dev/mapper/zfs-keys";
fsType = "ext4";
};
fileSystems."/home/nyxerinys" = {
device = "nix-main/nyxerinys";
fsType = "zfs";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/A5CB-B201";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices = [
{
device = "/dev/disk/by-id/nvme-CT1000P2SSD8_2138E5D5DA5A-part3";
randomEncryption.enable = true;
}
];
}