The bug is in this section: if [ "${NFSROOT#:*}" = "$NFSROOT" ]; then NFSROOT=${ROOTSERVER}:${NFSROOT} fi
The :* is the wrong way around so if $NFSROOT=192.168.0.4:/ the :* pattern won't match (NFSROOT doesn't start with :) and so NFSROOT gets turned into 192.168.0.4:192.168.0.4:/ which fails to mount. Changing the pattern to *: works as (would %:*). Cheers, Tim.
52c52 < if [ "${NFSROOT#:*}" = "$NFSROOT" ]; then --- > if [ "${NFSROOT#*:}" = "$NFSROOT" ]; then