45 lines
1.1 KiB
Nix
45 lines
1.1 KiB
Nix
{ config, lib, libS, ... }:
|
|
|
|
let
|
|
cfg = config.boot;
|
|
in
|
|
{
|
|
options = {
|
|
boot = {
|
|
default = libS.mkOpinionatedOption "enable the boot builder";
|
|
cpuType = lib.mkOption {
|
|
type = lib.types.str;
|
|
example = "amd";
|
|
default = "";
|
|
description = "The cpu-type installed on the server.";
|
|
};
|
|
};
|
|
};
|
|
|
|
config.boot = lib.mkIf cfg.default {
|
|
supportedFilesystems = [ "zfs" ];
|
|
tmp.useTmpfs = true;
|
|
kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages;
|
|
kernelParams = [ "nordrand" ] ++ lib.optional (cfg.cpuType == "amd") "kvm-amd";
|
|
zfs = {
|
|
enableUnstable = true;
|
|
devNodes = "/dev/disk/by-id/";
|
|
forceImportRoot = true;
|
|
};
|
|
loader = {
|
|
efi = {
|
|
canTouchEfiVariables = false;
|
|
};
|
|
generationsDir.copyKernels = true;
|
|
grub = {
|
|
enable = true;
|
|
copyKernels = true;
|
|
zfsSupport = true;
|
|
efiSupport = true;
|
|
efiInstallAsRemovable = true;
|
|
fsIdentifier = "uuid";
|
|
device = "nodev";
|
|
};
|
|
};
|
|
};
|
|
} |