Modifying Boot Menu
-
@mbarker Well I can say you jumped right into a complex issue where you don’t have access to the dhcp server and are trying proxy dhcp.
Just browsing through the dnsmasq log everything looks great. Default ipxe should be the product. The results should be the fog iPXE menu from this. The undionly.kpxe is the iPXE kernel that gets loaded onto the target computer. What you should see from there should be the fog ipxe menu.
-
@george1421 said in Modifying Boot Menu:
Now when you select a iPXE menu item it then “should” transfer the bzImage (kernel) and init.zx (the virtual hard drive) to the target computer. That error message you posted is the kernel not understanding the format of the virtual hard drive.
You have to understand that imaging with FOG is a complex dance between 4 different technologies and you went to hard mode right away. This does work we just need to identify what happened.
edit: The bzImage and init.zx are the 64 bit images and bzImage32 and init32.xz are the 32 bit images they are a match pair. If somehow these pairings got messed up it would create the error you posted too.
-
@george1421
Oh don’t I know it -_- The trouble is the client wanted to spend as LITTLE money as possible on this (saves about $250-300 a month in courier costs…), and since they felt this was more important than me upgrading their Active Directory to something…I dunno…supported…I’m stuck dealing with hopping into a hard situation (cause…it can never be easy, where would the fun be if it was all easy? :P)I tried with both the 32 bit and the 64 bit version of bzImage/init.zx and the same error still comes up. I wasn’t getting it on the previous version of fog, then again I think I was sending it pxelinux.0 as the boot kernel. I’m just not sure where to go with this one (I’ve done plenty of PXE boot situations…back in the popular Norton Ghost days lol
edit: I do have access to the DHCP server, I just can’t use it because of the way the last IT guy setup the network
-
@mbarker said in Modifying Boot Menu:
I tried with both the 32 bit and the 64 bit version of bzImage/init.zx and the same error still comes up.
This concerns and confuses me a bit. You should not have to mess with these files. I’m going to recommend that you go back to the 1.3.0 files that you downloaded and rerun the bin/installfog.sh install script again to resync everything.
Also please post your config file from dnsmasq, again the only time I’ve see this get messed up is when the kernel doesn’t match the vhd file or pxelinux.0 or an old version of iPXE is being used.
And your symbolic links are to the current ipxe files of undionly.kpxe and ipxe.efi? The dnsmasq program always tags a .0 (dot zero) on the end.
-
I didn’t actually do much on the Fog 1.3.0 side of things other than hide a few menu items…so the config there shouldn’t be anything there that would have gotten out of sync…
Here’s my dnsmasq config:
# Don't function as a DNS server: port=0 # Log lots of extra information about DHCP transactions. log-dhcp # Dnsmasq can also function as a TFTP server. You may uninstall # tftpd-hpa if you like, and uncomment the next line: # enable-tftp # Set the root directory for files available via FTP. tftp-root=/tftpboot # The boot filename. #dhcp-boot=undionly.kpxe.0 dhcp-boot=pxelinux.0 # rootpath option, for NFS dhcp-option=17,/images # kill multicast dhcp-option=vendor:PXEClient,6,2b # Disable re-use of the DHCP servername and filename fields as extra # option space. That's to avoid confusing some old or broken DHCP clients. dhcp-no-override # PXE menu. The first part is the text displayed to the user. The second is the timeout, in seconds. pxe-prompt="Press F8 for boot menu", 0 # The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86, # Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI # This option is first and will be the default if there is no input from the user. pxe-service=X86PC, "Boot from network", pxelinux # A boot service type of 0 is special, and will abort the # net boot procedure and continue booting from local media. pxe-service=X86PC, "Boot from local hard disk", 0 dhcp-range=10.84.52.180,proxy
There’s not much in it just what is needed to be honest. I’m really at a loss here, the bzImage and init.xz from fog 1.2 worked perfectly fine, it’s only on 1.3 RC10 that I ran into this problem…
-
@mbarker dude, I said not to use pxelinux.0
Is this what you created the sym links to?
I have some paperwork (sorry real job) to take care of but I’ll be back soon to dig a bit deeper.
-
I wrote a tutorial a while ago about my experience with dnsmasq. I did not follow the one from the official fog wiki page but arrived at a working solution. In my case I did this with my home kit using my home firewall as the dhcp server and the fog server running dnsmasq. https://forums.fogproject.org/topic/6376/install-dnsmasq-on-centos-7
The efi section of my dnsmasq config file will only work if you are running the lastest dnsmasq.Since then the dnsmasq group (not FOG) made upgrades to dnsmasq so that dnsmasq will deliver the proper boot file (undionly/ipxe.efi) depending on the computer asking for dhcp proxy info. This version of dnsmasq hasn’t made it into the linux distribution chains just yet. But right now you need to walk before you run.
-
LOL oops that was after I saved it to try something…the symlink is to:
lrwxrwxrwx 1 root root 13 Sep 15 11:31 undionly.kpxe.0 -> undionly.kpxe
from dnsmasq conf (proper):
# Don't function as a DNS server: port=0 # Log lots of extra information about DHCP transactions. log-dhcp # Dnsmasq can also function as a TFTP server. You may uninstall # tftpd-hpa if you like, and uncomment the next line: # enable-tftp # Set the root directory for files available via FTP. tftp-root=/tftpboot # The boot filename. dhcp-boot=undionly.kpxe.0 # rootpath option, for NFS dhcp-option=17,/images # kill multicast dhcp-option=vendor:PXEClient,6,2b # Disable re-use of the DHCP servername and filename fields as extra # option space. That's to avoid confusing some old or broken DHCP clients. dhcp-no-override # PXE menu. The first part is the text displayed to the user. The second is the timeout, in seconds. pxe-prompt="Press F8 for boot menu", 0 # The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86, # Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI # This option is first and will be the default if there is no input from the user. pxe-service=X86PC, "Boot from network", pxelinux # A boot service type of 0 is special, and will abort the # net boot procedure and continue booting from local media. pxe-service=X86PC, "Boot from local hard disk", 0 dhcp-range=10.84.52.180,proxy
Sorry I saved the pxelinux line to test something out…and it failed, I wonder if it’s these particular versions of the init and bzimage files? perhaps it doesn’t jive with an older system - I’m gonna try another machine hang on
edit: I get the real job stuff too, I’m stick handling this and trying to sort out some Microsoft Licensing at the same time as I’m trying to fix a Wordpress install LOL
-
@mbarker Yeah, I would review my config file when you have a chance, but this line jumped out at me right way.
dhcp-boot=undionly.kpxe,,<fog_server_IP>
The fog server IP address should appear twice in your config file, you missed this one.
-
I was literally just adding that into my config right now hold tight (it probably will solve the TFTP server IP prompt too :))
-
Still Kernel panic but no more prompt for a TFTP Server IP so one thing fixed lol
When the system loads past the menu I get
bzImage…ok
init.xz…okand then this is where the Kernel Panic happens…it just makes no sense to me
I have my dnsmasq almost identical to your .conf file (I’m on CentOS 6.8…)
Think I should try copying the known working bzimage and xint.xz files and see if that helps?
-
@mbarker Ok the next step is to ensure that we have the proper boot kernels.
https://fogproject.org/inits/init.xz
https://fogproject.org/inits/init_32.xz
https://fogproject.org/kernels/bzImage
https://fogproject.org/kernels/bzImage32These links will download the latest (current) kernel and inits. They go in /var/www/html/fog/service/ipxe
Also when ipxe loads there is a version number and a hex number in parentheses, what is that hex number.
Just for clarity what device are you trying to pxe boot into fog? Is it configured for uefi or bios (legacy) mode?
I feel you have the dnsmasq part setup right now so we can rule that out as long as you have your links correct as I have defined them in the tutorial.
-
@george1421
Hey I didn’t run away, just had a conference call to do…the device is a Lenovo T420 laptop with an Intel Series Ethernet Controller (I can’t recall the exact info on it).When i re-loaded the images that you linked now I’m getting a kernel panic before the menu loads…same panic, earlier in the boot sequence.
Since I didn’t change anything for the “mode” I’m assuming it’s Legacy mode…
The TFTP service serves out the boot.php file but then it hangs, tries to get init.xz and bzImage, then throws a Kernel Panic at me -_-
-
@mbarker where is it loading the init from?
Where is it loading the kernel from? Is something passing pxelimux instead of the ipxe files?
-
@Tom-Elliott
It’s loading them from /var/www/html/fog/service/ipxe/Now what’s weird is unregistered hosts get to the menu OK but a registered host doesn’t …however still have the same Kernel Panic I did before…so frustrating lol
edit: figured this out by renaming init.xz, now when I try to get to anything from the menu it fails chainloading that file instead of the Kernel Panic (init.xz IS in my /tftpboot/ folder, but isn’t referenced in any config files to boot from there
-
That’s the issue.
The init’s and kernels should NOT be loading from tftpboot at all.
-
@mbarker Even before Tom posted, my intuition is telling me your FOG install is botched/been tweaked a little too much. I can’t explain why I feel this, but I can’t escape the thought you shouldn’t be having this level of difficulty getting this to work.
My recommendation would be to rename /var/www/html/fog to fog.old and /tftpboot to /tftpboot.old and then go back to the files you downloaded for FOG in the /bin directory and rerun the fog installer. That will put everything back to a known configuration. Once the installer is done then create the two links as I mentioned in my tutorial. Then reboot your fog server. Dnsmasq will still be setup so that part (that works) should be OK.
-
Here’s the process I did with Fog 1.3:
Installed FRESH Centos, updated, installed git, wget, nano, and disabled selinux
Downloaded and installed Fog 1.3
Upgraded PHP from 5.3.3 to PHP 5.5
Created 2 Usernames
Installed and configured dnsmasq
hid a couple of menu items
created an image for the host to image to
booted into the menu, and then ran into kernel panic problems
It is NOT loading from tftpboot at all, as I mentioned it’s loading from /var/www/html/fog/service/ipxe/
Something just tells me this isn’t worth the effort at this point. I really don’t know what to say, I don’t have another full day to waste messing about with this, re-installing Fog just isn’t an option since this will be the 4th time in the last week I’ve done and always ran into problems, so sounds as though I’m looking for another solution
-
@mbarker I understand your logic and decision to look elsewhere. If you decide to circle back to the FOG Project we will be here to help.
Just for my knowledge what hardware are you running the FOG server on. It has no bearing on your results other than I’m interested in the hardware setup.
-
@mbarker
in a normal fog install, there is no init.xz in /tftpboot.
I think that maybe your install is very modified and this is causing some issues…
I know that it would be your thousandth installation, but when you got fog up and running, your effort will have been worthwhile.I was looking for other tools, they exist but are not as productive as this.