File libguestfs.mkinitrd.boot-nfs.sh of Package libguestfs.215
#!/bin/bash
#%stage: block
#%modules: nfs nfsv2 nfsv3 nfsv4
#%programs: mount.nfs mount.nfs4
#%if: "$rootfstype" = "nfs" -o "$need_nfs"
#
##### Network FileSystem
##
## This is where NFS gets mounted.
## If no root= option was given, the root device will be taken from the DHCP-server.
##
## Command line parameters
## -----------------------
##
## root=<server>:/<folder> the nfs root path
##
# Prefer NFS root setting via DHCP the fallback provided in config/*.
# So at first, consider the command line (that's why we check for "$cmd_root"
# being empty here. Then consider the DHCP setting. And finally consider the
# fallback via config/*.
if [ -n "$ROOTPATH" -a -z "$cmd_root" ] ; then
case "$ROOTPATH" in
iscsi:*)
;;
*:*)
rootfstype="nfs"
rootdev="$ROOTPATH" ;;
*)
if [ -n "$DHCPSIADDR" ]; then
rootdev="$DHCPSIADDR:$ROOTPATH"
rootfstype="nfs"
elif [ -n "$DHCPSNAME" ]; then
rootdev="$DHCPSNAME:$ROOTPATH"
rootfstype="nfs"
fi ;;
esac
if [ -n "$rootdev" ] ; then
echo >&2 "Using root device ($rootdev) provided via DHCP"
fi
fi
if [ "$rootfstype" = "nfs" ]; then
# load the nfs module before using it
load_modules
if [ -z "$rootdev" ]; then
echo "no local root= kernel option given and no root server set by the dhcp server."
echo "exiting to /bin/sh"
cd /
PATH=$PATH PS1='$ ' /bin/sh -i
fi
rootfsmod=
if [ -n "$rootflags" ] ; then
rootflags="${rootflags},nolock"
else
rootflags="nolock"
fi
# tell boot.rootfsck to skip warning
ROOTFS_FSCK=0
export ROOTFS_FSCK
else
dont_load_modules
fi
# Absolutely required for networking to function
ip link set dev lo up