How can Razor be used to install UEFI mode computers?

226 views
Skip to first unread message

Robroy Gregg

unread,
Jan 9, 2018, 2:54:14 PM1/9/18
to puppet-razor

Good day Scott and fellow Razor users,

I'm having trouble using Razor 1.6.1 to install UEFI mode computers.

What I've tried:

  • I've tried several different physical computers in UEFI mode (same behavior among all).
  • I've tried an ESXi 6.5 U1 VM in UEFI mode (same behavior as the physical computers).
  • I've tried to install RHEL 7.4 (redhat/7), SLES 12 SP3 (sles/12) and ESX 6.5 U1 (vmware_esxi).  All failed, though each OS failed differently.
  • I've verified that manual RHEL 7.4 installs work fine (using the same ISO image) with UEFI.
Attached is 2018Jan09_RHEL_Panic_A.PNG, which shows how a RHEL 7.4 install to a UEFI ESXi VM fails; the RHEL kernel panics while trying to mount its root filesystem, prior to starting its installer.

I found a UEFI post from two years ago which suggests that using Razor to install UEFI computers may be unsupported, yet it's my wish all the same.

Questions:

  • Does Razor 1.6.1 intend to support installing UEFI computers?
  • Are Razor's bundled tasks written to install in BIOS/MBR mode only?
  • To install UEFI computers with Razor, would it be necessary to create a custom UEFI-aware task for each OS?

Thanks so much!

Robroy

2018Jan09_RHEL_Panic_A.PNG

Robroy Gregg

unread,
Jan 9, 2018, 7:25:29 PM1/9/18
to puppet-razor
'afternoon.  I've noticed that the RHEL 7.4 install through Razor to UEFI computers works with this change to the bundled task:

/opt/puppetlabs/server/apps/razor-server/share/razor-server/tasks/redhat.task/kernel_args.erb


Original:  ks=<%= file_url("kickstart") %> network ksdevice=bootif BOOTIF=01-${netX/mac}

Modified:  ks=<%= file_url("kickstart") %> initrd=initrd.img network ksdevice=bootif BOOTIF=01-${netX/mac}


And with this dnsmasq configuration (ipxe.efi downloaded today from http://boot.ipxe.org/ipxe.efi):

dhcp-match=set:EFI,option:client-arch,7
dhcp-boot=tag:EFI,ipxe.efi
dhcp-match=set:iPXE,175
dhcp-boot=tag:iPXE,bootstrap.ipxe
dhcp-boot=undionly.kpxe

Though it's nice to have RHEL 7.4 installs working, I'd still be curious to hear y'all's thoughts on my original questions.

Thanks so much!

Howard Jones

unread,
Jan 11, 2018, 12:08:22 PM1/11/18
to puppet-razor

On Wednesday, 10 January 2018 00:25:29 UTC, Robroy Gregg wrote:
Though it's nice to have RHEL 7.4 installs working, I'd still be curious to hear y'all's thoughts on my original questions.


 I (eventually) found the same fix as you with initrd=initrd.img 

Other than that, we're using the standard razor files to install RHEL 7.4 and (with some other fixes) RHEL 7.3. We have added our own tasks, but only to add local kickstart changes.

The DHCP side of things needed a bunch of work to detect EFI vs BIOS booting devices and give them the appropriate ipxe.efi or ipxe.pxe, but razor didn't need much. We're using ISC DHCPd, and I started with this gist, and chopped out the cases I don't have (old ipxe versions and 32-bit x86): https://gist.github.com/robinsmidsrod/4008017

For RHEL 7.3, the kernel on the install media doesn't even start in an ipxe/EFI environment (black screen), so you need to unpack a more recent EL7 kernel RPM and rebuild the initrd.img to use the modules from that RPM also.


Reply all
Reply to author
Forward
0 new messages