Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 Jun 2000 08:35:48 -0600 (MDT)
From:      Fred Clift <fred@veriohosting.com>
To:        Chris Webb <chris@arachsys.com>
Cc:        questions@FreeBSD.ORG
Subject:   Re: PXE Booting?
Message-ID:  <Pine.BSF.4.21.0006090818440.33405-100000@vespa.orem.iserver.com>
In-Reply-To: <20000609131551.A39557@miranda.arachsys.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 9 Jun 2000, Chris Webb wrote:

> I have a diskless box I'm trying to boot by PXE. I've configured a
> dhcpd, and I've got the loader loading by tftp and then the kernel
> booting by NFS fine. I'm having a little trouble persuading the kernel
> to mount the root filesystem, though. My dhcpd.conf says:
...
> What am I doing wrong here? Can I set some parameter in the loader that
> tells the kernel which server and filesystem to mount, so it doesn't


Unfortunately, I dont know the answer to your question, but I have an
alternate work-around for you.  Use an MFS file system in your kernel.

You can build a 'minimal' root filesystem image (cut and paste from a
script I made, with some lite editing to clarify)

        vnconfig /dev/vn0c rootfs
        mount /dev/vn0c /mnt
        rm -rf /mnt/* 
        (cd rootsrc; tar -cf - .) | (cd /mnt; tar -xf -)
        umount /mnt 
        fsck -y /dev/vn0c
        vnconfig -u /dev/vn0c

Where 'rootfs' is a 16 meg ufs file system image, and rootsrc is a
directory hierarchy that is a stripped down root file system.

Once I have this 'minimal' file-system, I do this

   write_mfs_in_kernel -f kernel rootfs

where kernel is a fairly stripped down kernel, but compiled with 16 Meg
MFS_ROOT hole in it.  

for kernels <=3.4 you want something like

options         MFS                     #Memory Filesystem
options         MFS_ROOT                #MFS usable as root device,
options            MFS_ROOT_SIZE=10     #size in kB

and for 4.0+ you want something like 
options         MD_ROOT                 #MD is a potential root device
options         MD_ROOT_SIZE=15360      # 15*1024 K -- ie 15 meg


in your kernel config.

Then, when you boot it over the network, it will make a ram disk and mount
the file-system image as your root drive.  Then you can mount /usr from
somewhere else in your rc scripts, or just not use a /usr if you want a
stripped down os.

We do this to do seim-unattended installs.  A small kernel/rootfs boots
(not using PXE, but it _should_... sigh) over the network, mounts up it's
rootfs, runs a small program that figures out all the hardware, configs
the disks (labels, vinum, etc) and then unpacks an NFS mounted root and
usr image onto the right partitions and reboots.

If you have specific questions about this and you still can't get your PXE
booting to work right, drop me a line.

--
Fred Clift - fred@veriohosting.com -- Remember: If brute 
force doesn't work, you're just not using enough.



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0006090818440.33405-100000>