Another chainload error - FOG 1.5.7 on Debian 10.2



  • I’m trying to replace an old (working) FOG server with a new one, taking the opportunity to use a newer OS than the out-of-support Ubuntu server and similarly a new FOG installation in place of an old version.

    The OS is Debian 10.2 (Buster) on bare metal, with FOG 1.5.7 installed from a GIT pull as described in FOG Wiki: Getting FOG.

    There is a separate DHCP server which has been configured to point to the FOG server and the undionly.kpxe file
    next-server <fog server IPv4 address>;
    filename “undionly.kpxe”;

    Note the new server is being placed on the live network. The old server acted as its own DHCP server, and computers were re-imaged by either bringing them to the lab to connect to the separate lab network, or the fog server (actually a laptop) was taken to the site with a switch and a temporary network built to re-image a classroom of computers. The new server does not act as the live network’s DHCP server.

    The old setup has worked fine for years.

    With the new installation, PXE booting devices fails. It has been tried on both an old Thinkpad and an old Dell laptop which work fine with the old setup.

    Example ThinkPad attempted network boot:

    Intel(R) Boot Agent GE v1.5.53
    Copyright (C) 1997-2013. Intel Corporation
    
    CLIENT MAC ADDR: MM MM MM MM MM MM  GUID: GGGGGGGG GGGG GGGG GGGG GGGGGGGGGGGG
    CLIENT IP: 10.60.3.52  MASK: 255.255.254.0  DHCP IP: 10.60.2.2
    GATEWAY IP: 10.60.2.1
    PXE->EB:  !PXE at 9736:0070, entry point at 9736:0106
              UNDI code segment 9736:5B20, data segment 90F6:6400 (579-628kB)
              UNDI device is PCI 00:19.0, type DIX+802.3
              579kB free base memory after PXE unload
    iPXE initialising devices...ok
    
    
    iPXE 1.0.0+ (9907f) -- Open Source Network Boot Firmware --- http://ipxe.org
    Features: DNS FTP HTTP HTTPS iSCSI NFS TFTP VLAN AoE ELF MBOOT PXE bzImage Menu
    PXEXT
    Configuring (net0 MM:MM:MM:MM:MM:MM)...... ok
    Received DHCP answer on interface net0
    tftp://10.60.3.233/default.ipxe... ok
    http://10.60.3.233/fog/service/ipxe/boot.php... ok
    10.60.6.189: command not found
    Could not boot: Exec format error (http://ipxe.org/2e022001)
    Could not boot: Exec format error (http://ipxe.org/2e022001)
    Chainloading failed, hit 's' for the iPXE shell: reboot in 10 seconds_
    

    I have checked and http://10.60.3.233/fog/service/ipxe/boot.php exists.
    It looks like the iPXE command parser is hitting some unparseable data and so the process fails.

    What is weird is why IPv4 address 10.60.6.189 is appearing. Its on a different subnet to the booting PC, and not any other server. Its appearance in the boot log is a mystery to me.

    I can’t do any more diagnosis until Monday afternoon UTC at the earliest, but I’m putting this up in the hope I have missed something obvious that someone will gently point out to me.

    The aim is to have a FOG server in the main building so classrooms can be re-imaged without moving PCs about or needing to build a temporary disconnected LAN. Ideally have a separate fog laptop that can be taken off site with a selection of images to update remote locations, and ultimately put some FOG servers in remote locations (that are on the end of low capacity data links) so that new images can be distributed overnight in a bandwidth friendly way so that remote offices can be updated from a server local to them.

    Note that the estate of PCs is a mixture of BIOS and UEFI laptops.

    Regards,

    Junior Catherd



  • @george1421

    Sorry, I wiped the PC. I have a hard deadline to meet to get the old FOG server replaced.

    The good news is that a fresh install, starting from zero on bare metal with a Debian 10.2 net install* and a git clone of FOG worked with no FOG related problems. I have successfully collected an image from a local PC in the IT Admin Lab and deployed it across the routed network to two ‘volunteer’ PCs.

    So I apologize again for wasting your time.

    All I can suggest is that the installer checks if it is being run as a re-installation and posts a warning, and maybe points to some documentation on how to properly do a reinstall. I recognize I’ve incurred some debt here, so I’ll try and post some helpful information for other people.

    I very much appreciate the FOG project. Thank you for providing such a useful tool.

    Junior Catherd

    *Debian 10.2 net install grabs a DHCP address, and persuading the OS later to use a static IP was a little more convoluted than I expected. Similarly, the default install does not include sudo, which is easy enough to remedy.


  • Moderator

    @junior_catherd Before you wipe the machine I’m pretty sure we can fix this. I’d like to run some tests to understand how this happened.

    console --picture http://10.60.6.221
    10.60.6.189/fog/service/ipxe/bg.png
    

    The way that this repeats through the ipxe menu

    10.60.6.221
    10.60.6.189
    

    10.60.6.221<cr>10.60.6.189 makes me think there is something wrong in the fog configuration in the web ui.



  • @george1421

    OK, text is attached below for your information.

    I think I see what has happened.

    The unknown IPv4 address 10.60.6.189 is actually in the range of IPv4 addresses controlled by the network’s DHCP server for a general LAN local to the IT Administration Lab.

    I temporarily connected the server on which the FOG software was to be installed to the general LAN so I could git clone the installation. Unfortunately, the way things were set up at the time, the server got an IPv4 address issued by the DHCP server, which was used for the FOG install. Later on, I changed the server IP to a static IPv4 address and re-ran the installer. Obviously this was the wrong thing to do. I am providing a copy of the current /opt/fog/.fogsettings

    I am going to re-install the OS for other reasons, so I will take the opportunity to put the correct static IPv4 address on the server from the start and re-install FOG on the newly reinstalled server. I will report back if this problem persists, or say that things work when I do the install properly. This looks like a PEBKAC on my part, so apologies for wasting your time.

    Junior Catherd

    $ curl http://10.60.3.233/fog/service/ipxe/boot.php?mac=MM:MM:MM:MM:MM:MM
    #!ipxe
    set fog-ip 10.60.6.221
    10.60.6.189
    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://10.60.6.221
    10.60.6.189/fog/service/ipxe/bg.png --left 100 --right 80 && goto console_set || goto alt_console
    :MENU
    menu
    colour --rgb 0xff0000 0 ||
    cpair --foreground 1 1 ||
    cpair --foreground 0 3 ||
    cpair --foreground 4 4 ||
    item --gap Host is NOT registered!
    item --gap -- -------------------------------------
    item fog.local Boot from hard disk
    item fog.memtest Run Memtest86+
    item fog.reginput Perform Full Host Registration and Inventory
    item fog.reg Quick Registration and Inventory
    item fog.deployimage Deploy Image
    item fog.multijoin Join Multicast Session
    item fog.sysinfo Client System Information (Compatibility)
    choose --default fog.local --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.reginput
    kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=275000 web=http://10.60.6.221
    10.60.6.189/fog/ consoleblank=0 rootfstype=ext4 storage=10.60.6.221
    10.60.6.189:/images/ storageip=10.60.6.221
    10.60.6.189 loglevel=4 mode=manreg
    imgfetch init_32.xz
    boot || goto MENU
    :fog.reg
    kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=275000 web=http://10.60.6.221
    10.60.6.189/fog/ consoleblank=0 rootfstype=ext4 storage=10.60.6.221
    10.60.6.189:/images/ storageip=10.60.6.221
    10.60.6.189 loglevel=4 mode=autoreg
    imgfetch init_32.xz
    boot || goto MENU
    :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.sysinfo
    kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=275000 web=http://10.60.6.221
    10.60.6.189/fog/ consoleblank=0 rootfstype=ext4 storage=10.60.6.221
    10.60.6.189:/images/ storageip=10.60.6.221
    10.60.6.189 loglevel=4 mode=sysinfo
    imgfetch init_32.xz
    boot || goto MENU
    :bootme
    chain -ar http://10.60.6.221
    10.60.6.189/fog/service/ipxe/boot.php##params ||
    goto MENU
    autoboot
    
    

    /opt/settings/.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.7
    ## Install time: Fri 22 Nov 2019 14:34:39 CET
    ipaddress='10.60.3.233'
    copybackold='0'
    interface='enp0s25'
    submask='255.255.254.0'
    hostname='<redacted>'
    routeraddress='#   No router address added'
    plainrouter=''
    dnsaddress='#   No dns added'
    username='fogproject'
    password='%-z=I|As~T<K'
    osid='2'
    osname='Debian'
    dodhcp='N'
    bldhcp='0'
    dhcpd=''
    blexports='1'
    installtype='N'
    snmysqluser='root'
    snmysqlpass=''
    snmysqlhost='localhost'
    installlang='1'
    storageLocation='/images'
    fogupdateloaded=1
    docroot='/var/www/html/'
    webroot='/fog/'
    caCreated='yes'
    httpproto='http'
    startrange=''
    endrange=''
    bootfilename='undionly.kpxe'
    packages='apache2 bc build-essential cpp curl g++ gawk gcc genisoimage gettext gzip htmldoc isolinux lftp libapache2-mod-php7.3 libc6 libcurl4 liblzma-dev m4 mariadb-client mariadb-server net-tools nfs-kernel-server openssh-server php7.3 php7.3-bcmath php7.3-cli php7.3-curl php7.3-fpm php7.3-gd php7.3-json php7.3-mbstring php7.3-mysql php-gettext sysv-rc-conf tar tftpd-hpa tftp-hpa unzip vsftpd wget xinetd zlib1g '
    noTftpBuild=''
    notpxedefaultfile=''
    sslpath='/opt/fog/snapins/ssl/'
    backupPath='/home/'
    php_ver='7.3'
    php_verAdds='-7.3'
    sslprivkey='/opt/fog/snapins/ssl//.srvprivate.key'
    ## End of FOG Settings
    

  • Moderator

    @junior_catherd said in Another chainload error - FOG 1.5.7 on Debian 10.2:

    http://10.60.3.233/fog/service/ipxe/boot.php

    I’m going to prediagnose this as you have a custom ipxe menu involved here. The reason why I think this is because of this appearing in the error message [10.60.6.189]. The IP address doesn’t matter, but it appears the structure of the iPXE menu is bad for some reason.
    Unfortunately you masked out the mac address but I want you to key in the following URL and then post the results here. This will be the text behind the FOG iPXE menu.

    http://10.60.3.233/fog/service/ipxe/boot.php?mac=MM:MM:MM:MM:MM:MM where MM:MM:MM:MM:MM:MM is the mac address of the computer that threw this error.


Log in to reply
 

354
Online

6.4k
Users

13.8k
Topics

130.3k
Posts