On 20.11.2014 15:57, Thomas Renninger wrote: > cmdline > > If the rootfs is an nfs mount, also know as nfsroot, add the correct > parameter to the dracut cmdline. > > Signed-off-by: Thomas Renninger <trenn@xxxxxxx> > --- > modules.d/95nfs/module-setup.sh | 46 ++++++++++++++++++++++++++++++++++++++--- > 1 file changed, 43 insertions(+), 3 deletions(-) > > diff --git a/modules.d/95nfs/module-setup.sh b/modules.d/95nfs/module-setup.sh > index e1340b3..41c6ef7 100755 > --- a/modules.d/95nfs/module-setup.sh > +++ b/modules.d/95nfs/module-setup.sh > @@ -14,7 +14,6 @@ check() { > done > return 255 > } > - > return 0 > } > > @@ -29,14 +28,56 @@ installkernel() { > instmods nfs sunrpc ipv6 nfsv2 nfsv3 nfsv4 nfs_acl nfs_layout_nfsv41_files > } > > +cmdline() { > + local nfs_device > + local nfs_options > + local nfs_root > + local nfs_address > + local lookup > + local ifname > + > + ### nfsroot= ### > + nfs_device=$(findmnt -t nfs4 -n -o SOURCE /) > + if [ -n "$nfs_device" ];then > + nfs_root="root=nfs4:$nfs_device" > + else > + nfs_device=$(findmnt -t nfs -n -o SOURCE /) > + [ -z "$nfs_device" ] && return > + nfs_root="root=nfs:$nfs_device" > + fi > + nfs_options=$(findmnt -t nfs4,nfs -n -o OPTIONS /) > + [ -n "$nfs_options" ] && nfs_root="$nfs_root:$nfs_options" > + echo "$nfs_root" > + > + ### ip= ### > + if [[ $nfs_device = [0-9]*\.[0-9]*\.[0-9]*.[0-9]* ]] || [[ $nfs_device = \[.*\] ]]; then > + nfs_address="$nfs_device" > + else > + lookup=$(host $(echo ${nfs_device%%:*})| head -n1) > + nfs_address=${lookup##* } > + fi > + ifname=$(ip -o route get to $nfs_address | sed -n 's/.*dev \([^ ]*\).*/\1/p') > + if [ -e /sys/class/net/$ifname/address ] ; then > + ifmac=$(cat /sys/class/net/$ifname/address) > + printf 'ifname=%s:%s ' ${ifname} ${ifmac} > + fi > + > + printf 'ip=%s:static\n' ${ifname} > +} > + > # called by dracut > install() { > local _i > local _nsslibs > inst_multiple -o portmap rpcbind rpc.statd mount.nfs \ > - mount.nfs4 umount rpc.idmapd sed /etc/netconfig > + mount.nfs4 umount rpc.idmapd sed /etc/netconfig host sed Why "host" and "sed" ?? Just because it's used in cmdline() does not mean it has to be installed in the initramfs? -- To unsubscribe from this list: send the line "unsubscribe initramfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html