--- /usr/share/dracut/modules.d/40network/netroot 2016-05-11 23:32:40.000000000 -0500 +++ /usr/share/dracut/modules.d/40network/netroot.el6 2016-09-05 20:55:21.511547763 -0500 @@ -86,43 +86,43 @@ esac fi [ -n "$dest" ] && arping -q -f -w 60 -I $netif $dest [ -d $NEWROOT/proc ] && exit 0 -[ -z "$netroot" ] && exit 1 +# [ -z "$netroot" ] && exit 1 # Check: do we really know how to handle (net)root? [ -z "$root" ] && die "No or empty root= argument" [ -z "$rootok" ] && die "Don't know how to handle 'root=$root'" -handler=${netroot%%:*} -handler=${handler%%4} -handler="/sbin/${handler}root" -if [ -z "$netroot" ] || [ ! -e "$handler" ] ; then - die "No handler for netroot type '$netroot'" +if [ ! -z $netroot ]; then + handler=${netroot%%:*}; handler=${handler%%4}; handler="/sbin/${handler}root" + if [ -z "$netroot" ] || [ ! -e "$handler" ] ; then + die "No handler for netroot type '$netroot'" + fi fi # Source netroot hooks before we start the handler -source_all netroot +[ ! -z $netroot ] && source_all netroot # Run the handler; don't store the root, it may change from device to device -# XXX other variables to export? -if $handler $netif $netroot $NEWROOT; then - # Network rootfs mount successful - for iface in $IFACES ; do - [ -s /tmp/dhclient.$iface.lease ] && cp /tmp/dhclient.$iface.lease /tmp/net.$iface.lease - [ -s /tmp/dhclient.$iface.dhcpopts ] && cp /tmp/dhclient.$iface.dhcpopts /tmp/net.$iface.dhcpopts - done - - # Save used netif for later use - echo $netif >> /tmp/net.ifaces -#else -# warn "Mounting root via '$netif' failed" - # If we're trying with multiple interfaces, put that one down. - # ip down/flush ensures that routeing info goes away as well -# if [ -z "$BOOTDEV" ] ; then -# ip link set $netif down -# ip addr flush dev $netif -# echo "#empty" > /etc/resolv.conf -# fi +if [ ! -z $netroot ] ; then + if $handler $netif $netroot $NEWROOT; then + # Network rootfs mount successful + for iface in $IFACES ; do + [ -s /tmp/dhclient.$iface.lease ] && cp /tmp/dhclient.$iface.lease /tmp/net.$iface.lease + [ -s /tmp/dhclient.$iface.dhcpopts ] && cp /tmp/dhclient.$iface.dhcpopts /tmp/net.$iface.dhcpopts + done + # Save used netif for later use + echo $netif >> /tmp/net.ifaces +# else +# warn "Mounting root via '$netif' failed" + # If we're trying with multiple interfaces, put that one down. + # ip down/flush ensures that routeing info goes away as well +# if [ -z "$BOOTDEV" ] ; then +# ip link set $netif down +# ip addr flush dev $netif +# echo "#empty" > /etc/resolv.conf +# fi + fi fi exit 0