Chainloading failed
-
I am in the process of creating a new Fog Server for my School District. My current one is on version 1.4. using Ubuntu. I wanted to have a virtual one and try out CentOS 7 so I started from scratch. It is using Fog version 1.5.4. I created a virtual Windows 10 machine to test with. When it boots to the new Fog Server, it will load the Fog menu and if I wait it out, it tries to boot but gets the Chainloading failed message. It then gets stuck in a boot loop. If I switch DHCP back to the old Fog Server things work. I have tried all of the BOOT EXIT types and nothing seems to help. Trying a few kernals didn’t help.
-
OK first thing we can rule out is kernels. The FOS Kernel is only used for imaging. The FOG iPXE menu is powered by the iPXE boot loader. We can also remove the fog server OS out of the picture because that has no impact at this point.
Can you tell me a bit more about the pxe booting computer? Is it running in uefi or bios mode?
What is the error message you see in chain loading error? (a clear picture taken with a mobile phone would help).
-
The pxe booting computer that I am using now is a Hyper V virtual machine. It is running in bios mode. I have tried it with physical machines that are also running in bios. (same result).
Pictures are attached.![1_1547825224141_2019-01-18 10.20.23 (Phone).jpg](Uploading 100%) ![0_1547825224140_2019-01-18 10.19.41 (Phone).jpg](Uploading 100%)
-
-
I was not able to boot in bios mode on Windows 10 hyper-v. I found out that vm higher than 8.0 had issues. I made a new vm on windows server 2016 in version 8.0 and this is working well. Maybe is this your problem?
-
@Andrew-Seals If you know the mac address of that win10 hyper-v server key in this url into the browser and lets see what it gives us:
http://<fog_server_ip>/fog/service/ipxe/boot.php?mac=<mac_address_of_vm>
Hint: Replace the bracketed text with the real info for your siteThat will spit out a bunch of text, please post that text here in a code block. That this the program behind the iPXE boot menu. I want to see what the default exit is set to.
-
#!ipxe set fog-ip 10.25.8.68 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.25.8.68/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 5000 target && goto ${target} :fog.local exit || 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=127000 web=http://10.25.8.68/fog/ consoleblank=0 rootfstype=ext4 storage=10.25.8.68:/images/ storageip=10.25.8.68 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=127000 web=http://10.25.8.68/fog/ consoleblank=0 rootfstype=ext4 storage=10.25.8.68:/images/ storageip=10.25.8.68 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=127000 web=http://10.25.8.68/fog/ consoleblank=0 rootfstype=ext4 storage=10.25.8.68:/images/ storageip=10.25.8.68 loglevel=4 mode=sysinfo imgfetch init_32.xz boot || goto MENU :bootme chain -ar http://10.25.8.68/fog/service/ipxe/boot.php##params || goto MENU autoboot
-
@Andrew-Seals It looks like your bios exit mode is “exit” not sanboot.
Here is your exit mode:
choose --default fog.local --timeout 5000 target && goto ${target} :fog.local exit || goto MENU
If you look at my exit mode:
choose --default fog.local --timeout 5000 target && goto ${target} :fog.local cpuid --ext 29 && set boot-kernel refind.efi || set boot-kernel refind32.efi imgfetch ${boot-url}/service/ipxe/refind.conf chain -ar ${boot-url}/service/ipxe/${boot-kernel} || goto MENU
Edit
I was testing something on my dev server here is the correct exit mode for bios (SANBOOT). I had everything exiting to refind.choose --default fog.local --timeout 5000 target && goto ${target} :fog.local sanboot --no-describe --drive 0x80 || goto MENU
-
@george1421 I went into Fog System Settings -> Fog Boot Settings and changed it to SAN Boot. Now the machine is sitting at: “Booting from SAN device 0x80”
-
@Andrew-Seals Well that’s strange. It works correctly on FOG 1.4.4? What do you get when you key in the same url to your 1.4.4 environment. It would be interesting to know what exit mode you have there.
http://<fog_server_ip>/fog/service/ipxe/boot.php?mac=<mac_address_of_vm>
-
@george1421 Changed it to GRUB_FIRST_HDD. It is now working on the Hyper V virtual. Let me see what it does on the other physical machine that was giving me issues.
-
@Andrew-Seals Sanboot should work by default, you may have to use grub for hyper-v but almost always sanboot works and should be default for bios. For uefi exit it should be rEFInd.
-
@george1421 I changed EFI to rEFInd. I changed legacy to the GRUB_FIRST_HDD. So far every machine I have found is working! Thanks for the help. My Bootfile Name on the DHCP server is set to: undionly.kkpxe. I have seen others who use undionly.kpxe. Should I just leave it since it is working?
-
@Andrew-Seals The standards for the ipxe boot loaders are:
BIOS: undionly.kpxe (kkpxe only if you have problems with kpxe.
UEFI: ipxe.efi (or sndonly.efi if you have problems iwht ipxe.efi)If your environment has to support both uefi and bios systems and you have a Windows 2012 or newer dhcp server or a linux dhcp server you can setup dynamic boot file assignment by following here: https://wiki.fogproject.org/wiki/index.php/BIOS_and_UEFI_Co-Existence