Hello everyone, I am trying to chainload grub2 using both pxechain.com and pxechn.c32 and in both cases once grub2 loads it fails to find the grub config file on the server. My setup is as follows: 1. DHCP (192.168.1.2) server points to a multi pxe server menu on itself. The entry in the dhcp config file is: *class "installerator-pxeclients" { match if substring (option vendor-class-identifier, 0, 9) = "PXEClient"; option vendor-class-identifier "PXEClient"; vendor-option-space PXE; if exists dhcp-parameter-request-list { option dhcp-parameter-request-list = concat(option dhcp-parameter-request-list,d0,d1,d2,d3); } option PXE.discovery-control 10; next-server 192.168.1.2; filename "pxe/pxelinux.0"; }* 2. The /tftpboot directory structure on the dhcp server is as follows: * /tftpboot . |-pxe |---pxechain.com |---menu.c32 |---pxechn.c32 |---pxelinux.0 |---pxelinux.cfg |-----default* The contents of default are: *default menu.c32 prompt 0 timeout 0 menu title Select an OS install server label Server1-pxechain.com menu label Server1-pxechain.com kernel pxechain.com append 192.168.1.1::pxelinux.0 label Server1-pxechn.c32 menu label Server1-pxechn.c32 COM32 pxechn.32 append 192.168.1.1::pxelinux.0* 3. On selecting either of the above entries, it correctly takes you to Server1. tftp directory on Server 1: * /tftpboot . **** |-**pxelinux.0* * |-pxelinux.cfg |---default |---default.F1 |-os_build ** |---boot |-----grub |-------pxegrub2.0 ** |---grub.cfg* |--platform * *Content of default is: display pxelinux.cfg/default.F1 prompt 1 label dev_build kernel os_build/boot/grub/pxegrub2.0 Content of default.F1 Server1 PXE Install dev_build - Development Build 4.But on selecting the entry '*dev_build*' , pxegrub2.0 does get loaded, since I get the "Welcome to GRUB2" screen but then it fails to find grub.cfg. It looks like pxe is searching for grub.cfg not on Server1 (192.168.1.1) but on the dhcp server (192.168.1.2), because when I place grub.cfg in the dhcp tftp directory, it is picked up and loaded. Also instead of the DHCP server pointing to the multi pxe server menu on itself, if it is made to point to Server 1 (i.e next-server 192.168.1.1 ; in the dhcp config file), then grub.cfg gets loaded correctly.* *So it looks like chain loading from 192.168.1.2 to 192.168.1.1 somehow causes look-up of grub.cfg on the wrong server. This setup has no issues when using legacy GRUB. I am using pxechain.com from syslinux-4.05 and pxechn.c32 from the syslinux git repository. Are there any known issues with grub2 and pxe chainloading? Any pointers on how I could debug this further would be helpful. Thank you for your consideration!!! --Anna
On Sep 19, 2012 3:09 PM, "Anna Pereira" <annazpereira at gmail.com> wrote: Thanks for the very clear and detailed explanation of your setp. Snipping for now but may return to it if needed.> 4.But on selecting the entry '*dev_build*' , pxegrub2.0 does get loaded, > since I get the "Welcome to GRUB2" screen but then it fails to find > grub.cfg. > > It looks like pxe is searching for grub.cfg not on Server1 (192.168.1.1) > but on the dhcp server (192.168.1.2), because when I place grub.cfg in the > dhcp tftp directory, it is picked up and loaded. > Also instead of the DHCP server pointing to the multi pxe server menu on > itself, if it is made to point to Server 1 (i.e next-server 192.168.1.1 ; > in the dhcp config file), then grub.cfg gets loaded correctly.* *So it > looks like chain loading from 192.168.1.2 to 192.168.1.1 somehow causes > look-up of grub.cfg on the wrong server. > This setup has no issues when using legacy GRUB.Is gPXE/iPXE involed? Tried a packet capture to see if pxegrub2.0 is doing any DHCP (on the DHCP server could suffice but on a mirrored switchport capturing the client's traffic is best)? Which git commit (first 6-8 digits will suffice)? Tried using the precompiled binaries in 4.06-pre11? Tried the -W (uppercase) option yet?> I am using pxechain.com from syslinux-4.05 and pxechn.c32 from thesyslinux> git repository. Are there any known issues with grub2 and pxechainloading? Grub2 specifically? I haven't heard any. Others? Absolutely. Microsoft Windows Server 2008R2 Windows Deployment Services are why I wrote pxechn.c32. --Gene
On Wed, Sep 19, 2012 at 5:07 PM, Gene Cumm <gene.cumm at gmail.com> wrote:> On Wed, Sep 19, 2012 at 7:16 PM, Anna Pereira <annazpereira at gmail.com> > wrote: > > Hi Gene, > > > > Thank you for replying and having the patience to go thorugh my long > mail!!! > > No problem. > > > There is no gPXE/iPXE invloved. A tcpdump on the dhcp server reveals no > > DHCP requests from pxegrub2.0. The git commit I used was 0a0e0e41ca and > now > > I have also tried 4.06-pre11. Finally what did the trick was the "-W" > > option. I did read in the doc that this is a Windows specific option but > it > > seems to have worked with my Solaris 11 grub2 image. Now I get to the > > point where grub.cfg is correctly located on Server1 and now it fails > > because it cannot find the IP address of the repository where > solaris.zlib > > is located (this looks more like a Solaris issue that I probably need to > > spend some time figuring out). > > > > So, what does this "-W" option do?? > > Thanks for all your help again!!! > > --Anna > > Pushes all of the options from packet #3 (where we should be making > changes as an NBP) to packet #1 (the original reply from the DHCP > server). > > So pxegrub2.0 is in Solaris-11? I presume related to the OSS GRUB-2.0 > at http://www.gnu.org/software/grub/ ? > > No, GRUB2 is not currently part of Solaris11. I found a bug in GRUB2 thattalks about GRUB2 only processing DHCP ACK packets: http://lists.gnu.org/archive/html/bug-grub/2011-12/msg00026.html. Wonder if that is the reason I saw this failure in the first place. --Anna> -- > -Gene > _______________________________________________ > Syslinux mailing list > Submissions to Syslinux at zytor.com > Unsubscribe or set options at: > http://www.zytor.com/mailman/listinfo/syslinux > Please do not send private replies to mailing list traffic. > >