diff options
author | Bernardo Meurer <bernardo@meurer.org> | 2023-03-16 11:33:03 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-16 11:33:03 -0300 |
commit | 79cfdf110a45c668879686546e36672dced2426c (patch) | |
tree | 0068a31b6f871f91c61ed4a8cc38b4da79876294 /nixos/modules/installer | |
parent | df85a1fdeabc10ac30939f3eaa47a9e8f909a16d (diff) | |
parent | 905be9f8c5d0bcc95dbd26f9d5a53f61c48d9798 (diff) | |
download | nixlib-79cfdf110a45c668879686546e36672dced2426c.tar nixlib-79cfdf110a45c668879686546e36672dced2426c.tar.gz nixlib-79cfdf110a45c668879686546e36672dced2426c.tar.bz2 nixlib-79cfdf110a45c668879686546e36672dced2426c.tar.lz nixlib-79cfdf110a45c668879686546e36672dced2426c.tar.xz nixlib-79cfdf110a45c668879686546e36672dced2426c.tar.zst nixlib-79cfdf110a45c668879686546e36672dced2426c.zip |
Merge pull request #219351 from tie/make-bios-bootable
Diffstat (limited to 'nixos/modules/installer')
-rw-r--r-- | nixos/modules/installer/cd-dvd/installation-cd-base.nix | 3 | ||||
-rw-r--r-- | nixos/modules/installer/cd-dvd/iso-image.nix | 21 |
2 files changed, 17 insertions, 7 deletions
diff --git a/nixos/modules/installer/cd-dvd/installation-cd-base.nix b/nixos/modules/installer/cd-dvd/installation-cd-base.nix index 3f92b779d60a..3c7c7e30a0bf 100644 --- a/nixos/modules/installer/cd-dvd/installation-cd-base.nix +++ b/nixos/modules/installer/cd-dvd/installation-cd-base.nix @@ -21,6 +21,9 @@ with lib; # ISO naming. isoImage.isoName = "${config.isoImage.isoBaseName}-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.iso"; + # BIOS booting + isoImage.makeBiosBootable = true; + # EFI booting isoImage.makeEfiBootable = true; diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix index 86c2cd1a8c73..8fa070b03db3 100644 --- a/nixos/modules/installer/cd-dvd/iso-image.nix +++ b/nixos/modules/installer/cd-dvd/iso-image.nix @@ -535,10 +535,17 @@ in ''; }; + isoImage.makeBiosBootable = mkOption { + default = false; + description = lib.mdDoc '' + Whether the ISO image should be a BIOS-bootable disk. + ''; + }; + isoImage.makeEfiBootable = mkOption { default = false; description = lib.mdDoc '' - Whether the ISO image should be an efi-bootable volume. + Whether the ISO image should be an EFI-bootable volume. ''; }; @@ -693,7 +700,7 @@ in boot.loader.grub.enable = false; environment.systemPackages = [ grubPkgs.grub2 grubPkgs.grub2_efi ] - ++ optional canx86BiosBoot pkgs.syslinux + ++ optional (config.isoImage.makeBiosBootable && canx86BiosBoot) pkgs.syslinux ; # In stage 1 of the boot, mount the CD as the root FS by label so @@ -744,7 +751,7 @@ in { source = pkgs.writeText "version" config.system.nixos.label; target = "/version.txt"; } - ] ++ optionals canx86BiosBoot [ + ] ++ optionals (config.isoImage.makeBiosBootable && canx86BiosBoot) [ { source = config.isoImage.splashImage; target = "/isolinux/background.png"; } @@ -771,7 +778,7 @@ in { source = config.isoImage.efiSplashImage; target = "/EFI/boot/efi-background.png"; } - ] ++ optionals (config.boot.loader.grub.memtest86.enable && canx86BiosBoot) [ + ] ++ optionals (config.boot.loader.grub.memtest86.enable && config.isoImage.makeBiosBootable && canx86BiosBoot) [ { source = "${pkgs.memtest86plus}/memtest.bin"; target = "/boot/memtest.bin"; } @@ -786,10 +793,10 @@ in # Create the ISO image. system.build.isoImage = pkgs.callPackage ../../../lib/make-iso9660-image.nix ({ inherit (config.isoImage) isoName compressImage volumeID contents; - bootable = canx86BiosBoot; + bootable = config.isoImage.makeBiosBootable && canx86BiosBoot; bootImage = "/isolinux/isolinux.bin"; - syslinux = if canx86BiosBoot then pkgs.syslinux else null; - } // optionalAttrs (config.isoImage.makeUsbBootable && canx86BiosBoot) { + syslinux = if config.isoImage.makeBiosBootable && canx86BiosBoot then pkgs.syslinux else null; + } // optionalAttrs (config.isoImage.makeUsbBootable && config.isoImage.makeBiosBootable && canx86BiosBoot) { usbBootable = true; isohybridMbrImage = "${pkgs.syslinux}/share/syslinux/isohdpfx.bin"; } // optionalAttrs config.isoImage.makeEfiBootable { |