From 9a107fc3d8d1b0eefc180773f8e363fe26caf193 Mon Sep 17 00:00:00 2001 From: Patrick Charles François Ernzer Date: Apr 18 2020 16:17:49 +0000 Subject: [PATCH 1/4] Network_based_Installations.adoc also copy menu.c32 Some of my older PXE clients do not deal well with vesamenu.c32 This commit adds menu.c32 to the files copied --- diff --git a/modules/install-guide/pages/advanced/Network_based_Installations.adoc b/modules/install-guide/pages/advanced/Network_based_Installations.adoc index 7379882..7212874 100644 --- a/modules/install-guide/pages/advanced/Network_based_Installations.adoc +++ b/modules/install-guide/pages/advanced/Network_based_Installations.adoc @@ -137,7 +137,7 @@ next-server 192.168.1.2; [subs="quotes, macros"] ---- # [command]#mkdir -p `/var/lib/tftpboot/pxelinux.cfg`pass:attributes[{blank}]# -# [command]#cp `/usr/share/syslinux/{pxelinux.0,vesamenu.c32,ldlinux.c32,libcom32.c32,libutil.c32}` `/var/lib/tftpboot/`pass:attributes[{blank}]# +# [command]#cp `/usr/share/syslinux/{pxelinux.0,menu.c32,vesamenu.c32,ldlinux.c32,libcom32.c32,libutil.c32}` `/var/lib/tftpboot/`pass:attributes[{blank}]# ---- . Get the bootloader files for UEFI systems From 83afaec85a0ffef861ded28505f80aa2c782e949 Mon Sep 17 00:00:00 2001 From: Patrick Charles François Ernzer Date: Apr 18 2020 16:24:08 +0000 Subject: [PATCH 2/4] Network_based_Installations.adoc fix names of shim-64 and grub2-efi-x64 the shim and grub2-efi packages have -x64 in their name now (maybe include instructions for adding ia32 too at a later stage) --- diff --git a/modules/install-guide/pages/advanced/Network_based_Installations.adoc b/modules/install-guide/pages/advanced/Network_based_Installations.adoc index 7212874..2b1769c 100644 --- a/modules/install-guide/pages/advanced/Network_based_Installations.adoc +++ b/modules/install-guide/pages/advanced/Network_based_Installations.adoc @@ -82,7 +82,7 @@ option arch code 93 = unsigned integer 16; subnet 192.168.1.0 netmask 255.255.255.0 { if option arch = 00:07 { -filename "uefi/shim.efi"; +filename "uefi/shim64.efi"; } else { filename "pxelinux.0"; } @@ -142,11 +142,11 @@ next-server 192.168.1.2; . Get the bootloader files for UEFI systems + -.. Install the [package]*shim* and [package]*grub2-efi* packages. If your server is a BIOS system, you *must install the packages to a temporary install root*. Installing them directly on a BIOS machine will attempt to configure the system for UEFI booting and cause problems. +.. Install the [package]*shim-x64* and [package]*grub2-efi-x64* packages. If your server is a BIOS system, you *must install the packages to a temporary install root*. Installing them directly on a BIOS machine will attempt to configure the system for UEFI booting and cause problems. + [subs="attributes"] ---- -# dnf install shim grub2-efi-x64 --installroot=/tmp/fedora --releasever {PRODVER} +# dnf install shim-x64 grub2-efi-x64 --installroot=/tmp/fedora --releasever {PRODVER} ---- + .. Create a directory for the bootloader files, and make them available there. @@ -154,7 +154,7 @@ next-server 192.168.1.2; [subs="quotes, macros"] ---- # [command]#mkdir -p `/var/lib/tftpboot/uefi`pass:attributes[{blank}]# -# [command]#cp `/tmp/fedora/boot/efi/EFI/fedora/{shim.efi,grubx64.efi}` `/var/lib/tftpboot/uefi/`pass:attributes[{blank}]# +# [command]#cp `/tmp/fedora/boot/efi/EFI/fedora/{shimx64.efi,grubx64.efi}` `/var/lib/tftpboot/uefi/`pass:attributes[{blank}]# ---- .Configuring client bootloaders From 3df4cc6900370f216787c9ee38cec6db7447d335 Mon Sep 17 00:00:00 2001 From: Patrick Charles François Ernzer Date: Apr 18 2020 16:29:20 +0000 Subject: [PATCH 3/4] Network_based_Installations.adoc change path of Update modules/install-guide/pages/advanced/ When I had the boot menu for UEFI clients at `/var/lib/tftpboot/pxelinux/uefi` a test client would not pull it. ``` # journalctl --unit tftp.service --unit dhcpd.service --since -2m --follow [...] Apr 18 18:12:08 nuc7pjyh.internal.pcfe.net dhcpd[9941]: DHCPREQUEST for 192.168.50.123 (192.168.50.248) from 52:54:00:2c:e7:4b via eno1 Apr 18 18:12:08 nuc7pjyh.internal.pcfe.net dhcpd[9941]: DHCPACK on 192.168.50.123 to 52:54:00:2c:e7:4b via eno1 Apr 18 18:12:09 nuc7pjyh.internal.pcfe.net in.tftpd[24721]: RRQ from ::ffff:192.168.50.123 filename uefi/shimx64.efi Apr 18 18:12:09 nuc7pjyh.internal.pcfe.net in.tftpd[24721]: Client ::ffff:192.168.50.123 finished uefi/shimx64.efi Apr 18 18:12:09 nuc7pjyh.internal.pcfe.net in.tftpd[24722]: RRQ from ::ffff:192.168.50.123 filename uefi/grubx64.efi Apr 18 18:12:11 nuc7pjyh.internal.pcfe.net in.tftpd[24722]: Client ::ffff:192.168.50.123 finished uefi/grubx64.efi ``` changing the file location to `/var/lib/tftpboot/uefi/grub.cfg` made it work ``` # journalctl --unit tftp.service --unit dhcpd.service --since -2m --follow [...] Apr 18 18:14:05 nuc7pjyh.internal.pcfe.net dhcpd[9941]: DHCPREQUEST for 192.168.50.123 (192.168.50.248) from 52:54:00:2c:e7:4b via eno1 Apr 18 18:14:05 nuc7pjyh.internal.pcfe.net dhcpd[9941]: DHCPACK on 192.168.50.123 to 52:54:00:2c:e7:4b via eno1 Apr 18 18:14:05 nuc7pjyh.internal.pcfe.net in.tftpd[25121]: RRQ from ::ffff:192.168.50.123 filename uefi/shimx64.efi Apr 18 18:14:06 nuc7pjyh.internal.pcfe.net in.tftpd[25121]: Client ::ffff:192.168.50.123 finished uefi/shimx64.efi Apr 18 18:14:06 nuc7pjyh.internal.pcfe.net in.tftpd[25122]: RRQ from ::ffff:192.168.50.123 filename uefi/grubx64.efi Apr 18 18:14:07 nuc7pjyh.internal.pcfe.net in.tftpd[25122]: Client ::ffff:192.168.50.123 finished uefi/grubx64.efi Apr 18 18:14:07 nuc7pjyh.internal.pcfe.net in.tftpd[25132]: RRQ from ::ffff:192.168.50.123 filename uefi/grub.cfg Apr 18 18:14:07 nuc7pjyh.internal.pcfe.net in.tftpd[25132]: Client ::ffff:192.168.50.123 finished uefi/grub.cfg Apr 18 18:14:07 nuc7pjyh.internal.pcfe.net in.tftpd[25137]: RRQ from ::ffff:192.168.50.123 filename uefi/grub.cfg Apr 18 18:14:07 nuc7pjyh.internal.pcfe.net in.tftpd[25137]: Client ::ffff:192.168.50.123 finished uefi/grub.cfg ``` --- diff --git a/modules/install-guide/pages/advanced/Network_based_Installations.adoc b/modules/install-guide/pages/advanced/Network_based_Installations.adoc index 2b1769c..1a51d5a 100644 --- a/modules/install-guide/pages/advanced/Network_based_Installations.adoc +++ b/modules/install-guide/pages/advanced/Network_based_Installations.adoc @@ -185,7 +185,7 @@ menu label Boot from ^local drive localboot 0xffff ---- -. Create a boot menu for UEFI clients at `/var/lib/tftpboot/pxelinux/uefi`. +. Create a boot menu for UEFI clients at `/var/lib/tftpboot/uefi/grub.cfg`. + [subs="attributes"] ---- From c17a047c39604518f7a9f958c87b633346e08e8b Mon Sep 17 00:00:00 2001 From: Patrick Charles François Ernzer Date: Apr 18 2020 16:38:05 +0000 Subject: [PATCH 4/4] Network_based_Installations.adoc default to boot from disk PXE targets are great, but when the default points to an install target, this makes me nervous. This commit changes both the BIOS and the UEFI menus to select something more harmless by default. BIOS calls localboot, UEFI offers an exit. --- diff --git a/modules/install-guide/pages/advanced/Network_based_Installations.adoc b/modules/install-guide/pages/advanced/Network_based_Installations.adoc index 1a51d5a..cb40035 100644 --- a/modules/install-guide/pages/advanced/Network_based_Installations.adoc +++ b/modules/install-guide/pages/advanced/Network_based_Installations.adoc @@ -168,21 +168,20 @@ default vesamenu.c32 prompt 1 timeout 600 +label local +menu label Boot from ^local drive +menu default +localboot 0xffff + label linux menu label ^Install Fedora {PRODVER} 64-bit -menu default kernel f{PRODVER}/vmlinuz append initrd=f{PRODVER}/initrd.img inst.stage2=https://download.fedoraproject.org/pub/fedora/linux/releases/{PRODVER}/Server/x86_64/os/ ip=dhcp label server menu label ^Install Fedora {PRODVER} ( Minimal Image ) -menu default kernel f{PRODVER}/vmlinuz append initrd=f{PRODVER}/initrd.img inst.stage2=https://download.fedoraproject.org/pub/fedora/linux/releases/{PRODVER}/Server/x86_64/os/ ip=dhcp ks=https://example.com/fedora/kickstarts/minimal.ks - -label local -menu label Boot from ^local drive -localboot 0xffff ---- . Create a boot menu for UEFI clients at `/var/lib/tftpboot/uefi/grub.cfg`. @@ -201,6 +200,10 @@ load_video set gfxpayload=keep insmod gzio +menuentry 'Exit this grub' { + exit +} + menuentry 'Install {PRODUCT} 64-bit' --class fedora --class gnu-linux --class gnu --class os { linuxefi f{PRODVER}/vmlinuz ip=dhcp inst.repo=https://download.fedoraproject.org/pub/fedora/linux/releases/{PRODVER}/Server/x86_64/os/ initrdefi f{PRODVER}/initrd.img