Cannot exit IPXE menu and boot from hard drive?
-
Hello all,
I installed FOG for the first time today (Fog version 1.5.9 running on ubuntu 18.04 server) and have been playing around with it a bit. I have been able to add hosts, pull images, and write images. However I cannot get a host to boot into any of these images. The images DO boot if I change by boot priority in the bios. Currently I am just trying to backup/deploy/boot into a completely stock Ubuntu server install, so I believe the problem does not lie with my image.
From doing some research/reading it seems like this can be related to the “Host BIOS/EFI Exit Type” or “Exit to Hard Drive”. I found these settings globally and for the specific host, and have attempted each option for BIOS and EFI (even though this is definitely an EFI host). Depending on the option selected I either get a blinking cursor in the top of the screen, or a message across the screen saying…
launching grub
begin pxe scan
start cmain()Is there some other setting I am missing? Has anyone else run into this problem?
-
There are two exit modes one for bios and one for uefi. Make sure you set the global settings to SANBOOT for bios and rEFInd for efi.
Now for bios SANBOOT works 99% of the time. For UEFI refind works (out of the box) about 90% of the time. Refind does a pretty good job of finding the EFI boot partition. You many need to tweak the refind.conf settings to have it search more locations.
So are these target system, uefi? What target OS are you trying to boot?
-
@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