NixOS-Configuration/common/bootloader/grub.nix

45 lines
900 B
Nix
Raw Permalink Normal View History

{ config, lib, ... }:
with lib; let
cfg = config.grub;
in {
options.grub = {
device = mkOption {
default = "";
example = "/dev/disk/by-id/wwn-0x500001234567890a";
type = types.str;
description = lib.mdDoc ''
The device on which the GRUB boot loader will be installed.
Setting this option also sets GRUB to use legacy boot.
For EFI, do not set this option.
'';
};
};
config = mkMerge [
{
boot.loader.grub = {
enable = true;
configurationLimit = 25;
default = "saved";
memtest86.enable = true;
2024-01-13 21:16:41 +00:00
};
}
(mkIf (cfg.device == "") {
boot.loader = {
efi.canTouchEfiVariables = true;
grub = {
efiSupport = true;
device = "nodev";
};
};
})
(mkIf (cfg.device != "") { boot.loader.grub.device = cfg.device; })
];
}