UEFI BOOTING
-
I am trying to PXE boot to UEFI Machines. My fog system works great with legacy bios settings. i am using version 1.2.0 and wondering do i use snponly.efi for my boot file? i have a policy in dhcp scope.
thanks
Eric
-
Your best approach would be to spin up a new FOG server v1.3 or newer (actually 1.5.5 is the latest), then migrate your images to the new server. If you want to keep using FOG 1.2.0 you won’t have nvme disk, native win10, or fully functional uefi support built into FOG. Also if you are running FOG 1.2.0 your FOS kernels are going to be older so you might not have access to current hardware and network drivers.
But to answer your question, ipxe.efi is the default to use for uefi mode. If ipxe.efi with its built in drivers don’t work then try snponly.efi is equivalent to undionly.kpxe in bios mode.
-
thank you i think im gong to create a new server…ive been meaning to build one on my virtual environment
E
-
@pyrate31 said in UEFI BOOTING:
thank you i think im gong to create a new server…ive been meaning to build one on my virtual environment
I truly feel that is the best approach to get on a newer host OS for fog as well as get the latest build of FOG. By building new, you have time to setup your new environment without loosing your existing one because of a possible failed upgrade.
Use the git clone method for installing fog 1.5.5 (because 1.5.6 is in the works). The git clone method makes upgrading a bit easier than the tarball approach.
-
i got the new server up and running, my old bios machines are booting to it no problem, is there a different boot file i need to put in my dhcp server other than /undionly.kpxe
-
got the new server up and running, my old bios machines are booting to it no problem, is there a different boot file i need to put in my dhcp server other than /undionly.kpxe
my new machines are still not recognizing the fog bootfile.
-
@pyrate31 Well with your new fog server in place you have must update dhcp option 66 {next-server} to the IP address of your new fog server. And for dhcp option 67 {boot-file} you need to set that to
undionly.kpxe
(note without the preceding slash) for bios based computers andipxe.efi
for uefi based computers.When you are saying the computers are not recoginizing the fog boot file, what is the exact error message (if you can’t explain it a clear screen shot taken with a mobile phone speaks volumes to the issue). Does it mention something about NBF <something? If so that is a uefi system and you are telling it to load a bios boot loader.
-
ok i finally got it to give me an ip address, now it is giving me nbp is to big, so do i have to set up the vendor class and dhcp policy 66 and 67 pointing to ipxe.efi? from this article?
https://wiki.fogproject.org/wiki/index.php?title=BIOS_and_UEFI_Co-Existence
if so, which binary would be best used…its an intel networking card … arch:00000?
-
@pyrate31 The nbp too big means (guess) you are sending an ipxe.efi (uefi) file to a bios client computer.
From that same file you linked.
Type Architecture Name ---- ----------------- 0 Intel x86PC 1 NEC/PC98 2 EFI Itanium 3 DEC Alpha 4 Arc x86 5 Intel Lean Client 6 EFI IA32 7 EFI BC (EFI Byte Code) 8 EFI Xscale 9 EFI x86-64
arch 0 is bios which needs
undionly.kpxe
arch 7 & 9 needipxe.efi
arch 2 & 6 (not common) needs/i386/ipxe.efi
So if you want to dynamically switch boot files depending on the pxe client you will need to add this section to your dhcp scope.
class "UEFI-32-1" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00006"; filename "i386-efi/ipxe.efi"; } class "UEFI-32-2" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00002"; filename "i386-efi/ipxe.efi"; } class "UEFI-64-1" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00007"; filename "ipxe.efi"; } class "UEFI-64-2" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00008"; filename "ipxe.efi"; } class "UEFI-64-3" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00009"; filename "ipxe.efi"; } class "Legacy" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00000"; filename "undionly.kkpxe"; }
-
I actually got the legacy and efi to boot to fog without using the script. I put undionly.kpxe in the scope policy and ipxe in the scope options…it seems to work…i just wanted to see if it would make a difference. It Works!
Eric
-
@george1421 how would I add your section above to my DHCP scope to dynamically switch between legacy and UEFI? I am using a Windows Server 2016 DHCP server.
Thanks
-
@jester805 For Windows 2012+ dhcp server there is guidance on how to set it up here: https://wiki.fogproject.org/wiki/index.php/BIOS_and_UEFI_Co-Existence#Using_Windows_Server_2012_.28R1_and_later.29_DHCP_Policy
The instructions are for 2012 dhcp server, but I can tell you they work well for 2016 dhcp server too.
A couple of deviations from the tutorial.
- I would setup these classes
Type Architecture Name ---- ----------------- 6 EFI IA32 7 EFI BC (EFI Byte Code) 9 EFI x86-64
- Set your default dhcp option 67 to undionly.kpxe.
- Set dhcp option 66 to the IP address of your fog server
- In the custom filters only set dhcp option 67. Don’t set option 66 like in the instructions\
The idea is if one of the filters don’t match then it will pick the default values which will be for bios computers (undionly.kpxe)