Provision Windows to UEFI booted host

Hi y'all,

I've had no success with this and as the usage of Foreman to provision
Windows hosts is a little "less mature" and there by generates a little
less useful replies on Google I look to you guys to see if anyone of you
have solved this or have any ideas on how to progress.

So we have provisioned Windows onto BIOS hosts for a while, we do that by
chainloading our WDS from PXE-Linux on the foreman server, it was quite
tricky to get going from the beginning but eventually we got there for a
little over a year ago or so. Now we face the next obstacle, or quite
frankly I do, that my Windows colleagues want everything to use UEFI
instead. I looked into that a few months ago without getting any working
solution, but now it is time for the second round. So what I want to do,
which I hope is possible, is to chainload the WDS in the same manor as we
did with the BIOS hosts, I wont go in to the reasons, but I assume you
could imagine a few of your own.
So I've looked into creating a PXEGrub2 template for this and have had some
success, but when I've made the jump to the WDS and have loaded the first
file wdsmgfw.efi, the installation crashes with the error according to the
image bellow bellow.

<https://lh3.googleusercontent.com/-2i4F1iHmRIw/WTFh0iHF1lI/AAAAAAAAQd4/9JLS0mMeAiEqBHHjYB8o6DLjcCgU8eYHACLcB/s1600/uefi%2Berror%2Bmessage.PNG>

As you can imagine the Server IP should most certainly show the ip of the
WDS, that assumption is based on the fact that when booting directly into
the WDS that is what is displayed instead of "0.0.0.0". So seemingly
booting into grub2 chainloading into wds somewhere some information is
lost, I would actually understood it better if the Foreman servers IP was
erroneously shown, but obviously it is not grabbing that IP either. The
present grub2 template in foreman dictates the following:

set default=0
set timeout=<%= @host.params['loader_timeout'] || 10 %>

menuentry '<%= template_name %>' {
insmod chain
insmod net
insmod efinet
insmod ntfs

echo 'Network status: '
net_ls_addr
set root=(hd0)
chainloader (pxe:130.236.14.133)boot\x64/wdsmgfw.efi

boot
}

I guess some of it isn't needed but I have already removed a fairly large
amount of commented out lines that have been used during the massive
testing I did at the last try, so I pasted the lines that was not commented
out for the moment.

So, any ideas? Anyone walked this path before me? We have no issue
provisioning Linux hosts that have UEFI booted, but on the other hand they
don't do the same "jump"…

Best wishes, Fredrik

Hi Fredrik,

Were you able to get this working finally…?

Regards,

Mrinmoy

··· On Friday, June 2, 2017 at 6:44:27 PM UTC+5:30, Fredrik Nilsson wrote: > > Hi y'all, > > I've had no success with this and as the usage of Foreman to provision > Windows hosts is a little "less mature" and there by generates a little > less useful replies on Google I look to you guys to see if anyone of you > have solved this or have any ideas on how to progress. > > So we have provisioned Windows onto BIOS hosts for a while, we do that by > chainloading our WDS from PXE-Linux on the foreman server, it was quite > tricky to get going from the beginning but eventually we got there for a > little over a year ago or so. Now we face the next obstacle, or quite > frankly I do, that my Windows colleagues want everything to use UEFI > instead. I looked into that a few months ago without getting any working > solution, but now it is time for the second round. So what I want to do, > which I hope is possible, is to chainload the WDS in the same manor as we > did with the BIOS hosts, I wont go in to the reasons, but I assume you > could imagine a few of your own. > So I've looked into creating a PXEGrub2 template for this and have had > some success, but when I've made the jump to the WDS and have loaded the > first file wdsmgfw.efi, the installation crashes with the error according > to the image bellow bellow. > > > > > > As you can imagine the Server IP should most certainly show the ip of the > WDS, that assumption is based on the fact that when booting directly into > the WDS that is what is displayed instead of "0.0.0.0". So seemingly > booting into grub2 chainloading into wds somewhere some information is > lost, I would actually understood it better if the Foreman servers IP was > erroneously shown, but obviously it is not grabbing that IP either. The > present grub2 template in foreman dictates the following: > > > set default=0 > set timeout=<%= @host.params['loader_timeout'] || 10 %> > > menuentry '<%= template_name %>' { > insmod chain > insmod net > insmod efinet > insmod ntfs > > echo 'Network status: ' > net_ls_addr > set root=(hd0) > chainloader (pxe:130.236.14.133)boot\x64/wdsmgfw.efi > > boot > } > > > I guess some of it isn't needed but I have already removed a fairly large > amount of commented out lines that have been used during the massive > testing I did at the last try, so I pasted the lines that was not commented > out for the moment. > > > So, any ideas? Anyone walked this path before me? We have no issue > provisioning Linux hosts that have UEFI booted, but on the other hand they > don't do the same "jump".... > > > Best wishes, Fredrik >