tags 380649 +patch
thanks

Package: initramfs-tools
Version: 0.75
Followup-For: Bug #380649

the ip= option turned out to be the easiest one. attached are two patches
that implement:

root=/dev/nfs

nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]

ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>

ip=""

ip="dhcp"
 
i didn't implement ip=rarp or ip=bootp, though i get the impression dhcp
can mimic bootp, and could possible used as an alias to dhcp.

i would say, with these patches applied, this bug could be closed.

of course, patches also available in bzr branch:

http://llama.freegeek.org/~vagrant/bzr-archives/initramfs-tools/vagrant-initramfs-tools

live well,
  vagrant
--- init        2006-08-18 22:41:33.000000000 -0400
+++ ../vagrant-initramfs-tools/init     2006-08-20 18:29:54.000000000 -0400
@@ -59,6 +59,9 @@
                UUID=*)
                        ROOT="/dev/disk/by-uuid/${ROOT#UUID=}"
                        ;;
+               /dev/nfs)
+                       BOOT=nfs
+                       ;;
                esac
                ;;
        rootflags=*)
@@ -73,6 +76,9 @@
        nfsopts=*)
                NFSOPTS="-o ${x#nfsopts=}"
                ;;
+       ip=*)
+               IPOPTS=${x#ip=}
+               ;;
        boot=*)
                BOOT=${x#boot=}
                ;;
--- scripts/nfs 2006-08-19 14:59:59.000000000 -0400
+++ ../vagrant-initramfs-tools/scripts/nfs      2006-08-20 18:36:46.000000000 
-0400
@@ -13,10 +13,25 @@
        # For DHCP
        modprobe -q af_packet
 
-       ipconfig ${DEVICE}
+       if [ "x$IPOPTS" = "x" ] || [ "$IPOPTS" = "dhcp" ]; then
+               ipconfig ${DEVICE}
+       else
+               ipconfig $IPOPTS
+       fi
        . /tmp/net-${DEVICE}.conf
        if [ "x${NFSROOT}" = "xauto" ]; then
                NFSROOT=${ROOTSERVER}:${ROOTPATH}
+       elif [ "x${NFSROOT}" != "x" ]; then
+               # support nfsroot option from linux sources 
Documentation/nfsroot.txt:
+               # nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]
+               if [ "x${NFSOPTS}" = "x" ] && [ "${NFSROOT#*,}" != "${NFSROOT}" 
] ; then
+                       NFSOPTS="-o ${NFSROOT#*,}"
+               fi
+               NFSROOT=${NFSROOT%%,*}
+               if [ "${NFSROOT#*:}" = "$NFSROOT" ]; then
+                       # get rootserver from dhcp
+                       NFSROOT=${ROOTSERVER}:${NFSROOT}
+               fi
        fi
 
        if [ "x${NFSOPTS}" = "x" ]; then

Reply via email to