Can't chainload past Fog menu (Boot hard drive) - HP zbook laptop
-
@szeraax said in Can’t chainload past Fog menu (Boot hard drive) - HP zbook laptop:
Just to clarify, you think that other people are booting NVMe drives via rEFInd in working without needing to do extra stuff? If so, i’d LOVE to see what their config for refind.conf is… (I’d rather avoid trying to use clover too).
From my point of view (not having tested this with several different ones myself but reading about this here and there) it all depends on NVMe drivers. Some drives seem to be kind of generic and just work with the usual rEFInd binary (updated in working branch) and other just don’t. Can’t tell you which do.
As I said, this is not tested. Just the impression I get.
-
@george1421 Regarding your statement about booting rEFInd into a command shell via USB, I think I can probably do that fairly easily. What commands would you want the output of to get a better idea?
Of course, the fact that fog can do single part, resizable imaging on this computer means that it must not be TOO crazy of hardware otherwise I wouldn’t be able to see the disk and such.
-
@szeraax said in Can’t chainload past Fog menu (Boot hard drive) - HP zbook laptop:
Of course, the fact that fog can do single part, resizable imaging on this computer means that it must not be TOO crazy of hardware otherwise I wouldn’t be able to see the disk and such.
No, you have to understand that those are two very different things although we packed those very closely together in the FOG project. One is the Linux Kernel and a stripped down basic Linux system doing the actual imaging work. Many drivers are part of the Kernel. Another component is iPXE that we use for booting and in some cases for exiting to boot to the local disk. In your case this does not seen to work so we have another ring in the chain called rEFInd which has to have it’s own drivers to be able to see and boot from your local disk.
-
@sebastian-roth @george1421 So if I put clover on a USB drive and boot it with the default config.plist, windows starts fine and seems to have no issues. It may just be that we need to transfer the config.plist with the efi file and that exit type would work great.
-
@szeraax ok, lets do a little digging here.
If you set the exit mode to refind in the webgui this is what it puts in the ipxe menu:
:fog.local imgfetch ${boot-url}/service/ipxe/refind.conf chain -ar ${boot-url}/service/ipxe/refind.efi || goto MENU
So in your case you swapped refind.efi for what ever the clover boot loader is. You can see that fog is also sending refind.conf.
Now as a test create a new fog menu, call it fog.clover with a title of Clover Exit or what ever.
Make the parameters look like this
imgfetch ${boot-url}/service/ipxe/config.plist chain -ar ${boot-url}/service/ipxe/clover.efi || goto MENU
rename clover.efi to what ever the right name is and make sure both files are in /var/www/html/fog/service/ipxe directory.
Lastly in the fog menu configuration make this menu show up for all hosts.Now pxe boot that host and from the ipxe menu pick the clover exit. The test is to see if we can create a menu entry to properly exit out of iPXE menu to boot.
-
@george1421 haha, I went grepping through /var/www/html and did this exact same thing via ssh before you posted. I made a new menu entry as a copy of $refind
file: /var/www/html/fog/lib/fog/bootmenu.class.php
'refind_efi' => $refind, 'clover_efi' => $clover,
and
$refind = sprintf( 'imgfetch ${boot-url}/service/ipxe/refind.conf%s' . 'chain -ar ${boot-url}/service/ipxe/refind.efi', "\n" ); $clover = sprintf( 'imgfetch ${boot-url}/service/ipxe/config.plist%s' . 'chain -ar ${boot-url}/service/ipxe/clover.efi', "\n" );
And edited /var/www/html/fog/lib/fog/service.class.php
'refind_efi', 'clover_efi',
From my test of this and via running the EFI shell manually, config.plist downloads fine. However, the clover boot menu looks totally different when booted from the USB, suggesting to me that when I exit to clover from fog, it is still not reading the config.plist file (which changes graphic modes and other settings that obviously work). imgstat looks good, etc.
I am going to try adding the exit type with a different name via the web UI as you suggest and report back.
-
@george1421 Looks like it still worked the exact same.
Clover menu looks the same as when I chain’d from fog. Still get kernel panic after about 1s on windows login screen. When I exit clover and return to efi shell, imgstat shows config.plist with the right number of bytes and default.ipxe at 452 bytes (script)
Going to try enabling some of the options from config.plist to see if I can avoid kernel panic. Also going to try removing extra things from USB to check if there are other external dependancies to just the clover.efi and config.plist.
I would think it best if we figure out how to get clover to read the config.plist, but I am unsure what the next steps to do that would be.
-
@george1421 Ok, I can remove all files from the USB drive except for these two files and have windows boot fine:
DriveRoot/EFI/BOOT/BOOTX64.efi
DriveRoot/EFI/CLOVER/CONFIG.plistIf I leave config.plist in that folder and rename it to new.plist, when I boot to USB, that config file is NOT found. Does this suggest that clover has a hardcoded path it looks for a config under? Maybe we can pass it an argument that tells it where its config is at.
Current things I want to check out:
-Run same settings as what config.plist sets and see if it’ll chainload to windows fine from fog
-Find out if I can pass arguments or get the clover.efi to find the config file that is present -
@george1421 @Sebastian-Roth Ok, now that just not fair!!!
If I ONLY have DriveRoot/EFI/BOOT/BOOTX64.efi on the USB drive and boot it with the default options, it works fine. Default options means that I am not doing any ACPI DSDT flag setting, no CPU flag setting, etc. I copied that same .efi file onto fog! So all that stuff that config.plist was supposedly fixing is now out the window since the USB just works regardless of the configuration set.
So that totally chops up both of the things I was going to investigate next. Thoughts?
-
@Szeraax Any news on this?
-
@sebastian-roth No.
My current situation is that no matter what I do when booting off USB, it boots windows fine and no kernel panic (freeze .5s after logon screen appears). And no matter what I do when booting from pxe (Fog -> Clover), windows 10 still freezes .5s after logon screen appears.
I have no idea what the cause is.
-
If you have any ideas for me to try, I do still have the hardware and can test.
-
@szeraax said in Can’t chainload past Fog menu (Boot hard drive) - HP zbook laptop:
My current situation is that no matter what I do when booting off USB, it boots windows fine and no kernel panic (freeze .5s after logon screen appears). And no matter what I do when booting from pxe (Fog -> Clover), windows 10 still freezes .5s after logon screen appears.
Just so I get this right?! If you boot straight from hard disk everything is perfectly fine. But if you boot from USB or PXE windows freezes soon after logon?
-
@sebastian-roth Nope!
If I put Clover on USB, I can chain to windows just fine.
Loading Clover via Fog causes windows to freeze on login screen.
-
Additionally, I’ve tried MANY different configurations (no options file, manually set options, use options file (can’t get Fog to load the options file)) and EVERY TIME, it has been consistant that boot from USB -> CLover -> WIndows and no panic. Boot from fog -> Clover -> Windows PANIC!.
-
@Szeraax Ah, now I get what you mean. What you wrote sounded a bit different to me.
https://www.reddit.com/r/hackintosh/comments/3t71yp/clover_freezes_if_usb_30_ports_used/ - is the USB still connected when you try PXE booting?
-
@Szeraax Maybe it’s worth/easier to get on contact with the clover people: https://sourceforge.net/p/cloverefiboot/discussion/ and http://www.insanelymac.com/forum/forum/327-clover/ (both seem active)
-
@sebastian-roth Don’t believe so, but I’ll try again to double check. I’ll check in with them. Great idea. Dunno if any of them will know the differences between booting off USB and booting off PXE. Here’s to hoping!
-
@sebastian-roth Well, I suppose that we can mark this solved at this point.
Not because it is solved, but because I will just have to wait for a magical time in the future when FOG has support for booting NVMe hard drives decently.
As a follow up from your last comment, with my test hardware (we had to get a new demo computer), clover boots to windows fine without any configuration at all. No panic/freezing. Weird I know. This is the exact same zbook model, just with different ram/hdd configuration. Also, I still cannot get the clover settings file to get loaded, so I am unable to customize the clover menu. Since by default clover lists your boot options and doesn’t have a autoboot timeout, using clover at default settings means that I would have to hit enter on each physical machine each time I boot it.
My solution for now is to make the bios boot to HDD instead of network and then configure the option “WOL boot to network” in order to be deploying.
Thanks again for all your help, and @george1421 too! Y’all are great.
-
@szeraax Thanks for the update. It’s definitely an issue that we will be seeing more and more in the next month.
Not because it is solved, but because I will just have to wait for a magical time in the future when FOG has support for booting NVMe hard drives decently.
Unfortunately those things rarely solve themselves magically. People have to work on it. In this case having the hardware at hand seems to be very crucial as your findings reveal (same zbook model showing different behavior). By the way, have you checked firmware versions?
So what I am trying to say is that it might need your work on testing these things on your devices to hopefully figure things out. But on the other hand I do understand that you/we don’t have the time and expertise to dig through this.Maybe try going back to using rEFInd plus adding the clover NVMe driver? As I understand it you should be able to add that driver by simply creating a directory
drivers_x64
(EFI/boot/drivers_x64
) and putting that clover driver EFI file there. rEFInd should scan that directory and load the driver.Not sure if we’d mark this solved.