Project

General

Profile

Actions

Feature #12635

closed

Options to deploy Grub and PXELinux EFI loaders in TFTP root

Added by Lukas Zapletal over 8 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Normal
Category:
Foreman modules
Target version:
Fixed in Releases:
Found in Releases:

Description

It looks like Grub2 is the best and most compatible way of PXE booting EFI hardware and it is available in most Linux distributions. It makes sense to provide support in our Puppet classes and installer to deploy these.

Puppet changes as follows:

if RHEL6 or Fedora 18 or older is found then
install grub package
create /var/lib/tftproot/grub/
copy /boot/efi/EFI/*/grub.efi to /var/lib/tftproot/grub/grubx64.efi
create a relative symlink shim.efi to /var/lib/tftproot/grub/grubx64.efi
ensure correct file permissions and SELinux context

if RHEL7 or Fedora 19 or newer is found then
install packages: grub2-efi grub2-efi-modules grub2-tools shim
create /var/lib/tftproot/grub2/
copy /boot/efi/EFI/*/shim.efi to /var/lib/tftproot/grub2/shim.efi
build grub2 with all modules with: grub2-mkimage -O x86_64-efi -d /usr/lib/grub/x86_64-efi -o /var/lib/tftproot/grub2/grubx64.efi -p "" `find /usr/lib/grub/x86_64-efi/*.mod -printf "%f " | sed -e 's/\.mod//g'` (X)
ensure correct file permissions and SELinux context

if Debian or Ubuntu is found then
install packages: grub-common grub-efi-amd64-bin
create /var/lib/tftproot/grub2/
build grub2 with all modules with: grub-mkimage -O x86_64-efi -d /usr/lib/grub/x86_64-efi -o /var/lib/tftproot/grub2/grubx64.efi -p "" `find /usr/lib/grub/x86_64-efi/*.mod -printf "%f " | sed -e 's/\.mod//g'` (X)
create a relative symlink shim.efi to /var/lib/tftproot/grub/grubx64.efi
ensure correct file permissions

I have only tested this with latest LTS Ubuntu and Debian Jessie (8)

(X) - this command could be extracted to a helper script


Related issues 4 (0 open4 closed)

Related to Foreman - Tracker #431: [TRACKER] UEFI PXE supportResolvedLukas Zapletal

Actions
Related to Installer - Feature #14920: Change dhcpd.conf to support EFI loadersClosed05/04/2016Actions
Related to Katello - Bug #16820: Upgrading Katello 3.1 to 3.2 Error with /usr/bin/grub2-mkimageDuplicate10/06/2016Actions
Related to Installer - Bug #16705: grubx64.efi fails to boot with Secure BootClosedLukas Zapletal09/27/2016Actions
Actions #1

Updated by Lukas Zapletal over 8 years ago

  • Tracker changed from Bug to Feature
Actions #2

Updated by Lukas Zapletal over 8 years ago

Actions #3

Updated by Lukas Zapletal over 8 years ago

Also we can prepare configuration for POWERPC nodes:

http://jk.ozlabs.org/blog/post/158/netbooting-petitboot/?cm_mc_uid=91489629740814486170120&cm_mc_sid_50200000=1448888937

The only issue is Grub2-ppc binary, that will never be available on x86 distros, we can leave a comment that this will only work if smart-proxy is running on POWER PC as well.

Actions #4

Updated by Lukas Zapletal almost 8 years ago

  • Subject changed from Dual PXELinux/Grub2 DHCP configuration with EFI firmware to Options to deploy Grub and PXELinux EFI loaders in TFTP root
  • Description updated (diff)
Actions #5

Updated by Lukas Zapletal almost 8 years ago

Expected file paths are defined in the table at http://projects.theforeman.org/projects/foreman/wiki/PXE_Booting_UEFI

Actions #6

Updated by Lukas Zapletal almost 8 years ago

  • Related to Feature #14920: Change dhcpd.conf to support EFI loaders added
Actions #7

Updated by Lukas Zapletal almost 8 years ago

UEFI shim shall be installed if possible.

Actions #8

Updated by Lukas Zapletal over 7 years ago

Deleted (moved to description).

Actions #10

Updated by Lukas Zapletal over 7 years ago

  • Description updated (diff)

Added missing shim package

Actions #11

Updated by Lukas Zapletal over 7 years ago

  • Description updated (diff)

Removed grubx64s.efi copy, not really necessary.

Actions #12

Updated by The Foreman Bot over 7 years ago

  • Status changed from New to Ready For Testing
  • Assignee set to Lukas Zapletal
  • Pull request https://github.com/theforeman/foreman-installer/pull/197 added
Actions #13

Updated by Daniel Lobato Garcia over 7 years ago

  • Target version set to 1.6.2
Actions #14

Updated by Dominic Cleal over 7 years ago

  • Status changed from Ready For Testing to Closed
  • translation missing: en.field_release set to 160
  • Pull request https://github.com/theforeman/puppet-foreman_proxy/pull/276 added
Actions #15

Updated by Anonymous over 7 years ago

  • Related to Bug #16820: Upgrading Katello 3.1 to 3.2 Error with /usr/bin/grub2-mkimage added
Actions #16

Updated by Lukas Zapletal over 7 years ago

  • Related to Bug #16705: grubx64.efi fails to boot with Secure Boot added
Actions

Also available in: Atom PDF