Auto Deploy restarts PCs, but boots back into Windows
-
As @Sebastian-Roth stated; In order for FOG to perform tasks automatically, your machines MUST be set to PXE Boot First. This is how FOG works, and why FOG does not require a Sneaker-Style Medium (Such as the case with CD’s, DVD’s, or USB Drives.)
In order to UEFI PXE Boot, your DHCP must be setup to hand out the EFI binaries. We have a few provided such as snponly.efi, snp.efi, ipxe.efi, realtek.efi, and intel.efi. For most cases one or a couple of these will work. I would recommend using ipxe.efi to start with. UEFI is still relatively new and has not been standardized across the board, especially in the case of UEFI PXE Network Stack. So unfortunately there’s no “one ring to rule them all.”
Hopefully this can help, and we will try to provide help and assistance along the way.
-
@Tom-Elliott Thanks for the information. We can look into setting up our DHCP server to do that. Do you have any documentation in the wiki for this?
@Sebastian-Roth When I go back to the LAN center later today, I can send you more information on it, but essentially, we have tried every exit type with no luck.
Any form of GRUB results in the
starting c.main()
bug that I’ve commonly seen across this site (and not resolved).SANSBOOT and REFINEFI cause a single blinking cursor.
I was trying to see if I could add any sort of parameter to our default
fog.local
menu item, but I couldn’t find any information on it. -
@DarkSwordsman About DHCP PXE boot you want to read this: https://wiki.fogproject.org/wiki/index.php/BIOS_and_UEFI_Co-Existence
Sure some hardware just does not want to play with the exit types. But give it another try. Make sure you play with the UEFI exit types for UEFI systems.
Do you have one batch of identical client hardware or is it all different systems? Please tell us what exactly you have and there might be other users around using the same hardware and might know which setting works.
-
@Sebastian-Roth said in Auto Deploy restarts PCs, but boots back into Windows:
https://wiki.fogproject.org/wiki/index.php/BIOS_and_UEFI_Co-Existence
We have a whole batch of identical systems. I’ll have to check when I get there what motherboard it exactly is, but I’m pretty sure they are ASUS motherboards.
I should clarify that these PCs can still PXE boot normally with Legacy + UEFI mode enabled, it’s really just the exit type that is not working. Even if there is no exit type, it can reboot after it’s done, PXE boot, and still go to the menu if there is no task and select “Boot to disk” (
fog.local
) by default.If I can at least get the Exit type or, preferably,
fog.local
option working (so it doesn’t reimage every reboot), it would solve our issues. -
So I should clarify. These PCs can Legacy PXE boot just fine, and it works with FOG as expected when it boots (I.E: I can select “Deploy” from the menu and image it, as well as set a deploy or capture task and then it will automatically start imaging when I go and manually PXE boot). The real issue is that the FOG client isn’t booting into the hard disk when the default (
fog.local
) option is called. I haven’t been able to get it to work at all with any exit type, on both BIOS and UEFI options.Now also to clarify, when
Legacy + UEFI
is selected, the traditional PXE boot as well as the UEFI Windows Boot Manager are both available, so there theoretically should be nothing stopping FOG from seeing that, at least in my eyes.So is the issue then that the FOG client over the Legacy PXE boot is a different client that can only see Legacy boot devices (I.E: the HardDisk and not Windows Boot Manager)? Do you think that UEFI Network booting with those DHCP changes will allow the FOG client to see the disk for some reason?
I’ve dug all over the internet for FOG not booting into Windows and the best I could find were unresolved posts on this forum.
Also, here are the MoBo/BIOS specs for these PCs:
-
So I was able to start modifying the
refind_efi.conf
file. I tried the following settings:scan_delay 5 default_selection Windows scanfor internal,external,hdbios,biosexternal
I checked and Windows is on a GPT disk, not MBR.
The current issue is that, even with the
scan_delay 5
, it seems like it isn’t even doing anything. I don’t even think REFIND_EFI is even being loaded, even though I seerefind.efi
in thefog/service/ipxe
directory. -
@DarkSwordsman I would highly recommend leaving scan_delay at 0
-
@Tom-Elliott Okay.
I just tried booting into
http://10.1.0.50/fog/service/ipxe/refind.efi
from the ipxe CLI and it came to the same blinking cursor icon. This tells me that something is up with refind.efi itself, and that fog is likely actually respecting the exit type properly.I’ll do some digging, but is there anything you can suggest for this?
-
Can you show us what you mean by that exactly?
-
So upon further research, it seems it is picking up Windows and refind_efi is working as expected, kinda. Except, I think refind is seeing the disk that windows is on and not Windows Boot Manager itself.
@Tom-Elliott The blinking cursor is exactly as it seems, a blinking cursor in the top left of the screen, and that’s it.
It goes PXE boot > FOG Menu (selects default: Boot to Hard Disk
fog.local
) > screen turns black for a couple seconds > blinking cursor.The blinking cursor error usually occurs, IIRC from experience, when you try to legacy boot right into the disk that Windows 10 is on, and not going through Windows Boot Manager.
-
I tried to enable the graphics menu with
timeout 0
andtextonly 0
at least to just see if there is anything.Refind didn’t pop up with any menu at all.
-
So I’m kind of tired of this at the moment. I’m 90% certain it’s booting into Windows, but it’s not booting into it correctly.
I swear that in my previous IT experience, I have seen the blinking cursor issue, and it had to do with trying to legacy boot Windows instead of EFI booting through Windows Boot Manager.
If I set the boot device to
UEFI Hard Disk: Windows Boot Manager
it boots into Windows 10 fine, but REFIND_EFI and GRUB_FIRST_FOUND_WINDOWS both result in the blinking cursor, a common Windows issue with booting.It also feels like refind.efi is not picking up my changes in the configuration file at all.
-
Is there anything I can put into the
fog.local
parameters or Boot Options? Would there be a reason that refind.efi is not picking up myrefind.conf
file? -
Refind is definitely not picking up the config file. I restarted our VM twice and no luck.
Also, @Tom-Elliott your suggestion to
cp
the config file without any other parameters didn’t make much sense to me, but it apparently worked for another user. What am I missing from yourcp
suggestion on that thread?Edit: Thread for reference: https://forums.fogproject.org/topic/12356/refind-conf-doesn-t-appear-to-be-used/5
-
Currently trying to download a new version of refind, as suggested by someone on the internet somewhere.
I dunno, I’m tired and just want this to work. It’s ridiculous that it’s not working by now.
Edit: Ah, yes, it was on this site: https://forums.fogproject.org/topic/11993/refind-pxe-booting-issue
-
@DarkSwordsman said in Auto Deploy restarts PCs, but boots back into Windows:
I just tried booting into http://10.1.0.50/fog/service/ipxe/refind.efi from the ipxe CLI and it came to the same blinking cursor icon.
To me this sounds as if this particular machine / UEFI firmware is having an issue. I don’t think it even gets as far as loading any Windows components at all!! Have you updated the UEFI firmware to the very latest version?
Maybe try booting rEFInd from a USB key just to see if that ends up in the blinking cursor as well: Format a USB stick with FAT32, create directories
EFI\BOOT
, download the refind.efi binary from your FOG server, put onto the USB key asEFI\BOOT\BOOTX64.EFI
and add therefind.conf
(you were talking about refind_efi.conf file?!?). Now try booting from this USB key and see what you get.If that doesn’t work out you might want to try loading the 32 bit version of rEFInd (refind_ia32.efi) found in the official archive.
PS: There is no way around it. You need to stick to it and try different things to figure out why it is not working.
-
@DarkSwordsman And here is another idea. Possibly the
scan_for
option if causing the hang on blinking cursor. Not sure why but possibly it is. Maybe try setting this tomanual
only and add a menu section at the bottom of your config - see here:menuentry "windows" { volume 0: loader \EFI\Microsoft\Boot\bootmgfw.efi enabled }
Make sure you comment all the other pre-defined menu sections and set
default_selection 1
to choose this entry for you.In that same post it’s also mentioned that rEFInd 0.11.2 (current at that time) was not working on a specific HP workstation. Reverting back to verison 0.11.0 helped. Maybe another try. You see there are lots of options and sure one will get you beyond the blinking cursor.
-
Hey @Tom-Elliott @Sebastian-Roth I am back at the LAN center and was able to test with a new version of refind.efi from http://www.rodsbooks.com/refind/getting.html
I noticed there were two refind config files. One is refind.efi and the other is refind_linux.conf. I went into both of these and set one to 5 second timeout and the other to 10 seconds. It didn’t pick up either of these settings.
I want to understand, what do you mean by setting up the DHCP to hand out EFI binaries? I can boot into the FOG menu just fine and I can deploy images and what not. It’s just that when I select “Boot from Disk” in the FOG PXE menu, the default option, none of the bootloaders seem to work.
I can also confirm that it’s picking up the different boot loaders when I change them. Grub and Sansboot both come to the
error c.main()
issue or whatever, and Refind.efi comes to a blinking cursor.So, firstly, is there something I need to do to get refind.efi to see the config files in the first place? And secondly, what do I need to set, if any, in the config files to make it see the OS?
-
@DarkSwordsman said in Auto Deploy restarts PCs, but boots back into Windows:
One is refind.efi and the other is refind_linux.conf.
refind.efi should not be a config file. I guess you mean refind.conf here. Not sure where refind_linux.conf is coming from but that’s something we provide AFAIK! Please tell us where you got that from?!
So, firstly, is there something I need to do to get refind.efi to see the config files in the first place?
In the iPXE boot loader code generated by your FOG server the config file is being pushed to the client by name. So please open the following URL (http://x.x.x.x/fog/service/ipxe/boot.php?mac=xx:xx:xx:xx:xx:xx - use the actual FOG server IP and client MAC address instead of
x
’s!) in your browser and post the refind part of that here. Should look like this:imgfetch ${boot-url}/service/ipxe/refind.conf chain -ar ${boot-url}/service/ipxe/refind.efi
And secondly, what do I need to set, if any, in the config files to make it see the OS?
Probably best that you post the contents of your config files here as it seems they have been modified a fair bit. But feel free to take a look at the default content of refind.conf that we deliver here: https://github.com/FOGProject/fogproject/blob/master/packages/web/service/ipxe/refind.conf (latest release version 1.5.5)
-
@Sebastian-Roth Thanks for the reply. We have to figure out the user and password for the Ubuntu server so we can edit files, but this is what I found:
In boot.php, these are the lines you mentioned:
choose --default fog.local --timeout 3000 target && goto ${target} :fog.local imgfetch ${boot-url}/service/ipxe/refind.conf chain -ar ${boot-url}/service/ipxe/refind.efi || goto MENU
In our refind.conf, these are all the options (I excluded all white space):
timeout 5 textonly scanfor internal,manual uefi_deep_legacy_scan true scan_delay 2 default_selection Windows menuentry "Windows" { volume 0: ostype: "Windows" loader \EFI\Microsoft\Boot\bootmgfw.efi enabled }
I’ll play around a bit once we get the linux credentials back. Looking forward to your reply.