• FOG v1.5.7
    Kernel 4.19.143 TomElliott arm64 (downloaded 1/12/21)
    CentOS 6.9

    I apologize in advance my Linux knowledge is non existent. So please be patient and spell everything out.

    The 840 G7 no longer has a network port. I have to use a USB-C to ethernet adapter. I can boot to the fog menu and deploy an image from previous hardware, but when I create a task to capture the newly created image and boot to network FOG does not recognize it and just takes me to the all white screen that shows the host is not registered, boot from hard disk etc.

    I am able to do a quick registration, and all that shows up in list all hosts is the MAC address of the USB-C to ethernet adapter. I tried to do a capture debug but again like above, FOG does not pick up the hardware and brings me to the white screen listing possible options.

    Thank you for your help.

  • Moderator

    @joyboy11111 Lets start with this.

    Connect to the fog server using putty or ssh

    mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.sav
    vi /etc/dhcp/dhcpd.conf
    i (to insert)

    Copy the following code out of your browser and the paste into the vi editor

    option space PXE;
    option PXE.mtftp-ip    code 1 = ip-address;
    option PXE.mtftp-cport code 2 = unsigned integer 16;
    option PXE.mtftp-sport code 3 = unsigned integer 16;
    option PXE.mtftp-tmout code 4 = unsigned integer 8;
    option PXE.mtftp-delay code 5 = unsigned integer 8;
    option arch code 93 = unsigned integer 16; # RFC4578
    use-host-decl-names on;
    ddns-update-style interim;
    ignore client-updates;
    subnet netmask {
        option subnet-mask;
        range dynamic-bootp;
        default-lease-time 21600;
        max-lease-time 43200;
        option domain-name-servers;
        option routers;
        class "UEFI-32-1" {
        match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00006";
        filename "i386-efi/ipxe.efi";
        class "UEFI-32-2" {
        match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00002";
         filename "i386-efi/ipxe.efi";
        class "UEFI-64-1" {
        match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00007";
         filename "snponly.efi";
        class "UEFI-64-2" {
        match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00008";
        filename "snponly.efi";
        class "UEFI-64-3" {
        match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00009";
         filename "snponly.efi";
        class "Legacy" {
        match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00000";
        filename "undionly.kkpxe";

    Write and then Exit vi

    systemctl restart dhcp
    ps aux | grep dhcp

    The ps command should show there is the dhcp service running. You can also test with

    netstat -an | grep :67  

    That should return with something like


  • @george1421

    I updated the config file to match the wiki, leaving my ip settings. I replaced all the instances of ipxe.efi with snponly. Restarted DHCP and now nothing will pxe boot. It just sits at >>start PXE over IPv4, and times out. I went back into look at the config file and it looks empty, like everything I entered and saved is now gone.

    I am about ready to see if I can start a remote session with you to see if you can straighten this out. Again I apologize for taking so much of your time.


  • Moderator

    @joyboy11111 So the file may have been open with vi or nano when the computer was rebooted or you have the file open in another session on the server. If the swap file was created previously before a reboot you can delete the file. In the same directory as that file there should be a .swp file. You can remove that file so you won’t get that nuances message.

  • @george1421 It does give me a warning about a swap file when I go to view the config.

  • Moderator

    @joyboy11111 Did someone hand edit that file? I find it strange that it doesn’t match the fog supplied configuration file.

    You can remove that static filename stanza line and insert the class definitions from the wiki page. Then reboot the dhcp server.

    The ways its currently configured that dhcp service will only support booting bios based computers via PXE.

  • @george1421

    There is nothing below Filename “undionly.kpxe” just blank. I tried to the search from tom /ipxe.efi, nothing, no results. should I copy and past those lines from the wiki for the rest of the config file?


  • Moderator

    @joyboy11111 If the FOG installer created the dhcp server configuration it should look similar to this: https://wiki.fogproject.org/wiki/index.php/BIOS_and_UEFI_Co-Existence#Example_1

    If you scroll down in the screen shot you posted you will see this section

        class "UEFI-64-1" {
        match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00007";
         filename "ipxe.efi";
        class "UEFI-64-2" {
        match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00008";
        filename "ipxe.efi";
        class "UEFI-64-3" {
        match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00009";
         filename "ipxe.efi";

    so for the uefi-64 entries you want to change filename varialble to snponly.efi

  • Senior Developer

    @joyboy11111 I’m going to guess, and no judgement intended please, that you’re not overly familiar with VI/VIM for editing file?

    type these commands:

    Press enter

    Note the/ = search everything after.

    Once you find the line line arrow over to the area to edit and press the i key, Press delete over the ipxe.efi then type snponly.efi

    Note the i = insert to leave “insert/edit” mode press ESC key

    Press the esc

    Type :w

    Note the : puts VI into "command mode. w = save/write file.

    To exit VI type: :q

    Note the : puts the VI into "command mode. q = quit.

  • @george1421
    What line would I make the change from ipxe to snponly.


  • Moderator

    @joyboy11111 No that is not the config file for the dhcp server, that is like the startup options file.

    I had to look it up because centos 6 is so long ago. But it looks like the config file is /etc/dhcp/dhcpd.conf

    ref: https://www.server-world.info/en/note?os=CentOS_6&p=dhcp

    I am a bit surprised that FOG 1.5.x installs on centos 6. But if it works, go with it.

  • @george1421

    I am very sorry it has taken me this long to get back. Several other issues came up that I needed to address.

    If I am in the correct place the dhcp config file is empty. I am very sorry I am so reliant on you for step by step instructions.


    is Sebastian correct in his post below also?

  • Senior Developer

    @joyboy11111 In the picture it looks like you put the downloaded iPXE files in /var/www/html/fog/service/ipxe/ but that place is for kernels and inits but not for the iPXE files! Put those in /tftpboot/ (default when you use the FOG installer).

  • Moderator

    @joyboy11111 Ok I think we need to regroup because we somehow have moved off course.

    You are using the isc-dhcp dhcp server on your FOG server. So what I’m recommending is that you go into the configuration file for the isc-dhcp server and change the references from ipxe.efi to snponly.efi, then restart the isc-dhcp server.

    I’m going to assume you are running debian/ubuntu variant so these instructions will help you: https://help.ubuntu.com/community/isc-dhcp-server

    The fog installed configuration file for the isc-dhcp server looks similar to this: https://wiki.fogproject.org/wiki/index.php/BIOS_and_UEFI_Co-Existence#Example_1

    OK so to my thoughts. The ipxe.efi boot loader is much like an operating system itself where it will have a hardware driver for every common model of network adapter. The snponly.efi boot loader is much like the undionly.kpxe bios boot loader in it only contains one network driver which speaks to the network driver built into the network card. The idea is that maybe there is a bug in the ipxe.efi boot loader driver for that nic, where the driver built into the network adapter would respond correctly.

    There is something uniquely special about that network adapter to why it is reporting a different mac address for iPXE vs linux and windows.

  • @george1421
    I renamed the ipxe, and downloaded snponly. Tested with the same issue. I feel i am doing something wrong.


  • Moderator

    @joyboy11111 OK so to answer my question, you use the FOG server as the dhcp server for your FOG imaging network. So you need to edit your dhcp server configuration file.

    Replace these parameters filename "ipxe.efi" with filename "snponly.efi" then restart your dhcp server. Lets try the snponly.efi boot loader. Lets see if it finds the right mac address.

  • @george1421
    Does this give you the info you need? I use multiple adapters, eht0 is assigned to FOG. ETH1 is how I let FOG get out to the internet.


  • Moderator

    @joyboy11111 I don’t think you did anything wrong, just updating ipxe didn’t solve the problem.

    So what device is your dhcp server?

  • @george1421
    Those files are in the snap shot below. I tested, made sure both MAC’s were deleted from hosts. Did a quick registration and it did the same thing. Pulled the MAC of the adapter. Still shows has host not registered.

    Did I do something wrong?


  • Moderator

    @joyboy11111 The files are not zipped, you can directly download them using your computer and then transfer to the FOG server if you want to go that way too.

    Or from the linux console

    wget https://github.com/FOGProject/fogproject/raw/master/packages/tftp/undionly.kpxe

    wget https://github.com/FOGProject/fogproject/raw/master/packages/tftp/ipxe.efi