From 3f337d5edb1fe2a6efa1d64d58e221017e165f0b Mon Sep 17 00:00:00 2001 From: Kristine Bujold Date: Mon, 1 Oct 2018 11:14:25 -0400 Subject: [PATCH] Fix bug with PXE Boot Server The UEFI grub config file used for PXE Boot Server containes a mixed of menuentry and submenu. A submenu opens a new context and global variables cannot be used within them https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1175127. This was causing pxe_root to be empty for submenus selections. Moving '1) UEFI Boot from hard drive' into a submenu fixes this problem and also removes the need to save the root variable. This was previously required when a user would select boot from hard drive and the hard drive did not exist, root would no longer be set to the pxeboot server and selecting the other menu entries would fail. Remove the '1)' prefix in the 'Boot from hard drive' menu option in both Legacy and UEFI boot as this is not used by other menues. Closes-Bug: 1794863 Change-Id: I5bc62039bfb68477e9cd0166ce17877693037640 Signed-off-by: Kristine Bujold --- bsp-files/pxeboot.cfg | 2 +- bsp-files/pxeboot_grub.cfg | 16 +--------------- 2 files changed, 2 insertions(+), 16 deletions(-) diff --git a/bsp-files/pxeboot.cfg b/bsp-files/pxeboot.cfg index 728baebd..4e811f3a 100644 --- a/bsp-files/pxeboot.cfg +++ b/bsp-files/pxeboot.cfg @@ -19,7 +19,7 @@ NOCOMPLETE 1 ALLOWOPTIONS 0 label 0 - menu label ^1) Boot from hard drive + menu label Boot from hard drive COM32 chain.c32 APPEND hd0 diff --git a/bsp-files/pxeboot_grub.cfg b/bsp-files/pxeboot_grub.cfg index 9e8aaeea..a0070d0e 100644 --- a/bsp-files/pxeboot_grub.cfg +++ b/bsp-files/pxeboot_grub.cfg @@ -4,9 +4,7 @@ default=0 GRUB_HIDDEN_TIMEOUT=0 GRUB_TIMEOUT_STYLE='countdown' -pxe_root=${root} - -menuentry '1) UEFI Boot from hard drive' { +submenu 'UEFI Boot from hard drive' { insmod part_gpt insmod chain # The EFI bootloader is located in /boot/efi/EFI/centos/ @@ -20,12 +18,10 @@ menuentry '1) UEFI Boot from hard drive' { submenu 'UEFI Standard Controller' { submenu 'Serial Console' { menuentry 'STANDARD Security Boot Profile' { - set root=${pxe_root} linuxefi vmlinuz bootifonly=1 devfs=nomount inst.repo=xxxHTTP_URLxxx inst.ks=xxxHTTP_URLxxx/pxeboot_controller.cfg ksdevice=$net_default_mac BOOTIF=$net_default_mac boot_device=sda rootfs_device=sda biosdevname=0 inst.text serial console=ttyS0,115200n8 inst.gpt security_profile=standard user_namespace.enable=1 initrdefi initrd.img } menuentry 'EXTENDED Security Boot Profile' { - set root=${pxe_root} linuxefi vmlinuz bootifonly=1 devfs=nomount inst.repo=xxxHTTP_URLxxx inst.ks=xxxHTTP_URLxxx/pxeboot_controller.cfg ksdevice=$net_default_mac BOOTIF=$net_default_mac boot_device=sda rootfs_device=sda biosdevname=0 inst.text serial console=ttyS0,115200n8 inst.gpt security_profile=extended tboot=true user_namespace.enable=1 initrdefi initrd.img } @@ -33,12 +29,10 @@ submenu 'UEFI Standard Controller' { submenu 'Graphical Console' { menuentry 'STANDARD Security Boot Profile' { - set root=${pxe_root} linuxefi vmlinuz bootifonly=1 devfs=nomount inst.repo=xxxHTTP_URLxxx inst.ks=xxxHTTP_URLxxx/pxeboot_controller.cfg ksdevice=$net_default_mac BOOTIF=$net_default_mac boot_device=sda rootfs_device=sda biosdevname=0 inst.text console=tty0 inst.gpt security_profile=standard user_namespace.enable=1 initrdefi initrd.img } menuentry 'EXTENDED Security Boot Profile' { - set root=${pxe_root} linuxefi vmlinuz bootifonly=1 devfs=nomount inst.repo=xxxHTTP_URLxxx inst.ks=xxxHTTP_URLxxx/pxeboot_controller.cfg ksdevice=$net_default_mac BOOTIF=$net_default_mac boot_device=sda rootfs_device=sda biosdevname=0 inst.text console=tty0 inst.gpt security_profile=extended tboot=true user_namespace.enable=1 initrdefi initrd.img } @@ -49,12 +43,10 @@ submenu 'UEFI Standard Controller' { submenu 'UEFI All-in-one Controller' { submenu 'Serial Console' { menuentry 'STANDARD Security Boot Profile' { - set root=${pxe_root} linuxefi vmlinuz bootifonly=1 devfs=nomount inst.repo=xxxHTTP_URLxxx inst.ks=xxxHTTP_URLxxx/pxeboot_smallsystem.cfg ksdevice=$net_default_mac BOOTIF=$net_default_mac boot_device=sda rootfs_device=sda biosdevname=0 inst.text serial console=ttyS0,115200n8 inst.gpt security_profile=standard user_namespace.enable=1 initrdefi initrd.img } menuentry 'EXTENDED Security Boot Profile' { - set root=${pxe_root} linuxefi vmlinuz bootifonly=1 devfs=nomount inst.repo=xxxHTTP_URLxxx inst.ks=xxxHTTP_URLxxx/pxeboot_smallsystem.cfg ksdevice=$net_default_mac BOOTIF=$net_default_mac boot_device=sda rootfs_device=sda biosdevname=0 inst.text serial console=ttyS0,115200n8 inst.gpt security_profile=extended tboot=true user_namespace.enable=1 initrdefi initrd.img } @@ -62,12 +54,10 @@ submenu 'UEFI All-in-one Controller' { submenu 'Graphical Console' { menuentry 'STANDARD Security Boot Profile' { - set root=${pxe_root} linuxefi vmlinuz bootifonly=1 devfs=nomount inst.repo=xxxHTTP_URLxxx inst.ks=xxxHTTP_URLxxx/pxeboot_smallsystem.cfg ksdevice=$net_default_mac BOOTIF=$net_default_mac boot_device=sda rootfs_device=sda biosdevname=0 inst.text console=tty0 inst.gpt security_profile=standard user_namespace.enable=1 initrdefi initrd.img } menuentry 'EXTENDED Security Boot Profile' { - set root=${pxe_root} linuxefi vmlinuz bootifonly=1 devfs=nomount inst.repo=xxxHTTP_URLxxx inst.ks=xxxHTTP_URLxxx/pxeboot_smallsystem.cfg ksdevice=$net_default_mac BOOTIF=$net_default_mac boot_device=sda rootfs_device=sda biosdevname=0 inst.text console=tty0 inst.gpt security_profile=extended tboot=true user_namespace.enable=1 initrdefi initrd.img } @@ -78,12 +68,10 @@ submenu 'UEFI All-in-one Controller' { submenu 'UEFI All-in-one (lowlatency) Controller' { submenu 'Serial Console' { menuentry 'STANDARD Security Boot Profile' { - set root=${pxe_root} linuxefi vmlinuz bootifonly=1 devfs=nomount inst.repo=xxxHTTP_URLxxx inst.ks=xxxHTTP_URLxxx/pxeboot_smallsystem_lowlatency.cfg ksdevice=$net_default_mac BOOTIF=$net_default_mac boot_device=sda rootfs_device=sda biosdevname=0 inst.text serial console=ttyS0,115200n8 inst.gpt security_profile=standard user_namespace.enable=1 initrdefi initrd.img } menuentry 'EXTENDED Security Boot Profile' { - set root=${pxe_root} linuxefi vmlinuz bootifonly=1 devfs=nomount inst.repo=xxxHTTP_URLxxx inst.ks=xxxHTTP_URLxxx/pxeboot_smallsystem_lowlatency.cfg ksdevice=$net_default_mac BOOTIF=$net_default_mac boot_device=sda rootfs_device=sda biosdevname=0 inst.text serial console=ttyS0,115200n8 inst.gpt security_profile=extended tboot=true user_namespace.enable=1 initrdefi initrd.img } @@ -91,12 +79,10 @@ submenu 'UEFI All-in-one (lowlatency) Controller' { submenu 'Graphical Console' { menuentry 'STANDARD Security Boot Profile' { - set root=${pxe_root} linuxefi vmlinuz bootifonly=1 devfs=nomount inst.repo=xxxHTTP_URLxxx inst.ks=xxxHTTP_URLxxx/pxeboot_smallsystem_lowlatency.cfg ksdevice=$net_default_mac BOOTIF=$net_default_mac boot_device=sda rootfs_device=sda biosdevname=0 inst.text console=tty0 inst.gpt security_profile=standard user_namespace.enable=1 initrdefi initrd.img } menuentry 'EXTENDED Security Boot Profile' { - set root=${pxe_root} linuxefi vmlinuz bootifonly=1 devfs=nomount inst.repo=xxxHTTP_URLxxx inst.ks=xxxHTTP_URLxxx/pxeboot_smallsystem_lowlatency.cfg ksdevice=$net_default_mac BOOTIF=$net_default_mac boot_device=sda rootfs_device=sda biosdevname=0 inst.text console=tty0 inst.gpt security_profile=extended tboot=true user_namespace.enable=1 initrdefi initrd.img }