• Fog Server v. 1.5.9 enabled with dhcp (through fog setup)

    • VM client using Legacy - working

    • VM client UEFI (with or w/o secure boot enabled) - not working.

    • NBP file downloaded successfully.

    • stuck in initializing devices.

    syslog (dhcp) log:

    Jan 5 11:41:15 fogserver dhcpd[698]: reuse_lease: lease age 387 (secs) under 25% threshold, reply with unaltered, existing lease for 192.168.168.17
    Jan 5 11:41:15 fogserver dhcpd[698]: DHCPDISCOVER from 0e:20:30:cb:fc:1e via eth1
    Jan 5 11:41:16 fogserver dhcpd[698]: DHCPOFFER on 192.168.168.17 to 0e:20:30:cb:fc:1e via eth1
    Jan 5 11:41:18 fogserver dhcpd[698]: reuse_lease: lease age 390 (secs) under 25% threshold, reply with unaltered, existing lease for 192.168.168.17
    Jan 5 11:41:18 fogserver dhcpd[698]: DHCPREQUEST for 192.168.168.17 (192.168.168.1) from 0e:20:30:cb:fc:1e via eth1
    Jan 5 11:41:18 fogserver dhcpd[698]: DHCPACK on 192.168.168.17 to 0e:20:30:cb:fc:1e via eth1
    Jan 5 11:41:18 fogserver in.tftpd[3180]: tftp: client does not accept options

    I’m not sure if I am getting the correct DHCP settings (server FOG is using) but below are the settings in /etc/dhcp/dhcpd.conf:

    # DHCP Server Configuration file\n#see /usr/share/doc/dhcp*/dhcpd.conf.sample
    # This file was created by FOG
    #Definition of PXE-specific options
    # Code 1: Multicast IP Address of bootfile
    # Code 2: UDP Port that client should monitor for MTFTP Responses
    # Code 3: UDP Port that MTFTP servers are using to listen for MTFTP requests
    # Code 4: Number of seconds a client must listen for activity before trying
    #         to start a new MTFTP transfer
    # Code 5: Number of seconds a client must listen before trying to restart
    #         a MTFTP transfer
    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;
    use-host-decl-names on;
    ddns-update-style interim;
    ignore client-updates;
    authoritative;
    # Specify subnet of ether device you do NOT want service.
    # For systems with two or more ethernet devices.
    # subnet 136.165.0.0 netmask 255.255.0.0 {}
    subnet 192.168.168.0 netmask 255.255.255.0{
        option subnet-mask 255.255.255.0;
        range dynamic-bootp 192.168.168.10 192.168.168.254;
        default-lease-time 21600;
        max-lease-time 43200;
        #option routers 0.0.0.0
        option domain-name-servers 192.168.168.1;
        next-server 192.168.168.1;
        class "Legacy" {
            match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00000";
            filename "undionly.kkpxe";
        }
        class "UEFI-32-2" {
            match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00002";
            filename "i386-efi/ipxe.efi";
        }
        class "UEFI-32-1" {
            match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00006";
            filename "i386-efi/ipxe.efi";
        }
        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";
        }
        class "SURFACE-PRO-4" {
            match if substring(option vendor-class-identifier, 0, 32) = "PXEClient:Arch:00007:UNDI:003016";
            filename "ipxe.efi";
        }
        class "Apple-Intel-Netboot" {
            match if substring(option vendor-class-identifier, 0, 14) = "AAPLBSDPC/i386";
            option dhcp-parameter-request-list 1,3,17,43,60;
            if (option dhcp-message-type = 8) {
                option vendor-class-identifier "AAPLBSDPC";
                if (substring(option vendor-encapsulated-options, 0, 3) = 01:01:01) {
                    # BSDP List
                    option vendor-encapsulated-options 01:01:01:04:02:80:00:07:04:81:00:05:2a:09:0D:81:00:05:2a:08:69:50:58:45:2d:46:4f:47;
                    filename "ipxe.efi";
                }
            }
        }
    }
    (END)
    

    Is there something I’m missing since UEFI is not booting but legacy does?

    Is it FOG server (including DHCP) or client settings which resulted in error “tftp: client does not accept options?”

    Looking for guidance.

    Thanks!


  • @sebastian-roth Thank you. I have not exchanged .efi for .*pxe, it’s what’s in the configuration by default. I’ve only added the “authoritative;” line and changed the UEFI 64 files to intel.efi instead of ipxe.efi. Also, I’ve also used snponly.efi which returns the same result with intel.efi. I decided to use snponly.efi for the meantime while on testing stage.

  • Moderator

    @BURUGUDUY Not sure if there is a missunderstanding of legacy BIOS and UEFI. You can’t just switch the iPXE binary between UEFI (*.efi) and legacy BIOS (*.*pxe). As you can see in the dhcpd.conf posted the FOG installer generates a configuration file valid for several different PXE client vendor classes/architectures. Sure you can fiddle with those, e.g. change from the default for legacy BIOS undionly.kkpxe to ipxe.pxe but switching over to an UEFI binary will surely cause you trouble.

    Not all iPXE binaries can be use on each and every machine/VM. As you’ve seen in your case intel.efi did the trick. Some machines only work with snponly.efi. I suggest you play with those in your dhcpd.conf directly. Take a backup copy of that file when you have your prefered settings.

    Once again, don’t mix up UEFI and legacy BIOS as it will cause trouble sooner or later.


  • Already found the issue. I should have used intel.efi in the dhcpd.conf


  • Even modifying /opt/fog/.fogsettings## Start of FOG Settings

    ## Created by the FOG Installer
    ## Find more information about this file in the FOG Project wiki:
    ##     https://wiki.fogproject.org/wiki/index.php?title=.fogsettings
    ## Version: 1.5.9
    ## Install time: Tuesday, 07 December, 2021 04:31:05 PM PST
    ipaddress='192.168.168.1'
    copybackold='0'
    interface='eth1'
    submask='255.255.255.0'
    hostname='fogserver.roxascruztagle.com'
    routeraddress=''
    plainrouter=''
    dnsaddress='192.168.168.1'
    username='fogproject'
    password='CZlabU9M1Uxla$xzhmjJ'
    osid='2'
    osname='Debian'
    dodhcp='y'
    bldhcp='1'
    dhcpd='isc-dhcp-server'
    blexports='1'
    installtype='N'
    snmysqluser='fogmaster'
    snmysqlpass='GqVzstO7r8I29NkVsgy@'
    snmysqlhost='localhost'
    mysqldbname='fog'
    installlang='0'
    storageLocation='/images'
    fogupdateloaded=1
    docroot='/var/www/'
    webroot='/fog/'
    caCreated='yes'
    httpproto='http'
    startrange='192.168.168.10'
    endrange='192.168.168.254'
    # bootfilename='undionly.kpxe'  --for legacy BIOS only.  For UEFI x64, see next line
    bootfilename='ipxe.efi'
    packages='apache2 bc build-essential cpp curl g++ gawk gcc genisoimage git gzip htmldoc isc-dhcp-server isolinux lftp libapache2-mod-php7.3 libc6 libcurl4 l$
    noTftpBuild=''
    sslpath='/opt/fog/snapins/ssl/'
    backupPath='/home/'
    armsupport='0'
    php_ver='7.3'
    php_verAdds='-7.3'
    sslprivkey='/opt/fog/snapins/ssl//.srvprivate.key'
    ## End of FOG Settings
    
    

    Either bootfilename=‘ipxe.efi’ or ‘undionly.kpxe’ still produces same erroneous result of “Jan 5 13:39:26 fogserver in.tftpd[2969]: tftp: client does not accept options”

330
Online

9.1k
Users

15.7k
Topics

145.8k
Posts