<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Message: 1<br>
Date: Tue, 11 Sep 2012 16:28:08 +0200<br>
From: Pereira <<a href="mailto:pereira@informatik.uni-freiburg.de">pereira@informatik.uni-freiburg.de</a>><br>
To: <a href="mailto:ipxe-devel@lists.ipxe.org">ipxe-devel@lists.ipxe.org</a><br>
Subject: [ipxe-devel] Chain loading ipxelinux from pxelinux<br>
Message-ID: <<a href="mailto:504F4A78.1060401@informatik.uni-freiburg.de">504F4A78.1060401@informatik.uni-freiburg.de</a>><br>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed<br>
<br>
Hi,<br>
<br>
I have a question regarding chain loading ipxelinux from within pxelinux.<br>
We are trying to integrate IPXE into our network boot environment due to<br>
the benefit from faster data transmission rates with the featured http<br>
functionality. So far our TFTP server hands out ipxelinux.0 with the embedded pxelinux<br>
to the clients upon boot and DHCP request. It is possible to load system<br>
files over HTTP and even chain load to other pxelinux bootloaders with<br>
the <a href="http://chainloader.com" target="_blank">chainloader.com</a> module.<br>
<br>
Particularly what is not working is chain loading from ipxelinux to<br>
ipxelinux; and chain loading from pxelinux to ipxelinux.<br>
The machines just reboot without any further message.<br>
<br>
The problem is that other departments point to our bootloader so we are<br>
required to have a solution that takes a minimum amount of changes,<br>
especially to the existing bootmenu entries from other departments. So<br>
the basic idea was to simply replace pxelinux with ipxelinux on our servers.<br>
<br>
Any debugging tips or hints would be greatly appreciated!<br>
<br>
Best regards,<br>
Michael<br></blockquote><div><br></div><div>Why would you want to "chain load ipxelinux to ipxelinux" when you could simply execute any number of ipxe scripts and script commands and options from within ipxe? Are talking about flipping back and forth between pxelinux and ipxe?</div>
<div><br></div><div>Chain loading iPXE from within pxelinux is fairly trivial; e.g., you can load it like so:</div><div><br></div><div><div>LABEL ipxe</div><div> KERNEL ipxe.lkrn</div></div><div><br></div><div>Chainloading pxelinux from iPXE I believe is just a matter of something like:</div>
<div><br></div><div>#!ipxe</div><div>chain pxelinux.0</div><div><br></div><div>... where pxelinux.0 is somewhere on your HTTP server, relative to the path of the ipxe script you just called; i.e., if you called it like <a href="http://mywebserver/myipxe/boot.ipxe">http://mywebserver/myipxe/boot.ipxe</a> ... then the pxelinux.0 file should be in /myipxe relative to your document root for the virtualhost or default host. </div>
<div><br></div><div>I would probably use the "imgfree" option in your ipxe script(s) after you've loaded pxelinux and come to ipxe (assuming you do that) just to confirm it's not in-memory; e.g.,</div><div>
<br></div><div>#!ipxe</div><div>imgfree pxelinux.0</div><div>initrd <a href="http://mywebserver/centos/6.3/x86_64/initrd.gz">http://mywebserver/centos/6.3/x86_64/initrd.gz</a></div><div>chain <a href="http://mywebserver/centos/6.3/x86_64/vmlinuz">http://mywebserver/centos/6.3/x86_64/vmlinuz</a></div>
<div><br></div><div>... and long-term I would most definitely look at the internal menu code that is now a part of the latest ipxe build. It is much much better than using the old COM32 menu module from pxelinux. Robin's super-awesome mega-example of using the menu is here:</div>
<div><br></div><div><a href="https://gist.github.com/2234639">https://gist.github.com/2234639</a>
</div><div><br></div><div><br></div><div><br></div><div> </div></div>