Unable to boot to disk after PXE Menu timeout
-
@jmvela2x said in Unable to boot to disk after PXE Menu timeout:
I am netbooting in BIOS mode using undionly.kkpxe. I will attempt to change to ipxe.efi tomorrow
Just saying doing this will confuse things. The bios boot loader will be used (undionly.kpxe), so SANBOOT will be tried and will fail because the disk structure is efi and there is no MBR to reference. undionly.kpxe is a bios based boot loader so it can’t shell out to refind either since refind is an efi boot loader. Which is right for the disk, but can’t be started from bios (or CSM). Now the problem bits are falling in line.
So a bit off topic issue, but if your dhcp server is Windows 2012 or newer are you using profiles to send the right boot file to the target computer or are you using a static dhcp option 67? If you have a Windows 2012 or newer dhcp server there is a wiki page that shows how to setup dhcp profiles: https://wiki.fogproject.org/wiki/index.php/BIOS_and_UEFI_Co-Existence#Using_Windows_Server_2012_.28R1_and_later.29_DHCP_Policy If you go this path, make sure you activate the profile within your scope.
-
@george1421 I did run across that wiki at one point. I am relatively sure our DHCP server is Windows Server 2019 at this point. Our whole organization has been moving away from 2012 for over a year now.
Since we use both types of disks, the DHCP profile sounds like the best way to go.
Just for clarification and my own curiosity, will this issue happen in reverse if I use ipxe.efi and try to sanboot to an MBR OS disk? I intend to test this either way for my own learning (as well as undionly.kkpxe with an MBR disk. Also, what is the ‘Exit’ boot option for if not to just fall back to the next boot option in BIOS?
-
Hi there
we’ve experienced similar issues. We updated the BIOS to the latest stable version - do version-by-version to avoid bricking the machine. Then:
- disable secure boot
- make sure that the boot order is set to PXE first (for obvious reasons)
- set the boot mode to UEFI boot as the partition is set to EFI mode - as seen in the disk management screenshot (partition 1)
- perhaps try to move your efi partition to the end of the disk - download gparted and make it a bootable flash/thumb drive and you will be able to move the efi partition. you’d want to see your disk looking something like this (attached
boot see what happens?.. ps it of course goes without saying that you should backup your image/disk before playing around with the partitions…
-
@jmvela2x said in Unable to boot to disk after PXE Menu timeout:
Just for clarification and my own curiosity, will this issue happen in reverse if I use ipxe.efi and try to sanboot to an MBR OS disk?
The short answer here I don’t know, but I suspect it won’t work. My hesitation is that actually SANBOOT is a built in function of iPXE. Where iPXE will shell out to refind or grub exit mode functions. They are not built into iPXE but external applications. For UEFI with an exit mode of grub it will fail since grub is a bios based app. I wouldn’t think that SANBOOT called from uefi would boot into a bios formatted disk, but I simply don’t know.
I intend to test this either way for my own learning (as well as undionly.kkpxe with an MBR disk. Also, what is the ‘Exit’ boot option for if not to just fall back to the next boot option in BIOS?
I will check to see what EXIT actually does in the iPXE menu. I’m not sure what it calls, but I can find out once I get into the office.
-
I moved to a Legacy image and SANBOOT exit is working with undionly.kpxe (I had previously misremembered that we were using undionlykkpxe).
I am waiting for a change request to be processed for the subnet scoping so I can test with ipxe.efi. Making progress at least.
-
@jmvela2x Likewise reFIND is working with ipxe.efi and a UEFI Win10 image. Continuing testing is ongoing, but I think I may be unblocked for the moment. Thanks for the help with the sanity check @george1421.
-
@jmvela2x Great! I’m glad you have it sorted out. FOG does work as advertised as long as you follow the rules. If you run into issues with refind, finding the EFI boot partition there are a few tweaks we can do to the refind.conf file, but mostly the default values work correctly.
-
Now that I have a greater understanding I think I can pose the correct question.
Our target host need to be able to switch between BIOS and EFI based operating systems on a regular basis. I get the use case for dynamic DHCP profiles, but it seems to me that works best when each host is either EFI or BIOS based.
Let’s say for example I have an EFI version of Windows 10 on a system and reFIND is working great with ipxe.efi. After some time testing the owner of this system wants to test on Windows Server 2016, but BIOS based. Same host, different exit type.
Is there a way to make this work? I was hoping that EXIT would be the right method and would rely on falling back to the next boot device (see: exit PXE bootloader and carry on in normal boot process order).
-
@jmvela2x said in Unable to boot to disk after PXE Menu timeout:
Let’s say for example I have an EFI version of Windows 10 on a system and reFIND is working great with ipxe.efi. After some time testing the owner of this system wants to test on Windows Server 2016, but BIOS based. Same host, different exit type.
I think you are over thinking this. How you described is how FOG works. Each host definition as well as the global definitions have 2 fields where you can set the exit types. One is for bios and one is for uefi. So lets say you have the global exit modes set as BIOS: SANBOOT and UEFI: rEFInd.
You can boot the target computer in bios mode and install a bios OS on the target computer. Every time you boot through iPXE menu, FOG will send iPXE the correct exit command [SANBOOT] (note I’m using exit as a function not the Exit method). On that same host if you switch the firmware mode to uefi and load a UEFI based OS and boot through iPXE FOG will set the exit command to [rEFInd]. You do not have to touch fog in between changing the firmware modes. You might have to touch the web ui to change the image association between bios and uefi, but you don’t need to touch the iPXE exit mode FOG will do that for you. Now if you set the exit mode in the host definition then those settings will override the global settings. That way if you have a unique host where the global settings will not work, you can change the exit modes on a host by host basis.
-
@george1421 SANBOOT does nothing using the ipxe.efi bootloader and a BIOS based OS. It defaults me right back to the menu with no action taken. Also, as far as I can tell, the exit mode is based on which bootloader I am using. If I set the exit types to reFIND (EFI) and SANBOOT (BIOS) and use the ipxe.efi bootloader then it always attempts to use reFIND. This works if my OS is EFI based and boots as intended. If I am using a BIOS based OS, reFIND comes up and leaves me at its own menu. Likewise if I set the EFI exit type to SANBOOT in this same use case, the exit only serves to reset the default timer and bring me back to the main FOG menu at boot.
I was only able to successfully move to booting from the existing OS drive from the menu while using a BIOS based OS with undionly.kpxe or an EFI based OS with ipxe.efi. While that’s progress, it’s not really what I was hoping for.
-
@jmvela2x Well this thread has been going on for 5 days now and I’m not sure I’ve done a good job explaining how FOG works.
With DHCP Profiles setup with the same computer.
BIOS Computer -> BIOS PXE Boot -> undionly.kpxe will be sent to target computer -> the global value of FOG Settings value contained in [BOOT EXIT TYPE] will be used -> SANBOOT for its Exit mode
UEFI Computer -> UEFI PXE Boot -> ipxe.efi will be sent to target computer -> the global value of FOG Settings value contained in [EFI BOOT EXIT TYPE] will be used -> REFIND_EFI for its Exit mode
This process works 99.9% of the time. The oneoffs that you might find would be UEFI based computers with quirky firmware or hardware.