Diskless boot troubles
Guido Van Hoecke
guido at vanhoecke.org
Mon Feb 27 12:28:33 PST 2006
The harddisk of mdesktop machine is no longer detected by my beastie
server (both are FreeBSD RELEASE 6.0 GENERIC).
So I want to perform a diskless boot. I've come to the point where I am
successfully booting by means of pxeboot and the isc-dhcp3-server: it
loads the kernel, shows the menu, I see the normal boot messages rolling
off the screen, it detects my local cd drive and then logs the mounting of
the root file system:
....<snip>....
Trying to mount root from ufs:/dev/ads1a
Trying to mount root from nfs:
NFS ROOT: 192.168.1.10:/diskless_root
sis0: link state changed to UP
Interface sis0 IP-address 192.168.1.2 Broadcast 192.168.1.255
Mon Feb 27 20:11:30 UTC 2006
And this is where it stops. Nothing happens any more. I have no idea where
I could dig up some additional info.
Any suggestion or help would be most welcome.
BTW, I had to make some modifications to /usr/share/examples/clone_root to
create the diskless root file system.
1) The 3 'tar cvf | tar xvf constructs' caused an error messages
complaining about the differences in treatment of the -1 option between
bsd tar and gnu tar. Executing the script with -x and -v did not clarify
this situation: there is no such option used in this script; so I replaced
the tar constructs with 'find | cpio' constructs.
2) The 'TOCOPY' variable does omit the 'lib' and 'libexec' directories.
When these are absent in the diskless directory structure, the boot
process is interrupted as /bin/sh doesn't find some shared libraries. So I
added both dirs to the TOCOPY variable.
Here's the diff:
21:11:55 beastie:/usr/share/examples/diskless# diff clone_root.orig
clone_root
1a2
> # $File: clone_root 2006-02-27 18:33 +0100 root at beastie.vanhoecke.org $
80c81,82
< TOCOPY="bin boot compat etc modules sbin stand sys"
---
> #TOCOPY="bin boot compat etc modules sbin stand sys"
> TOCOPY="bin boot compat etc lib libexec modules sbin stand sys"
90c92,93
< (cd / ; tar -clf - ${TOCOPY} ) | (cd $DEST; tar xvf - )
---
> #(cd / ; tar -clf - ${TOCOPY} ) | (cd $DEST; tar xvf - )
> (cd / ; find -d ${TOCOPY} | cpio -pudm $DEST)
100c103,104
< (cd / ; tar clf - conf ) | (cd ${DEST}; tar xvf - )
---
> #(cd / ; tar clf - conf ) | (cd ${DEST}; tar xvf - )
> (cd / ; find -d conf | cpio -pudm $DEST)
102c106,110
< (cd /etc ; tar cvf - ${PWFILES} ) | (cd ${DEST}/etc ; tar xf - )
---
> #(cd /etc ; tar cvf - ${PWFILES} ) | (cd ${DEST}/etc ; tar xf - )
> for i in ${PWFILES}
> do (cd /etc ; find $i | cpio -pudm $DEST/etc)
> done
138a147
> # $File: clone_root 2006-02-27 18:33 +0100 root at beastie.vanhoecke.org $
21:12:55 beastie:/usr/share/examples/diskless#
(Forget about the 2 # $File:... lines, they are for local use only)
I am not sure whether these modifications should be officialised, so I
just submit them here to the user community for validation and/or comments.
But I'd be so happy to read any advice about how I could proceed with
diskless booting...
Guido
More information about the freebsd-questions
mailing list