Cannot exit IPXE menu and boot from hard drive?
-
@george1421
Thank you for the reply!I will make those changes and give it a test first thing in the morning. I also found “Boot Exit Type” settings under Fog Settings > Fog Boot Settings, should these be configured the same?
The target systems are UEFI, right now I am just trying to boot a completely stock ubuntu server image to try and get familiar with fog.
-
This morning I was able to test those settings (I tested with these settings on the host specifically and just as global settings) however I am still not able to boot.
When the fog menu exits and attempts to boot from the hard drive it hangs with a blinking cursor in the top left corner. If I change boot priorities the host image boots as expected. Any other settings I could be missing or information I can provide?
-
@wmw509 So this is a uefi based system then? If so what model computer?
-
I would try switching the refind binary to version 0.11.0.
I just posted how to do this in this forum post https://forums.fogproject.org/topic/14850/refind-not-working-properly
I would then use the default efi
REFIND_EFI
exit type and it will likely do the trick.Hope that helps.
-
I believe it is a UEFI system, I checked from the OS when I booted into linux. Its just a spare desktop I had laying around. Specs below, Let me know if there is any other info I can provide.
ASRock H110 Motherboard with and Intel 1151 socket CPU with 8gb DDR4
-
@wmw509 Sorry to keep laboring the point but knowing what mode is helpful for debugging.
If you have one of these systems booted into linux a quick check is this.
ls -la /sys/firmware/efi
if that file exists then its uefi boot.And your target OS is ubuntu 20.04?
-
@george1421 In the refind.conf (/var/www/html/fog/service/ipxe/refind.conf) There is settings
scanfor internal,external,optical,manual
make sure that is set.You might want to see if uncommenting helps
uefi_deep_legacy_scan
We have also seen some disks need a little settling time so setting
scan_delay 5
may help.I may spin up a efi ubuntu system to see if I can get it to detect at leas on a VM. Ubuntu 20.04 may do things a new way.
Also surely try @JJ-Fullmer suggestion too by rolling refind back to 0.11.0 that has also helped with some mobos. I would recommend that you don’t try everything all at once
-
No worries, its understandable. The target host is ubuntu server 18.04.5 and below is the output showing the existence of the /sys/fimware/efi directory.
ls -la /sys/firmware
total 0
drwxr-xr-x 6 root root 0 Oct 21 17:07 .
dr-xr-xr-x 13 root root 0 Oct 21 17:06 …
drwxr-xr-x 6 root root 0 Oct 21 17:06 acpi
drwxr-xr-x 3 root root 0 Oct 21 17:07 dmi
drwxr-xr-x 6 root root 0 Oct 21 17:06 efi
drwxr-xr-x 23 root root 0 Oct 21 17:07 memmap -
Same results after making those config changes. I think I might try @JJ-Fullmer suggestions.
I know this is more or less unrelated to Fog, but are you familiar with changing the refind binaries? When I download/decompress the image he suggests I do not see any filenames matching the ones in the /fog/service/ipxe/ directory. Am I just supposed to rename these files as they are in fog?
This is what I get after unpacking refind
bootaa64.efi bootia32.efi bootx64.efi refind.conf -
@wmw509 said in Cannot exit IPXE menu and boot from hard drive?:
bootx64.efi
This should be renamed to match what FOG is using the same for the 32 bit version. You can discard the bootaa version since that is for ARM processors.
I just pxe booted into ubuntu 20.04 on a uefi VM. refind found grub64.efi and booted that. So the issue might be hardware related. Describe the number of disks and their structure on this mobo? Are they sata or nvme? Do you have 2 NVMe drives installed?
-
This host just has a single 60gb SATA drive. Here’s how the partitions look…
Device Start End Sectors Size Type
/dev/sda1 2048 1050623 1048576 512M EFI System
/dev/sda2 1050624 3151359 2100736 1G Linux filesystem
/dev/sda3 3151360 117231103 114079744 54.4G Linux filesystem -
Thanks for your reply, that post looks very similar to my issue. I am attempting to get those binaries right now but am a little confused about what files are needed specifically. The binaries in the /fog/service/ipxe directory are…
refind_aa64.efi
refind.efi
refind_ia32.efi
refind_x64.efiThe files I found after decompressing the files from sourceforge are below…
refind_x64.efi
refind_ia32.efi
refind_aa64.efiI do not see a refind.efi file in any of the sourceforge downloads. Is this file needed/used by fog? If so, any ideas where it is?
-
@wmw509 The
refind.efi
file is an older version (0.9.4). Tom added this a while ago as this seemed to be kind of a stable version. I have to say that I am not sure this one really is version 0.9.4 or perhaps a different one. You’d use that one by renaming the file. FOG servesrefind_x64.efi
to 64 bit architecture andrefind_ia32.efi
for 32 bit.Unfortunately there does not seem to be a general solution to this. People report that version xxx of rEFInd doesn’t work with their hardware while others have no problems and vice versa. So trying to provide binaries that suit every case is probably not possible. You can download older versions and try out which one works best for you.
-
Aha, that makes sense, thank you.
I have noticed some other potentially weird behavior in my attempts at getting this working. When I have been testing my Boot Exit Settings I have been testing each available selection for both EFI and non-EFI exit methods. I have gotten a few different results as I have done this, but it seems that Fog might be trying to use my non-EFI exit method even though I am definitely on a UEFI system.
If I leave the non-efi boot exit setting as SANBOOT for example, no matter what my efi boot exit setting are the host will always end up hanging with a blinking cursor in the top corner. Is it possible Fog (or my settings of Fog/the host) are causing some confusion as to what method to use?
-
@wmw509 said in Cannot exit IPXE menu and boot from hard drive?:
If I leave the non-efi boot exit setting as SANBOOT for example, no matter what my efi boot exit setting are the host will always end up hanging with a blinking cursor in the top corner. Is it possible Fog (or my settings of Fog/the host) are causing some confusion as to what method to use?
That’s interesting. We rely on iPXE determining the correct mode be it UEFI or legacy BIOS and query its
platform
config parameter.To check which platform it sees on your systems you could quickly edit
/tftpboot/default.ipxe
and make the script look like this:#!ipxe show platform
Make a backup copy of the original file so you can switch forth and back quickly.
-
Once the changes were made in that script the host booted (unsuccessfully of course) but it displayed the following.
builtin/platform:string = pcbios
This is a bit above my head so forgive me if this is a stupid question, but if I expect to use Fog with only UEFI systems could I hardcode this somehow? Any other ideas?
-
@Sebastian-Roth I did not know that
refind.efi
was an older version and refind_x64.efi was a newer one. That’s a nice touch if it’s still true.
Also @wmw509 sorry for not double checking my guide, I forgot that you had to rename the files after extracting, I have a script that manages restoring my refind binary and config on every update so I haven’t had to extract and look at the file names in quite some time. -
No worries! The files were actually names the same as they are in Fog in one of the packages I installed. It was just that refind.efi that threw me for a bit of a loop.
Seems like refind might not be what was causing me problems after all
-
@wmw509 said in Cannot exit IPXE menu and boot from hard drive?:
Seems like refind might not be what was causing me problems after all
As long as the platform == pcbios then is working on the bios side, but that doesn’t follow through with what you reported from inside ubuntu. Are you working with multiple hardware? OR is iPXE misreporting the platform?
OK I’m trying to think how this is possible (ipxe reporting pcbios and ubuntu reporting efi). I think I might have an idea.
There are some firmware that are dynamic depending on the boot media they will dynamically switch between bios and uefi mode depending on what they detect. If the boot media is bios based then they will switch into bios mode, if the firmware detects a efi boot media they will switch into uefi mode. There is no firmware switch its all dynamic.
So lets assume you are pxe booting this computer and you send unidonly.kpxe to this computer. This computer will see, oh that’s a bios boot loader and boot it in bios mode. FOG Imaging will work just fine in bios mode and you can deploy a uefi image with FOG Imaging in bios mode. Then after the imaging reboot, again you send undionly.kpxe to the target computer. Again it sees that is a bios boot loader so it switches to bios mode. So now you are in the iPXE menu and the menu times out to boot to the disk, but SANBOOT hangs because its trying to chain to a bios mode disk, but the disk contains a uefi boot loader. When you change the boot order so the disk is first in the order, the firmware looks to see the disk is a uefi disk and switches to uefi mode and boots from the hard drive.
I think this is how iPXE (undionly.kpxe) is reporting pcbios yet the actual OS is uefi. There is a lot of suppositions here, but it make a logical connection.
So what specifically do you have configured for dhcp option 67?
-
@george1421 said in Cannot exit IPXE menu and boot from hard drive?:
@wmw509 said in Cannot exit IPXE menu and boot from hard drive?:
Seems like refind might not be what was causing me problems after all
As long as the platform == pcbios then is working on the bios side, but that doesn’t follow through with what you reported from inside ubuntu. Are you working with multiple hardware? OR is iPXE misreporting the platform?
I could be wrong, but I believe iPXE is misreporting the platform. For these tests today I did a fresh new Ubuntu 18.04 install on the host, so no hardware has been changed and it appears to be efi according to ubuntu.
OK I’m trying to think how this is possible (ipxe reporting pcbios and ubuntu reporting efi). I think I might have an idea.
There are some firmware that are dynamic depending on the boot media they will dynamically switch between bios and uefi mode depending on what they detect. If the boot media is bios based then they will switch into bios mode, if the firmware detects a efi boot media they will switch into uefi mode. There is no firmware switch its all dynamic.
I kind of follow you on this, but am a little confused. I was under the impression that most major linux distribution installers were the dynamic part and would detect what the host system supported and use that method to install?
So lets assume you are pxe booting this computer and you send unidonly.kpxe to this computer. This computer will see, oh that’s a bios boot loader and boot it in bios mode. FOG Imaging will work just fine in bios mode and you can deploy a uefi image with FOG Imaging in bios mode. Then after the imaging reboot, again you send undionly.kpxe to the target computer. Again it sees that is a bios boot loader so it switches to bios mode. So now you are in the iPXE menu and the menu times out to boot to the disk, but SANBOOT hangs because its trying to chain to a bios mode disk, but the disk contains a uefi boot loader. When you change the boot order so the disk is first in the order, the firmware looks to see the disk is a uefi disk and switches to uefi mode and boots from the hard drive.
This certainly sounds like the behavior I am getting!
I think this is how iPXE (undionly.kpxe) is reporting pcbios yet the actual OS is uefi. There is a lot of suppositions here, but it make a logical connection.
So what specifically do you have configured for dhcp option 67?
I am using pfSense for the DHCP server and option 67 is set to unidonly.kpxe.