kern/129526: pxeboot fails to load kernel / modules

John Baldwin jhb at freebsd.org
Mon Mar 2 11:00:16 PST 2009


The following reply was made to PR kern/129526; it has been noted by GNATS.

From: John Baldwin <jhb at freebsd.org>
To: Hiroharu Tamaru <tamaru at myn.rcast.u-tokyo.ac.jp>
Cc: sobomax at freebsd.org, pjd at freebsd.org, FreeBSD-gnats-submit at freebsd.org,
        freebsd-bugs at freebsd.org
Subject: Re: kern/129526: pxeboot fails to load kernel / modules
Date: Mon, 2 Mar 2009 13:53:21 -0500

 On Saturday 13 December 2008 3:08:51 am Hiroharu Tamaru wrote:
 > At Wed, 10 Dec 2008 14:51:48 -0500,
 > John Baldwin wrote:
 > > 
 > > On Wednesday 10 December 2008 04:20:31 am Hiroharu Tamaru wrote:
 > > > Thank you, John.
 > > > 
 > > > At Tue, 9 Dec 2008 16:21:47 -0500, John Baldwin wrote:
 > > > >
 > > > > On Tuesday 09 December 2008 12:54:06 pm Hiroharu Tamaru wrote:
 > > > (snip)
 > > > > > It turns out that replacing the pxeboot binary served by tftp
 > > > > > to pxeboot in 6.4-RELEASE-i386-bootonly.iso allows the installer
 > > > > > to boot properly, but pxeboot from 7.0-RELEASE also fails.
 > > > > > 
 > > > > > It then turned out that by unzipping the /boot/mfsroot.gz image
 > > > > > on the ftp server, it allows the kernel to boot, for any of the 
 > > pxeboot's
 > > > > > mentioned above.
 > > > > > 
 > > > > > Thus, it seems likely that the unzipping routines in pxeboot,
 > > > > > or more precisely, the loader included in the pxeboot,
 > > > > > is corrupting some part of the device table or such.
 > > > (snip)
 > > > > I think loader has just grown and the stack is growing into the heap.  
 > > There 
 > > > > is a loader option to move the heap up above 1 MB that you should try.
 > > > 
 > > > Indeed, it was.
 > > > 
 > > > (for the record:)
 > > > Enabling the code in sys/boot/i386/loader/main.c
 > > > that is activated by putting either of:
 > > >  LOADER_BZIP2_SUPPORT=yes
 > > >  LOADER_FIREWIRE_SUPPORT=yes
 > > >  LOADER_ZFS_SUPPORT=yes  (8.0-current only ATM)
 > > > into /etc/make.conf has solved the problem.
 > > > 
 > > > 
 > > > Current pxeboot build pulls the loader binary built for
 > > > the (non-pxe-)loader verbatim.
 > > > 
 > > > Is there a possibility that putting the heap above 1MB
 > > > might become the default in the near future? say, whenever
 > > > LOAD_NO_GZIP_SUPPORT is not set.
 > > > 
 > > > Alternatively, do you think it is worth a trouble to modifiy
 > > > the build system so that the default pxeboot has this high
 > > > heap support?
 > > > 
 > > > Or, would you think whoever setting up an pxeboot installer
 > > > should know the corners, and either unzip the mfsroot.gz or
 > > > rebuild his own pxeboot?
 > > 
 > > I think adding GPT support (which I did) probably caused the loader to 
 grow 
 > > enough in size.  Probably I should make the GPT stuff optional and enable 
 the 
 > > higher memory usage if it is enabled (but make it on by default perhaps?)
 > 
 > I agree that's quite reasonable (wrapping around GPT, and default it to on).
 > 
 > I looked into the sources, but to me, wrapping all the bits on GPT with
 > #ifdef LOADER_GPT_SUPPORT was not too trivial.
 > How trivial or non-trivial is it if I asked you for it?
 > I'll look into it again when I get another time slot if 
 > you are too busy until then.
 
 I finally did this today.  You can try 
 http://www.freebsd.org/~jhb/patches/boot_gpt.patch
 
 If you can verify it works for you I will commit it.
 
 -- 
 John Baldwin


More information about the freebsd-bugs mailing list