Auto Deploy restarts PCs, but boots back into Windows



  • Hi everyone,

    We recently opened a LAN center with about a hundred PCs. So far, fog has been great, especially for multi-casting.

    However, auto deploying from the web client hasn’t been working as expected.

    We have 96 computers in one group. I set the default image, and then go to deploy to the group. Once I deploy, the computers restart, as expected, but they boot back into Windows, and then periodically keep restarting until their task is done or cancelled.

    We were originally playing with the idea of keeping PXE boot on and using the exit type to boot into Windows, but no matter what I can’t get it to work on UEFI with Windows Boot Manager. These motherboards unfortunately only have “UEFI” or “LEGACY + UEFI”.

    I would like to be able to just image at the click of a button and have it done within 30 minutes (we seem to be able to image at 250 MB/s each, up to 10 at a time, and the rest queue automatically), especially since we are open for a majority of the day and we want to keep the experience consistent across users.

    Currently, with Gizmo running on the PCs to keep time for the players, Gizmo restarts the PC on logoff, and I have a script to delete the profile and remake it. This lets the games stay on there so they don’t have to be re-downloaded (even though we have Steam and Blizzard caches) but it clears and user data like Chrome or Steam sign ins.

    What can I try? Is there any more information I can provide to help?

    Thanks,
    Kyle


  • Developer

    @DarkSwordsman Normally if you schedule a task the boot code received by the client is different than on normal boots. So when you schedule the task and then open the link as mentioned before: 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 - you should see a very different output compared to when there is no task scheduled for this host.

    We have to figure out the user and password for the Ubuntu server

    https://askubuntu.com/questions/24006/how-do-i-reset-a-lost-administrative-password



  • @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.


  • Developer

    @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)



  • 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?


  • Developer

    @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 to manual 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.


  • Developer

    @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 as EFI\BOOT\BOOTX64.EFI and add the refind.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.



  • 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



  • 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 your cp suggestion on that thread?

    Edit: Thread for reference: https://forums.fogproject.org/topic/12356/refind-conf-doesn-t-appear-to-be-used/5



  • 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 my refind.conf file?

    alt text



  • 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.



  • I tried to enable the graphics menu with timeout 0 and textonly 0 at least to just see if there is anything.

    Refind didn’t pop up with any menu at all.



  • 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.


  • Senior Developer

    Can you show us what you mean by that exactly?



  • @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?


  • Senior Developer

    @DarkSwordsman I would highly recommend leaving scan_delay at 0



  • 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 see refind.efi in the fog/service/ipxe directory.



  • @Sebastian-Roth @Tom-Elliott

    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:

    pc specs



  • @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.


  • Developer

    @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.


Log in to reply
 

474
Online

5.7k
Users

12.9k
Topics

121.3k
Posts