Re: 5.3Beta7: creating linker.hints for diskless boot; how?

From: Brooks Davis <brooks_at_one-eyed-alien.net>
Date: Thu, 14 Oct 2004 07:48:38 -0700
On Wed, Oct 13, 2004 at 10:58:31PM -0700, spam maps wrote:
> 
> Hello,
> 
> I have diskless bootup working for 4.X systems.
> So I am familiar with the settings for 4.X.
> 
> I'm now trying to get diskless bootup set up with
> 5.3-Beta7. I'm getting as far as the loading
> of the kernel via tftp by the diskless PC.
> When the kernel is loaded, there's a "....[done]"
> and then the diskless PC is waiting for ever.
> 
> So I have still forgotten something, probably
> a typical 5.X issue.
> 
> One could be that I forgot to copy the linker.hints
> file, when generating the boot/kernel directory on
> the master PC (I only copied the *.ko files and
> the kernel).
> 
> What am I supposed to do with that file. I have no
> idea what linker.hints is for. Should I let the
> diskless PC generate it each time at bootup?
> If so, how? If not, can I copy this file from the
> master PC (is this file different for each system?)

kldxref(8) in what you're looking for.

I personally recommend creating diskless roots by using install targets
rather then copying files around by hand.  For instance the following is
a script I use to create roots for testing (the ports stuff isn't
necessicary of course, but I included it because it's somewhat
intresting and some of the issues are non-obvious):

---<cut>---
#!/bin/sh

src=/usr/home/brooks/aero-p4/fellowship/roots/freebsd/5.2-CURRENT
dest=/usr/diskless/5.2-CURRENT.deptest
kernconf=NODE
ports=/usr/ports

# Rebuild the source
#cd ${src}
#make buildworld
#make buildkernel KERNCONF=${kernconf}

# delete the old setup
#rm -rf ${dest}
#chflags -R noschg ${dest}
#rm -rf ${dest}

# install a new world
cd ${src}
mkdir -p ${dest}
make DESTDIR=${dest} installworld
cd etc
make DESTDIR=${dest} distribution
cd ..
make DESTDIR=${dest} KERNCONF=${kernconf} installkernel

# install a copy of ports
# This copy of ports is assumed to be up to date with a correct INDEX.db file.
cp /etc/resolv.conf ${dest}/etc/resolv.conf
mount_devfs devfs ${dest}/dev

#cpdup -i0 -vv /usr/ports ${dest}/usr/ports
mkdir -p ${dest}/usr/ports/
rsync -av --delete --exclude=CVS /usr/ports/ ${dest}/usr/ports/
if [ ! -d ${dest}/var/db/pkg/portupgrade-* ]; then
        chroot ${dest} pkg_add -r portupgrade
fi
#chroot ${dest} portupgrade -a
chroot ${dest} portinstall -M BATCH=yes ganglia-monitor-core sge diskmark diskprep mail/postfix
mkdir -p ${dest}/usr/local/sge/default
/bin/ln -fs /usr/local/sge/default/common/rcsge
/usr/local/etc/rc.d/sge.sh

umount  ${dest}/dev
rm ${dest}/etc/resolv.conf
---<cut>---

-- Brooks

-- 
Any statement of the form "X is the one, true Y" is FALSE.
PGP fingerprint 655D 519C 26A7 82E7 2529  9BF0 5D8E 8BE9 F238 1AD4

Received on Thu Oct 14 2004 - 12:47:40 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:17 UTC