pxeboot and /boot filesystem, share /boot/kernel
Bernd Walter
ticso at cicely12.cicely.de
Sun Jul 1 19:54:29 UTC 2007
On Sun, Jul 01, 2007 at 02:13:34PM -0400, Martin Cracauer wrote:
> I want to tighten up my spaces for diskless machines and I came across
> this puzzle with pxeboot:
>
> I can share /usr and most other filesystems, but my individual roots
> for the machine each have to have the full kernel. But /boot/kernel
> is rather large these days and totally identical, so I'd rather share
> it.
>
> %%
>
> You can only specify a root filesystem location via the dhcp options.
> Then, whatever kernel is there in location:/boot/kernel (or rather,
> loader.rc) will be booted, which will then pick up the / filesystem
> via location:/etc/fstab.
>
> This is not quite what I want, because I want /boot/kernel to be
> shared, purely for filesize reasons. But I can't specify a separate
> /boot filesystem. I can't find an easy way to share /boot but not
> share /.
>
> Or in other words, the core of the problem is that I want to share
> /boot/kernel but not share /etc/fstab.
>
> %%
>
> So, while writing this mail it occured to me that what I can do is put
> a /boot/loader.rc on the individual / filesystems that then redirects
> to a common kernel location. But I don't see how I can make this work
> as I do not have the option to point to a new NFS mount in
> /boot/loader.conf, or do I?
>
> So what I would want is (on the server):
> /diskless-usr/
> /diskless-kernel/ [has /boot/kernel/ in it]
> /diskless/root1/ [has /boot/loader.conf in it]
> /diskless/root2/
>
> DHCP "root-path" is then addr:/diskless/root1
>
> Where
> /diskless/root1/boot/loader.conf
> specifies
> addr:/diskless-kernel/boot/kernel/kernel
> instead of just a filename.
>
> Now, the question is how do I make loader.4th able to mount NFS or use
> tftp?
>
> %%
>
> I think I have three paths to go here:
>
> 1) make pxeboot understand a separate "boot-path" dhcp option.
>
> 2) make loader.4th able to use NFS or tftp. IP is already up by the
> time it is started.
>
> 3) only share /boot/kernel/kernel and share a NFS mount for the
> modules, but that's very messy.
4) Use different / on the same server filesystem with hardlinked /boot.
5) Use two / - one common for booting and a client specific.
loader.rc in common will overwrite rootfs.
But I'm unshure if you can get host specific data, e.g. MAC from net
interface.
6) Don't install *.symbols and live with multiple file space usage for
the rest.
--
B.Walter http://www.bwct.de http://www.fizon.de
bernd at bwct.de info at bwct.de support at fizon.de
More information about the freebsd-hackers
mailing list