[syslinux] Issue with pxe chainloading and grub2

Anna Pereira annazpereira at gmail.com
Wed Sep 19 12:05:17 PDT 2012


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



More information about the Syslinux mailing list