PXE boot menu order



  • Re: Change menu boot order

    I thought I had seen some options in the current version (1.5.5) to reorder the menu, but I’m not finding them. I found the thread above from about a year ago, with the suggestion that it’s not worth time/effort to implement, and explaining the difficulty when determining whether a host is registered or not, etc.

    My ideal would be that first boot into FOG’s PXE menu would default to full host registration. Once registered, the next time it could default to booting to the drive (which is fine, since tasks preclude the menu, so if you requested an image deployment during registration, that would proceed).

    Another idea I would like to see if possible is to update the BIOS/UEFI boot order when finished. That way, I could receive a new computer, set LAN as the first boot item, then restart. Type in my registration info, request deployment, and restart. Image the computer, restart, update the BIOS/UEFI. Connect to AD, run Snapins, restart as needed, finish.



  • They do occasionally have different or old BIOS versions, which I update after Windows is finished loading. But they all have the same settings.


  • Developer

    @ckasdf said in PXE boot menu order:

    t does seem to be somewhat inconsistent in terms of one working fine while several others experience the described issue.

    To me this sounds like the machines have different UEFI firmware versions and/or firmware settings!



  • Of course. The model I’ve primarily seen issues with is the Lenovo Thinkcentre M93p. It does seem to be somewhat inconsistent in terms of one working fine while several others experience the described issue. I just tried on a Thinkpad T450 and it worked just fine, though I had one that experienced the issue before.

    I have developed UEFI-based Windows images, so I set the computers either to UEFI-only or UEFI-first. I have been preferring the latter in case there’s any weird things we might want to do with Legacy support, but I’m wondering if that may have some negative effect. Your broaching of this subject has me thinking, and I think the next batch of M93p’s I build, I’ll set them to UEFI-only to see if that has any different reaction.

    This issue isn’t a terrible, terrible thing for my workflow, but it does disrupt it to a small degree. The issue could technically be fixed if I change the “Error” boot sequence to put the drive before the network. What happens is i switch away on the KVM, the computer detects that a keyboard isn’t connected, and it boots to the network. Long term, I like the idea of keeping this setting, as it will help with future automation plans.


  • Developer

    @ckasdf Maybe start by telling is more about the machine you see the problem with. Is this happening on just one single model? Please post the exact make and model here and possibly someone else hast the same around and can give us a hint.

    As well, is this machine set to legacy BIOS, UEFI or CSM? Have you tried playing with those? If you still use legacy or CSM I highly recommend to move towards proper UEFI.

    Beside that I can imagine that some machines firmware just doesn’t properly do the chainload from iPXE back to the disk with the methods we have in FOG right now. There is a chance that using custom methods (like GRUB2 native UEFI build or a modified refind.conf) will work. But for that we need to know exactly what settings you have (UEFI/legacy BIOS) and the errors you see with the different exit types.



  • @Sebastian-Roth It’s been a hot minute, but I finally had some time to test this today. I went through the entire list of Host Exit Types from SANBOOT through EXIT and none of them worked for the desktops. Different options reacted differently (one of them put it into a boot loop), but none of them allowed the computer to proceed to Windows upon allowing the PXE menu to auto-select “Boot from hard drive.”

    Any other options or things I can try?



  • Thanks for the reply, and no worries about losing track. You’re doing great work, and I appreciate you supporting the community. :)

    I’ll try out some different options and see if I can get one to work better, and let you know if I need any more help on this one.

    I posted another question in which @fry_p mentioned your name to see if you’d have any thoughts there. If you have some time, maybe you can help determine what’s up there too. :)


  • Developer

    @ckasdf Ohhh no, I had lost track of this topic again. Sorry for the late reply!

    Now that you posted the iPXE boot menu output I kind of understand what’s going on here. The boot exit type is set to “sanboot” and for some reason it seems like this machine you are trying this on is not able to use that exit type. You can change this setting either “per host” (host settings -> Host Bios Exit Type and Host EFI Exit Type) or globally (FOG Configuration -> FOG Settings -> FOG Boot Settings -> BOOT EXIT TYPE (for legacy BIOS machines) and EFI BOOT EXIT TYPE (for UEFI machines).

    Probably start by changing this in the host settings to see what works for this kind of machine.



  • Any thoughts based on the results of the page you asked for?



  • Hey Sebastian, thanks for the response. Some external vendors nuked our network over the weekend while performing some kind of maintenance in the data center, so I’m without access to the FOG server until the pieces can be mended. I’ll get back to you with the info once I can. They worked through the night and the network is 98% functional! Here’s what you asked for:

    #!ipxe
    set fog-ip 172.17.207.144
    set fog-webroot fog
    set boot-url http://${fog-ip}/${fog-webroot}
    cpuid --ext 29 && set arch x86_64 || set arch i386
    goto get_console
    :console_set
    colour --rgb 0x00567a 1 ||
    colour --rgb 0x00567a 2 ||
    colour --rgb 0x00567a 4 ||
    cpair --foreground 7 --background 2 2 ||
    goto MENU
    :alt_console
    cpair --background 0 1 ||
    cpair --background 1 2 ||
    goto MENU
    :get_console
    console --picture http://172.17.207.144/fog/service/ipxe/bg.png --left 100 --right 80 && goto console_set || goto alt_console
    :MENU
    menu
    colour --rgb 0x00567a 0 ||
    cpair --foreground 1 1 ||
    cpair --foreground 0 3 ||
    cpair --foreground 4 4 ||
    item --gap Host is registered as LNPC08CU55!
    item --gap -- -------------------------------------
    item fog.local Boot from hard disk
    item fog.memtest Run Memtest86+
    item fog.keyreg Update Product Key
    item fog.deployimage Deploy Image
    item fog.multijoin Join Multicast Session
    item fog.quickdel Quick Host Deletion
    item fog.sysinfo Client System Information (Compatibility)
    choose --default fog.reginput --timeout 3000 target && goto ${target}
    :fog.local
    sanboot --no-describe --drive 0x80 || goto MENU
    :fog.memtest
    kernel memdisk initrd=memtest.bin iso raw
    initrd memtest.bin
    boot || goto MENU
    :fog.keyreg
    login
    params
    param mac0 ${net0/mac}
    param arch ${arch}
    param username ${username}
    param password ${password}
    param keyreg 1
    isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme
    isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme
    param sysuuid ${uuid}
    :fog.deployimage
    login
    params
    param mac0 ${net0/mac}
    param arch ${arch}
    param username ${username}
    param password ${password}
    param qihost 1
    isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme
    isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme
    param sysuuid ${uuid}
    :fog.multijoin
    login
    params
    param mac0 ${net0/mac}
    param arch ${arch}
    param username ${username}
    param password ${password}
    param sessionJoin 1
    isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme
    isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme
    param sysuuid ${uuid}
    :fog.quickdel
    login
    params
    param mac0 ${net0/mac}
    param arch ${arch}
    param username ${username}
    param password ${password}
    param delhost 1
    isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme
    isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme
    param sysuuid ${uuid}
    :fog.sysinfo
    kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=http://172.17.207.144/fog/ consoleblank=0 rootfstype=ext4 storage=172.17.207.144:/images/ storageip=172.17.207.144 loglevel=4 mode=sysinfo
    imgfetch init_32.xz
    boot || goto MENU
    :bootme
    chain -ar http://172.17.207.144/fog/service/ipxe/boot.php##params ||
    goto MENU
    autoboot
    

  • Developer

    @ckasdf Please open the following URL in your browser and you should get some text code back. Please copy & paste all that text in the forums here.

    http://172.17.207.144/fog/service/ipxe/boot.php?mac=50:7b:9d:43:e0:25



  • @Sebastian-Roth I was able to capture it on video finally. :)

    Video of the issue


  • Developer

    @ckasdf Please send us a picture of that or even better a video!



  • One other question along this line of discussion: I’ve noticed when I choose “Boot from hard disk” in the FOG PXE menu, it goes to a black background, white text, with items that look similar to the regular menu, and a countdown timer that keeps looping 3,2,1,3,2,1… without actually booting to the drive. I can get a picture later, but have you seen that / know what the issue is?

    Bump.



  • Flash BIOS/firmware or change boot order?

    I want to change boot order, but I understand it would be vendor specific. I brought it up, as I remember reading a thread where the BIOS was changing after deployment, and it was an undesired action for them, but in my situation, I’d want it to change. I’ll set that aside for now, though.

    … fog.reginput and check Default Item there. …

    Hey, this worked, thanks!

    One other question along this line of discussion: I’ve noticed when I choose “Boot from hard disk” in the FOG PXE menu, it goes to a black background, white text, with items that look similar to the regular menu, and a countdown timer that keeps looping 3,2,1,3,2,1… without actually booting to the drive. I can get a picture later, but have you seen that / know what the issue is?


  • Developer

    @ckasdf said in PXE boot menu order:

    update the BIOS/UEFI

    What exactly do you mean by that? Flash BIOS/firmware or change boot order? Both things cannot be handled in general code for all hardware vendors so you’d have to implement that for your specific hardware.

    My ideal would be that first boot into FOG’s PXE menu would default to full host registration

    Go to the web UI -> FOG Configuration -> iPXE Menu Item Settings -> fog.reginput and check Default Item there. Unknown hosts will boot into registration as default then.


Log in to reply
 

374
Online

6.2k
Users

13.5k
Topics

127.5k
Posts