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
-
@junior_catherd said in Another chainload error - FOG 1.5.7 on Debian 10.2:
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. -
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
-
@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.
-
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.