Feature #12635
closedOptions to deploy Grub and PXELinux EFI loaders in TFTP root
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
Updated by Lukas Zapletal about 9 years ago
- Related to Tracker #431: [TRACKER] UEFI PXE support added
Updated by Lukas Zapletal about 9 years ago
Also we can prepare configuration for POWERPC nodes:
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.
Updated by Lukas Zapletal over 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)
Updated by Lukas Zapletal over 8 years ago
Expected file paths are defined in the table at http://projects.theforeman.org/projects/foreman/wiki/PXE_Booting_UEFI
Updated by Lukas Zapletal over 8 years ago
- Related to Feature #14920: Change dhcpd.conf to support EFI loaders added
Updated by Lukas Zapletal over 8 years ago
UEFI shim shall be installed if possible.
Updated by Lukas Zapletal over 8 years ago
- Description updated (diff)
Updated description, changed from downloading http://ftp.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/debian-installer/amd64/bootnetx64.efi and http://archive.ubuntu.com/ubuntu/dists/trusty/main/uefi/grub2-amd64/current/grubnetx64.efi.signed to packages.
Updated by Lukas Zapletal over 8 years ago
- Description updated (diff)
Removed grubx64s.efi
copy, not really necessary.
Updated by The Foreman Bot over 8 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
Updated by Dominic Cleal over 8 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
Updated by Anonymous over 8 years ago
- Related to Bug #16820: Upgrading Katello 3.1 to 3.2 Error with /usr/bin/grub2-mkimage added
Updated by Lukas Zapletal about 8 years ago
- Related to Bug #16705: grubx64.efi fails to boot with Secure Boot added