USB Boot UEFI client into FOG menu (easy way)


  • Moderator

    You may has why do we need this?

    UEFI PXE booting is a bit different than BIOS based PXE booting. Some of the early UEFI systems like the Dell Latitude e6420 and the OptiPlex 790 do not support PXE booting in UEFI mode. But through testing they do support USB booting in PXE mode. So knowing this I’m going to set out a simple solution to PXE boot these devices in UEFI mode. I can say for sure this method works with the previous mentioned systems. YMMV with other hardware platforms.

    The process steps are not hard at all (actually even easier than USB BIOS PXE booting). You will need to acquire these things.

    1. A 2GB (min) flash drive
    2. A UEFI pxe boot image from a functioning FOG server.

    Boot image creation process

    1. Insert your flash drive into a Windows based computer and format it with FAT32 disk format
    2. On that flash drive create a folder called EFI
    3. On that same flash drive create a folder called BOOT in the EFI folder creating this path “x:\EFI\BOOT”. Note: I have not tested if case is important or not, I used upper case for everything and it worked. That is as far as I tested.
    4. From a functioning FOG server copy /tftpboot/ipxe.efi to your windows computers. (pscp from putty tools works great)
    5. Copy that file to the flash drive in the EFI\BOOT folder. That file MUST BE RENAMED to bootx64.efi (note the case difference. I did not test to see if case is important)
    6. At this point remove the usb thumb drive from the build up computer and insert the drive into a target computer
    7. Power on the target computer and press F10 or F12 (depending on the mfg) to call up the EFI boot menu.
    8. Select the USB boot device under the EFI section of the EFI menu
    9. You should see the iPXE boot banner and then after about 30 seconds it should be prompted for the IP address of your FOG server. Key in the IP ADDRESS of your FOG server and press Enter.
    10. At this point you should boot into the FOG iPXE menu.


  • @ckasdf @george1421 guys I must also share with you that getting the expensive dongle wasn’t the end of the line for me :) In a mixed environment (as was my case) meaning one has legacy PXE laptops and the newer iPXE machines the tftp server needs to know which image file name to serve back the the client based on a bare metal architecture ID, and that must occur at the DHCP level, which of course only Windows 2016 supports lol

    So doing the USB stick automatically solves that problem :) since the human knows which is which (architecture wise that is) and would pick the correct stick to boot from



  • @Boyan-Biandov

    recommended branded Ethernet dongle

    Yeah, I’ve read into the MS Surface devices and how people have purchased Microsoft-branded USB to Ethernet devices to PXE boot. Problem is, if I go that route, I’d potentially need one for Surfaces, one for Carbons, etc which like you said gets expensive. If one $30 device worked on all of them, that’d be ideal.

    @george1421

    iPXE … has a larger set of supported network adapters

    I have a D-Link adapter, and I tried to do an iPXE USB boot once, but it didn’t work. I’m kind of thinking I didn’t do it properly (may have just had the iPXE file in the root of the flash drive, with the partition marked for booting). I’ll try this again and put the file under /EFI/BOOT this time. Thanks!


  • Moderator

    @Boyan-Biandov said in USB Boot UEFI client into FOG menu (easy way):

    In summary: generic dongle IMHO doesn’t work for these non-Ethernet integrated devices.

    You are 100% correct, however you can bypass this issue by skipping the firmware pxe roms (which need to have specific network interfaces) by usb booting iPXE (ipxe.efi) which has a larger set of supported network adapters. That is what this tutorial is showing how to do. With that said, I would still go with the manufacturers supported network adapter just so you don’t have to worry about a second boot media since everything will come over the network. But in certain circumstances its not possible to go with the hardware vendors networking kit.



  • @ckasdf I can share my DELL experiences, the 2-in-1 do NOT have Ethernet port and a generic Amazon dongle did NOT work. However the 2-in-1 has “recommended DELL made Ethernet dongle” which was detected by the UEFI and network boot was possible. So I would look for (Microsoft Surface tablets, Lenovo Carbon X1 laptops, etc) recommended dongle (which will be expensive, I paid $50 for the DELL one) and I bet one would exist which then will be recognized by the device UEFI. In summary: generic dongle IMHO doesn’t work for these non-Ethernet integrated devices.


  • Moderator

    @ckasdf said in USB Boot UEFI client into FOG menu (easy way):

    I understand that PXE requires drivers built into the computer’s firmware, which aren’t available for generic USB > Ethernet adapters. Is it possible to create the USB-booting PXE launcher, with a driver for a particular adapter wrapped into it?

    On UEFI systems if you use a usb ethernet adapter, that usb ethernet adapter must be supported by the uefi firmware or the uefi firmware won’t see the usb ethernet adapter. This is why you can’t use any random/generic network adapter.

    Now if you can boot another OS beyond the uefi firmware that OS needs its own network drivers. In the case of what you are mentioning here, iPXE is in itself its own OS. So any network driver that iPXE has a driver for it will use. The same applies a bit later on in the FOS booting process, FOS (linux) needs to have the network driver built in to be able to access the network. SO as long as you have an ethernet network adapter supported by both iPXE and FOS then you are good to go. Its not necessary for UEFI to support that network adapter. Most mainstream usb ethernet adapters are supported by iPXE as well as FOG linux.

    I have seen people take one of those mini usb hubs and install a usb stick (like sandisk fit) and usb ethernet adapter and image that way. They just move the usb hub between computers.

    The only other gotcha that you need to think about is usb3 network ports (blue jacks). iPXE as well as FOG needs to have drivers for the usb3 ports. They are more common now but there was a time where some of the usb3 controllers were unique and linux drivers were not available.

    After all that rambling, yes you can use iPXE and FOS to get aroound not having built in uefi support for network booting.



  • Sorry to revive an old thread again, but like another person mentioned, I think it’s good to keep the knowledge combined into one thread. I understand that this thread was posted with the intention of supplementing an incomplete UEFI implementation on older computers that lacked UEFI PXE booting.

    Is it possible to use this process for new devices (Microsoft Surface tablets, Lenovo Carbon X1 laptops, etc) that lack a built in Ethernet port? I understand that PXE requires drivers built into the computer’s firmware, which aren’t available for generic USB > Ethernet adapters. Is it possible to create the USB-booting PXE launcher, with a driver for a particular adapter wrapped into it?


  • Moderator

    @boyan-biandov This tells me the FOS linux kernel you are using is not matched to the virtual hard drive (init.xz) or you are attempting to pxe boot using pxelinux.0 both will give you this error.



  • Hi, the on-the-fly kernel build didn’t work for me but downloading efi from 1.3.5 worked like a charm. However just as you predicted FOG 1.2 can’t see NVMe hardware so an upgrade effort is in progress.

    Just as an FYI: here is what I get when I attempt quick inventory on 1.2.0:

    alt text


  • Moderator

    @boyan-biandov I feel with FOG 1.2.0 (read pretty sure) you are going to have other issues. But lets get you past your request. If you are looking for ipxe.efi you can probably get them from one of the FOG tarball distributions, here: https://github.com/FOGProject/fogproject/releases

    Look in packages/tftp directory for the files of one of the tar.gz files.

    I would look in the 1.3.x releases for the first ipxe.efi boot loader. You don’t want to deviate to far from 1.2.0. On the other hand you may need to try the 1.5.x release ipxe.efi to get later hardware support.

    Extract it with tar to a working directory and then search the path for ipxe.efi.

    Beyond pxe booting into uefi mode, if your new systems have NVMe drivers, GPT disks and newer hardware your FOG 1.2.0 install will have problems digesting that hardware. I’m even questing if FOS (customized linux OS) will boot on a uefi system since its 32 bits for 1.2.0. But I guess you won’t know until you try.



  • I know this is an old topic but I wanted to keep the continuity of knowledge. I’m testing Inspiron 2-in-1 7573 for a first time and although I did get the “recommended” USB-to-Ethernet dock from DELL, even though it is seen in the UEFI as a bootable device after enabling the “network network stack” and even though it starts the IPv4 PXE boot process it does NOT PXE boot. It times out eventually.

    So I am assuming I need the USB-to-PXE method and then specify my FOG IP and from there it would be a smooth sailing. My problem is that I do NOT have /tftpboot/ipxe.efi on my existing FOG server (I’m at 1.2.0)? How do I get that EFI file so I can follow the guide and make the USB stick? Otherwise my FOG server runs fine, has been for the past 15 years and legacy BIOS PXE clients boot just fine?

    alt text
    alt text
    alt text

    Thank you
    ~B



  • @kusan Do you have a problem?



  • To PXE boot the system, make the necessary USB and network connections then power up the system.

    As soon as the Dell splash screen is displayed, press the F12 key to bring up the one-time boot selection menu.

    Use the arrow keys to highlight “USB NIC(IPV4)” or “USB NIC(IPV6)” depending on network topology in use.

    Press enter to boot the system to the network device.
    For more details check Dell Latitude E6420 Manual.



  • @george1421 I often see it when installing fog inside a vm. I install fog a lot so that makes sense. I think whatever it is isn’t with fog or fos, but with the latest Linux kernel, there’s something up with its display stuff when under load.


  • Moderator

    @Wayne-Workman Just so I understand, where are you are seeing that video delay in FOS or iPXE?



  • eg: with a ##% progress, the display halts at say 12% … nothing else will happen until I hit space/enter/backspace. Next it goes to 15%. again, smack a key. etc, etc. So I hold the space bar down and it flies through everything.

    I have two Optiplex 790 machines at home.

    Firstly, I love these two machines lol. They are the newest desktops in the house.

    I’ve been able to image one in BIOS mode fine using the boot file undionly.kkpxe. I’ve not tried UEFI mode yet.

    The delay your talking about, I see this all the time here lately with sub-par display adapters. Especially virtual machine display adapters. I’ve also seen it on older Optiplex 380s. The display just simply quits giving output unless you tap the enter key every now and again. This seems to be particularly prevalent when said systems are under load.

    I couldn’t tell you why, but I’ve worked around it the same way you have.

    I personally believe it has something to do with the latest Linux kernel. I used to not have this problem. And it cropped up perhaps a couple weeks ago.



  • It also tested fine with a 4GB key formatted to fat32. I don’t see why it wouldn’t also work on a 32GB key.

    I pulled ipxe.efi from my RC23 FOG server.


  • Moderator

    First let me say I’m not nit picking here just trying to understand and add what bits I know.

    Finding myself testing UEFI booting on Dell OptiPlex 790 I have some observations to post regarding the UEFI USB boot with iPXE.

    The 390/790s were the first generation of desktops that supported uefi, but not pxe booting (if I remember). That is what started me down that rom-o-matic path and this thread.

    As for your workflow for creating a bootable usb drive, yeah uefi is cool no more boot sector stuff, as long as you have the boot.efi in the right location its all good.

    USB Key size is not limited to 2GB. I successfully tested with a 1GB key.

    The usb key size should have been a max size of 2GB. And that should be imposed because of the fat32 file system.

    Beginning with “@ iPXE 1.0.0+ (aa11ff) …” at any point in the process leading up to FOG actually launching, whenever you would expect a progress indicator (##%) or an ‘’… OK" to pop up, keyboard input must be made to continue. I must hold the space bar, enter or backspace key down to ensure the process continues to the next visual refresh.

    OK this one has me a bit lost. You have to do stuff on the keyboard to get the iPXE kernel to boot? I find that suspicious. I’m not sure why that is a feature at all. Did you build your image using the rom-o-matic site or via the iPXE source code?



  • Finding myself testing UEFI booting on Dell OptiPlex 790 I have some observations to post regarding the UEFI USB boot with iPXE.

    Here is what I did.

    1. CMD: diskpart
    2. list disk 
    3. select disk # -- where # is the number representing your USB key listed by "list disk"
    4. clean
    5. create partition primary
    6. select partition 1
    7. format quick fs=fat32
    8. active
    9. exit
    
    10. COPY <FOG>\tftpboot\ipxe.efi to <USB>:\efi\boot\bootx64.efi
    

    USB Key size is not limited to 2GB. I successfully tested with a 1GB key.
    Case does not matter. Never does with Windows.

    Beginning with “@ iPXE 1.0.0+ (aa11ff) …” at any point in the process leading up to FOG actually launching, whenever you would expect a progress indicator (##%) or an ‘’… OK" to pop up, keyboard input must be made to continue. I must hold the space bar, enter or backspace key down to ensure the process continues to the next visual refresh.

    eg: with a ##% progress, the display halts at say 12% … nothing else will happen until I hit space/enter/backspace. Next it goes to 15%. again, smack a key. etc, etc. So I hold the space bar down and it flies through everything.

    Otherwise it works like a charm.




Log in to reply
 

472
Online

5.8k
Users

13.1k
Topics

123.1k
Posts