Modifying Boot Menu
-
A slight alteration on Thiago’s process (which is spot on) is in step 3 to not configure the target computer to boot through the FOG server. Have the local hard drive default and have the client just press the F12 key during booting and then pick the Network adapter as the boot device. That way FOG will only be used during image.
-
Hey everyone, thanks for the responses - I was tied up most of the time after I posted so this is the first I was able to get back to this.
2 things:
- Instead of trying to figure out if I could upgrade from 1.2 to 1.3RC10 I just created a new VM, installed CentOS 6, GIT, and installed from the GIT repo for 1.3 RC10
and
- The version of PHP installed by 1.3.0 RC10 needs upgrading away…it installed 5.3.3, minimum is 5.5 - I upgraded PHP and it was fine after that.
There are a fair number of changes to the menus in this version…as well as some of the imaging options (for the better so far - I’ve only been on it for about 10 min or so…)
I’m going to add an image to the system to make sure that’s fine and then I’ll go from there (it takes a while since it’s a larger image (compressed it’s 21 gigs…)…once I have this image and an image of the other laptop, I’ll mess about in the menus but there is a “Deploy Image” option in the menu which wasn’t there before.
The only question I have right now is…if I’m not using DHCP to set TFTP options on boot, is there any way to bypass it asking me for the TFTP Server? (Can’t use the DHCP options on my clients networks, their IP Phones use the options already, so DNSMASQ with ProxyDHCP works all the same for me…but I don’t want them to have to type in the IP of the TFTP server each time it PXE boots.
@george1421
That’s the idea anyways, I don’t want them booting off PXE unless they NEED to, so my instructions already included using the F12 option (I don’t need these people complaining that they messed up the boot order on their computer…since they have a hard time typing subdomain.domain.com sometimes…lol I don’t care if they image with the wrong image (the 2 laptop Models aren’t all that different, just a few drivers here and there are different)
I’ll update this post later on, I’m setting an image to write and then finding something to do for 2 hours…maybe I’ll play around with the Bios Mod I need to do for the one laptop model
-
@mbarker said in Modifying Boot Menu:
Are the phones and target systems in the same subnet? If they are on different subnets then you can just create different scopes for each subnet.
For your clients, what is their dhcp server? If its server 2012 there are a few more options you can use.
Lastly you can setup a usb boot option, but that adds an additional layer of complexity.
-
Currently, my customer’s network is all Server 2003 based (JOY…that’s a big upgrade project all on its own…), they’re using Mikrotik Routers for DHCP, but all of the Phones and Machines are on the same subnet - I didn’t set it up, I sort of inheritted this setup…it’s not how I’d do it at all (VLAN1 or 10 for Data, VLAN 20 or 99 for Voice, segment broadcast traffic, and give a /24 to both networks…don’t allow routing between the 2 VLANs…etc :))
Anyways, so my setup is Fog 1.3 RC10, DNSMasq for doing ProxyDHCP…I found another thread on this but the fix in there didn’t work (maybe my dnsmasq settings are wrong? or I’m having it choose the wrong image of sorts).
First I’d like to say: YAY for menu editing in the GUI! No more source file hunting
Second, whenever I choose an option (i.e. Quick Registration and Inventory), it loads up bzImage and init.xz, and then shows:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)
Kernel Offset: disabled
—[end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,)…this is an x64 system, but I can’t find in the menu setups where to change to init32.xz (if I remember the documentation correctly, that should be used on x64 systems)
Any ideas?
-
@mbarker OK so you are using FOG 1.3.0-RCx series and dnsmasq, what are you ending out for dhcp option 67? You have to remember that there are two different pxe boot kernels one for bios (legacy) and one for uefi. You need to ensure you send the right file to the target computer.
Your error almost sounds like you are either sending an old syslinux kernel or an old iPXE kernel to the target computer. You should NOT be sending pxelinux.0 to the target computer. Use undionly.kpxe or ipxe.efi
-
@mbarker said in Modifying Boot Menu:
…this is an x64 system, but I can’t find in the menu setups where to change to init32.xz (if I remember the documentation correctly, that should be used on x64 systems)
Just for clarity the iPXE menu determines what kernel to send to the target computer. You can force a specific kernel if you manually register the host, but in general the iPXE kernel will decide what the target needs and send the right FOS Engine kernel/vhd pair to the target.
-
From my dnsmasq.conf:
tried with:
dhcp-boot=undionly.kpxeand
dhcp-boot=undionly.kpxe.0I have a symbolic link created:
undionly.kpxe.0 -> undionly.kpxeHere’s the last few lines from /var/log/messages:
Sep 15 12:06:29 fog13 dnsmasq-dhcp[13087]: 2366039648 Available DHCP subnet: 10.84.52.180/255.255.255.0
Sep 15 12:06:29 fog13 dnsmasq-dhcp[13087]: 2366039648 Vendor class: PXEClient:Arch:00000:UNDI:002001
Sep 15 12:06:29 fog13 dnsmasq-dhcp[13087]: 2366039648 User class: iPXE
Sep 15 12:06:29 fog13 dnsmasq-dhcp[13087]: 2366039648 PXE(eth0) 00:21:cc:c5:5b:d9 proxy
Sep 15 12:06:29 fog13 dnsmasq-dhcp[13087]: 2366039648 tags: eth0
Sep 15 12:06:29 fog13 dnsmasq-dhcp[13087]: 2366039648 bootfile name: undionly.kpxe.0
Sep 15 12:06:29 fog13 dnsmasq-dhcp[13087]: 2366039648 sent size: 1 option: 53:message-type 02
Sep 15 12:06:29 fog13 dnsmasq-dhcp[13087]: 2366039648 sent size: 4 option: 54:server-identifier 10.84.52.180
Sep 15 12:06:29 fog13 dnsmasq-dhcp[13087]: 2366039648 sent size: 9 option: 60:vendor-class 50:58:45:43:6c:69:65:6e:74
Sep 15 12:06:29 fog13 dnsmasq-dhcp[13087]: 2366039648 sent size: 17 option: 97:client-machine-id 00:81:16:f9:e9:e4:51:cb:11:a4:a860…
Sep 15 12:06:29 fog13 dnsmasq-dhcp[13087]: 2366039648 sent size: 82 option: 43:vendor-encap 06:01:02:09:30:80:00:11:42:6f:6f:74:20…
Sep 15 12:06:29 fog13 dnsmasq-dhcp[13087]: 2366039648 Available DHCP subnet: 10.84.52.180/255.255.255.0
Sep 15 12:06:29 fog13 dnsmasq-dhcp[13087]: 2366039648 Vendor class: PXEClient:Arch:00000:UNDI:002001
Sep 15 12:06:29 fog13 dnsmasq-dhcp[13087]: 2366039648 User class: iPXE
Sep 15 12:06:29 fog13 dnsmasq-dhcp[13087]: 2366039648 PXE(eth0) 00:21:cc:c5:5b:d9 proxy
Sep 15 12:06:29 fog13 dnsmasq-dhcp[13087]: 2366039648 tags: eth0
Sep 15 12:06:29 fog13 dnsmasq-dhcp[13087]: 2366039648 bootfile name: undionly.kpxe.0
Sep 15 12:06:29 fog13 dnsmasq-dhcp[13087]: 2366039648 sent size: 1 option: 53:message-type 05
Sep 15 12:06:29 fog13 dnsmasq-dhcp[13087]: 2366039648 sent size: 4 option: 54:server-identifier 10.84.52.180
Sep 15 12:06:29 fog13 dnsmasq-dhcp[13087]: 2366039648 sent size: 9 option: 60:vendor-class 50:58:45:43:6c:69:65:6e:74
Sep 15 12:06:29 fog13 dnsmasq-dhcp[13087]: 2366039648 sent size: 17 option: 97:client-machine-id 00:81:16:f9:e9:e4:51:cb:11:a4:a860…
Sep 15 12:06:29 fog13 dnsmasq-dhcp[13087]: 2366039648 sent size: 82 option: 43:vendor-encap 06:01:02:09:30:80:00:11:42:6f:6f:74:20…
Sep 15 12:06:37 fog13 in.tftpd[13306]: Client 10.84.52.191 finished default.ipxeNot sure if default.ipxe should be the right file for it to get…I dunno I might go back to figuring out how to get my system to load WinPE and use the software they already have licensed and have used before, this is getting a little discouraging lol
-
@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 -_-