Daniel Feenberg
2010-Oct-01 20:13 UTC
[syslinux] Network booting FreeBSD with gpxelinx almost works
>On Mon, Sep 27, 2010 at 16:27, Gene Cumm <gene.cumm at gmail.com> wrote:>> On Sun, Sep 26, 2010 at 11:50, Daniel Feenberg <feenberg at nber.org> wrote:>>> We have been network booting FreeBSD for some time with pxeboot. But now we >>> would like to have menu of OSs to boot and got the idea somewhere that >>> gpxelinux could do that for us. We copied gpxelinux.0 from the syslinux-4.02 >>> distribution and replaced pxeboot with "gpxelinux" in the dhcpd.conf file. >>> Indeed with a configuration file in pxelinux.cfg like this: >>> >>> default freebsd >>> label freebsd >>> PXE pxeboot >>> >>> and the root path still specified as a DHCP option, FreeBSD 8.1 does boot. >>> If I replace the first line with: >>> >>> UI menu.c32 >>> >>> the client does display the menu but if one hits return to select the single >>> item offered the client merely hangs for a minute, then announces "boot >>> failure". I am guessing that once the UI is interposed, somehow the root >>> path isn't getting transmitted to pxeboot. All the other gpxelinux boot >>> kernels seem to expect the information about the root filesystem to be >>> specified in the pxelinux.cfg file, rather than in dhcpd.conf. Does anyone >>> have experience with this? The various web posting I have found linking >>> FreeBSD to gpxelinux are about installations from ISO files over the net. >> >> This sounds like it's an issue specific to menu.c32 and the kernel >> type PXE. Have you tried creating a copy of pxeboot as pxeboot.0?It turns out it isn't just menu.c32, as any time there is more than one boot choice the problem will occur, even without menu.c32.>> If, somehow, menu.c32 is messing up and using the file extension as >> the kernel type or not passing the kernel type parameter properly, >> this might be an interim solution until another solution is found. > >> On Mon, Sep 27, 2010 at 17:12, Ferenc Wagner <wferi at niif.hu> wrote:>> Does this message come from pxeboot?I don't know - does either pxeboot or gpxelinux preface error messages with an indication of the program responsible? It is the first text after choosing the menu item.>> Just an idea: can you try with pxelinux.0 instead of gpxelinux.0?Just tried it, and yes it works with pxelinux. Thank you! Probably we will just switch to using pxelinux, and forget about gpxelinux, but gpxelinux does have some advantages so it is a pity it doesn't work for us.>I just tested with both pxelinux.0 and gpxelinux.0 from 4.02 to load a >PXE file pxeboot (Syslinux-4.01 pxelinux.0 renamed) with and withoutNot sure what you mean here. If you renamed pxelinux.0 to pxeboot then I am not surprised that pxelinux.0 ran, but how does that help me boot FreeBSD? Or did you mean something else? FreeBSD has its own bootloader, called "BTX Loader 1.0" but with the filename "pxeboot", and not the same as pxelinux, right?> menu.c32 with everything working with an identical config when using > the boot file option of "/pxelinux.0", "pxelinux.0", or "2/pxelinux.0" > (another copy of some stuff in a new directory to test a prefix > theory).Since my first posting I have discovered that the mere presence in the configuration file of 2 choices will cause gpxelinux to fail at selection even without the menu statement. For example, with the configuration file: default freebsd label freebsd PXE pxeboot8 will boot FreeBSD correctly but the following does NOT work: default freebsd SAY This is a test label freebsd PXE pxeboot8 label other kernel foo It prints "This is a test" and hangs. This is with dhcp config specifying root-path, like so: next-server 66.251.72.1; filename "gpxelinux.0"; option root-path "66.251.72.44:/vol/vol1c/FreeBSD-8.1-root"; Again, changing gpxelinux to pxelinux does cure the problem. I have to apologize for posting this in a way that breaks threading, but the replies never got to my mailbox, and I had to synthesize this message from the syslinux archive. Thanks to all Daniel Feenberg (with assistance from Alex Aminoff) NBER