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:
Trying to mount root from ufs:/dev/ads1a
Trying to mount root from nfs:
sis0: link state changed to UP
Interface sis0 IP-address Broadcast

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   
> # $File: clone_root 2006-02-27 18:33 +0100 root at beastie.vanhoecke.org $
< 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"
< 	(cd / ; tar -clf - ${TOCOPY} ) | (cd $DEST; tar xvf - )
> 	#(cd / ; tar -clf - ${TOCOPY} ) | (cd $DEST; tar xvf - )
>         (cd / ; find -d ${TOCOPY} | cpio -pudm $DEST)
< 	(cd / ; tar clf - conf ) | (cd ${DEST}; tar xvf - )
> 	#(cd / ; tar clf - conf ) | (cd ${DEST}; tar xvf - )
>         (cd / ; find -d conf | cpio -pudm $DEST)
< 	(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
> # $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...


More information about the freebsd-questions mailing list