GRUB: don't display BIOS only addons when running in EFI mode
authorMichael Prokop <mika@grml.org>
Fri, 17 Jul 2020 20:03:41 +0000 (22:03 +0200)
committerMichael Prokop <mika@grml.org>
Fri, 17 Jul 2020 20:09:07 +0000 (22:09 +0200)
There's no point in displaying the BIOS only addons when
running in EFI mode.

This work was funded by Grml-Forensic.

Closes: https://github.com/grml/grml/issues/113

templates/boot/grub/addons.cfg

index 130ab05..3b515d8 100644 (file)
@@ -1,65 +1,82 @@
 submenu "Addons ->" --class=submenu {
-menuentry "Memory test (memtest86+)" {
-    insmod linux16
-    linux16 /boot/addons/memtest
-}
+
+if [ "${grub_platform}" != "efi" ] ; then
+    menuentry "Memory test (memtest86+)" {
+        insmod linux16
+        linux16 /boot/addons/memtest
+    }
+fi
 
 menuentry "iPXE - boot via network/PXE" {
-    insmod linux16
-    linux16 /boot/addons/ipxe.lkrn
+    if [ "${grub_platform}" == "efi" ] ; then
+        chainloader /boot/addons/ipxe.efi
+    else
+        insmod linux16
+        linux16 /boot/addons/ipxe.lkrn
+    fi
 }
 
 menuentry "Netboot.xyz" {
-    insmod linux16
-    linux16 /boot/addons/netboot.xyz.lkrn
-}
-
-menuentry "GRUB - all in one image" {
-    insmod linux16
-    linux16  /boot/addons/memdisk
-    initrd16 /boot/addons/allinone.img
+    if [ "${grub_platform}" == "efi" ] ; then
+        chainloader /boot/addons/netboot.xyz.efi
+    else
+        insmod linux16
+        linux16 /boot/addons/netboot.xyz.lkrn
+    fi
 }
 
-menuentry "FreeDOS" {
-    insmod linux16
-    linux16  /boot/addons/memdisk
-    loopback balder /boot/addons/balder10.imz
-    initrd16 (balder)+2880
-}
-
-if [ ${iso_path} ] ; then
-    # assume loopback.cfg boot
-    menuentry "MirOS bsd4grml (via loopback)" {
-        multiboot   /boot/addons/bsd4grml/ldbsd.com
-        module      /boot/addons/bsd4grml/bsd.rd bsd
-        module      /boot/addons/bsd4grml/loopback.0 boot.cfg
-        module      /boot/addons/bsd4grml/loopback.1 boot.1
-        module      /boot/addons/bsd4grml/loopback.2 boot.2
-        module      /boot/addons/bsd4grml/loopback.3 boot.3
-        module      /boot/addons/bsd4grml/loopback.4 boot.4
-        module      /boot/addons/bsd4grml/loopback.5 boot.5
-        module      /boot/addons/bsd4grml/loopback.6 boot.6
+if [ "${grub_platform}" != "efi" ] ; then
+    menuentry "Netboot.xyz" {
+        insmod linux16
+        linux16 /boot/addons/netboot.xyz.lkrn
     }
-else
-    # assume grub.cfg boot
-    menuentry "MirOS bsd4grml (regular method)" {
-        multiboot   /boot/addons/bsd4grml/ldbsd.com
+
+    menuentry "GRUB - all in one image" {
+        insmod linux16
+        linux16  /boot/addons/memdisk
+        initrd16 /boot/addons/allinone.img
     }
 
-    menuentry "MirOS bsd4grml (fallback method)" {
-        multiboot   /boot/addons/bsd4grml/ldbsd.com
-        module      /boot/addons/bsd4grml/bsd.rd bsd.rd
-        module      /boot/addons/bsd4grml/boot.1 boot.1
-        module      /boot/addons/bsd4grml/boot.2 boot.2
-        module      /boot/addons/bsd4grml/boot.3 boot.3
-        module      /boot/addons/bsd4grml/boot.4 boot.4
-        module      /boot/addons/bsd4grml/boot.5 boot.5
-        module      /boot/addons/bsd4grml/boot.6 boot.6
-        module      /boot/addons/bsd4grml/boot.cfg boot.cfg
-        module      /boot/grub/grub.img grub.img
+    menuentry "FreeDOS" {
+        insmod linux16
+        linux16  /boot/addons/memdisk
+        loopback balder /boot/addons/balder10.imz
+        initrd16 (balder)+2880
     }
-fi
 
+    if [ ${iso_path} ] ; then
+        # assume loopback.cfg boot
+        menuentry "MirOS bsd4grml (via loopback)" {
+            multiboot   /boot/addons/bsd4grml/ldbsd.com
+            module      /boot/addons/bsd4grml/bsd.rd bsd
+            module      /boot/addons/bsd4grml/loopback.0 boot.cfg
+            module      /boot/addons/bsd4grml/loopback.1 boot.1
+            module      /boot/addons/bsd4grml/loopback.2 boot.2
+            module      /boot/addons/bsd4grml/loopback.3 boot.3
+            module      /boot/addons/bsd4grml/loopback.4 boot.4
+            module      /boot/addons/bsd4grml/loopback.5 boot.5
+            module      /boot/addons/bsd4grml/loopback.6 boot.6
+        }
+    else
+        # assume grub.cfg boot
+        menuentry "MirOS bsd4grml (regular method)" {
+            multiboot   /boot/addons/bsd4grml/ldbsd.com
+        }
+
+        menuentry "MirOS bsd4grml (fallback method)" {
+            multiboot   /boot/addons/bsd4grml/ldbsd.com
+            module      /boot/addons/bsd4grml/bsd.rd bsd.rd
+            module      /boot/addons/bsd4grml/boot.1 boot.1
+            module      /boot/addons/bsd4grml/boot.2 boot.2
+            module      /boot/addons/bsd4grml/boot.3 boot.3
+            module      /boot/addons/bsd4grml/boot.4 boot.4
+            module      /boot/addons/bsd4grml/boot.5 boot.5
+            module      /boot/addons/bsd4grml/boot.6 boot.6
+            module      /boot/addons/bsd4grml/boot.cfg boot.cfg
+            module      /boot/grub/grub.img grub.img
+        }
+    fi # iso_path
+fi # efi mode
 }
 
 menuentry "Boot OS of first partition on first disk" {