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



  • @Sebastian-Roth It appears the UEFI Network boot selection is not available. Only the PXE option from Legacy works.

    Amidst me trying to load different pxe binaries onto the server, I rm -rf /*'ed in root, so I destroyed the server by accident. Just made a new one and thankfully I have a PC with the existing image in tact with no modifications.

    Is there a more in-depth guide to setting iPXE binaries? I was messing around with custom fog.local parameters using all sorts of iPXE commands I found on their site. It’s definitely getting the changes, but I can’t tell if it can’t load the bootloaders or if it the bootloaders can’t find windows.


  • Developer

    @DarkSwordsman said in Auto Deploy restarts PCs, but boots back into Windows:

    UEFI: All of the options lead to blinking cursor.

    Have you actually switched to UEFI on the client’s firmware settings when trying those?



  • So it appears the following happens:

    BIOS types:

    • select… - : blinking cursor
      SANBOOT : blinking cursor
      GRUB : starting c.main()…
      GRUB_FIRST_HDD: starting c.main()…
      GRUB_FIRST_FOUND_WINDOWS: goes to grub> cli
      REFIND: blinking cursor.

    Running “geometry (hd0)” when GRUB_FIRST_FOUND_WINDOWS shows the cli gives me:
    " drive 0x80(LBA): C/H/S=1023/255/63, Sector Count/Size=16434495/512
    Partition num: 0, Filesystem type unknown, partition type 0xEE"

    UEFI: All of the options lead to blinking cursor.



  • Hey Guys,

    So I was able to experiment a little bit and I realized that, by default, it’s booting using the BIOS option, and not UEFI. I had GRUB_FIRST_HDD set for BIOS and REFIND_EFI set for UEFI, and it used GRUB.

    I don’t know if that helps us identify an issue. Also, I am into computers and programming, but this whole DHCP thing and handing out efi binaries just goes over my head. Are there any guides, start to finish, on the process? I tried following the one on your wiki but I just don’t get it.


  • 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


Log in to reply
 

351
Online

6.2k
Users

13.6k
Topics

128.1k
Posts