diskless - NFS root mount problem

Tim Judd tajudd at gmail.com
Sun Nov 15 21:38:04 UTC 2009


<snip all>

Please compare my working configuration to yours to check.  I found
lots of odd problems in your post and I thought it'd be best to just
run with this clean slate.

Network config:
  One low-power PC Engines ALIX board running as the NFS server, with
a microdrive partitioned off for it's own system, plus a separate
mounted partition for diskless clients.  This config works best with
one diskless client, and is not the documented way from FreeBSD
handbook to accomplish diskless workstations.  I'll note what I
immediately saw as an error in your config during these snippets.

alix# bsdlabel /dev/ad0s1
# /dev/ad0s1:
8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  a:  1048576       16    4.2BSD     2048 16384     8
  c: 12000177        0    unused        0     0         # "raw" part, don't edit
  h: 10951585  1048592    4.2BSD     2048 16384 28552

alix# cat /etc/fstab
/dev/ad0s1a             /               ufs     rw              0 0
/dev/ad0s1h             /diskless       ufs     rw              0 0

alix# cat /etc/exports
/diskless       -maproot=0:0    -network 192.168.0.0 -mask 255.255.255.0

*** maproot needs a user and group definition.

alix# cat /etc/rc.conf
rpcbind_enable="YES"
nfs_server_enable="YES"
rpc_statd_enable="YES"
rpc_lockd_enable="YES"

*** rpc_lockd provides file locking, rpc_lockd depends on rpc_statd


************** Diskless side

*** I believe the root filesystem information is passed on from dhcp,
to pxeboot, to the kernel, in order to mount the root filesystem.  You
can have a 0-size fstab file for read-write access, or provide the
read-only nfs root here.  If you want it read only, it's best to
specify it here, such as below

alix# cat /diskless/etc/fstab
192.168.0.1:/diskless / nfs ro 0 0

alix# cat /diskless/etc/rc.conf
rpcbind_enable="YES"
nfs_client_enable="YES"
rpc_statd_enable="YES"
rpc_lockd_enable="YES"

*** File locking needed lockd/statd support on the client, also.
Think of editing /etc/passwd (the proper way) when you need file
locking.




This will result in a basic, 1-workstation diskless setup working.
The difference is that the FreeBSD rc startup looks for a /conf
directory which can provide multiple overrides to multiple
workstations.  I tried setting up a livecd with a /conf directory only
to find that the /conf is checked, no matter which medium it's booting
off of.

This config does NOT cover the DHCP scope, TFTP, IPs or other settings
that might be pertinent to booting diskless-ly.

Note that by sharing your exact / filesystem as an export is a bad
idea.  It will essentially create a NFS server on a NFS server round
robin and probably won't connect.  It's why you setup a separate
partition (EVEN if it's a file-backed filesystem mounted with the help
of mdconfig on a separate mountpoint on your filesystem).

Once you revise your config, please try again.


--Tim


More information about the freebsd-questions mailing list