SOLVED UEFI machine are always seen as BIOS machines causing boot issue

  • Hello, I’m using Fog for managing some labs in my school.
    I’ve a Linux DHCP and I make the setup for UEFI and BIOS.
    The problems comes with win 10, capture and deploy are fine but if I leave pxe before windows boot manager in the boot sequence on the machines, windows just doesn’t boot.
    I’ve read a lot of thread in this forum and I tried all kind of solution without solve my problem so I dig in my situation.
    I’ve used 3 kind of machines Fujitsu P2540, Fujitsu P400, and Yashi AIO. ANY of these machines with ANY combination of boot option (Legacy first, Uefi First, CSM and so on) are always seen by DHCP as Legacy. How can I say?

    class "UEFI-64-3" {
                    match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00009";
                    filename "undionly.gino";
    class "Legacy" {
                    match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00000";
                    filename "ipxe.kpxe";

    Every entry but Legacy has a wrong filename, I’ve double checked and I can say that I was not able to do anything about it, all machines are seen as Legacy.
    Then I’ve looked on FOG configuration tweaking EXIT mode.
    As expected ANY type of machine with ANY type of setup settings are seen as BIOS …
    How can I say? As before I tried all kind of combination but as I modify BIOS EXIT MODE, I see difference in boot behaviour, if I modify EFI Exit mode my behaviour doesn’t change.
    Solution by now was installing windows 10 in legacy mode on MBR partition so with BIOS EXIT = SANBOOT all was working.
    newer machines as YASHI AIO doesn’t have any option for legacy boot o CSM so is not possible to install windows that way.
    So I need to solve my UEFI problems.
    Has anyone some good ideas?

    Thank’s Marco Moraschi
    (as you can see I’m not english, so please be kind for my writing)

  • @Quazz I know that I can capture and deploy UEFI images in Legacy mode, but I have to go in front of the PC turn it on, go in setup page, set network boot, then deploy, then go again in setup page, set windows boot manager … and do it 300 times.
    So at the moment I’ve made a Legacy installation image, and I leave all pc in network boot, so when I want to deploy I just select the group and fire a multicast deploy.
    I’m working on YASHI for booting in legacy mode I’ve ask to their support.

  • Moderator

    @ITSLUIGICASALE It’s worth noting that you can capture/deploy UEFI images from a legacy network stack.

    So you can put the computers in UEFI, install windows, etc and then capture the image.

    Or if you already have an image, you can boot into legacy network, deploy the image and then switch to UEFI.

  • @george1421 Here we are, soon than I thought.
    I’ve read the tutorial and I open pcap with wireshark … and the winner is …
    Hey I’m a OLD Legacy type 0000
    It’s an HP-8300 AIO.
    As Quazz said, I need to find a way for UEFI LAN BOOT, maybe in this machine I can find the option because it’s not so old, but I’m afraid that in the others machines no uefi lan boot is possible.
    Not so bad, I just install windows 10 in Legacy mode on MBR partition style.
    It’s wrong? it’s unsafe?

  • @Quazz, you said something close to my situation.
    There’s only a little difference … not “some” machine … ALL my machine haven’t uefi network boot on none of them, if I set UEFI only or something similar, simply I don’t have any LAN option in boot sequence.
    I thougth that it may be the problem but I also assumed … in 2018 with UEFI everywhere how is possible that PXE is possible only in Legacy mode!!!
    It’s a nonsense … but it seems to be the reality.
    In that case … what can I do? is possible to do a legacy network boot and then a uefi boot?

  • Moderator

    Some machines need UEFI network booting to be explicitily enabled.

    If your boot options are set to “UEFI first” but there isn’t a UEFI network boot option, then it will logically just try to boot legacy network instead.

  • @george1421 Thank’s for your answer, I think you catch the problem … is number 1, I have to see how my machine say “hey” to DHCP but I hadn’t no idea on how to do it, now I’ll take a look on the tutorial you linked.
    I have no much time to spend now on this topic because I have to deploy 300 machines in few days so probably I’ll not answer soon, but for sure I’m not forgetting.
    Thank’s again.
    Marco Moraschi

  • Moderator

    OK lets start out by fixing your dhcp server back to a know and working configuration. The example of the dhcp server settings you show me look like it comes from the FOG dhcp server settings. Please fix your settings to this example:

    OK from your post I think you might have 2 problems.

    1. Getting the target computer to boot into the FOG iPXE menu.
    2. Maybe when exiting the FOG iPXE menu to boot into the target computer’s OS.

    So lets look at problem #1. I can tell you when a target computer PXE boots, the very first network packet it sends is a dhcp DISCOVER packet. That network packet tells the DHCP server what kind of device it is. So what we want to do is capture that communications between the pxe booting client and the dhcp server.

    So we can use the FOG server to capture this pxe booting process. Please follow the instructions here in this tutorial:

    You can look at the pcap with wireshark or post the pcap to a file share site (like google drive or something else) and post the link here and I will look at it.

    If you want to look at the pcap with wireshark, open the file with wireshark. In the top box select the dhcp DISCOVER packet. Then in the middle box expand the packet data and look at dhcp option 93. That dhcp option is the pxe computer telling the world, “hey I’m a uefi type 0009” That information is how the dhcp server knows what boot file to send back. Lets find out what the pxe computer is telling the network.