diff -ur lessdisks-0.5.3cvs.20040906/mkinitrd/conf/install_scripts/06_cmdline patched-lessdisks-0.5.3cvs.20040906/mkinitrd/conf/install_scripts/06_cmdline
--- lessdisks-0.5.3cvs.20040906/mkinitrd/conf/install_scripts/06_cmdline	2004-08-21 01:45:07.000000000 -0700
+++ patched-lessdisks-0.5.3cvs.20040906/mkinitrd/conf/install_scripts/06_cmdline	2004-11-09 16:25:51.000000000 -0800
@@ -35,8 +35,8 @@
   # ip=x.x.x.x or ip=x.x.x.x:x.x.x.x:x.x.x.x:... are valid formats
   # the first doesn't use a colon, other options require the colon
   ip=$(get_field $stuff 1 "-d :")
-  if [ -z "$siaddr" ]; then
-    siaddr=$(get_field $stuff 2)
+  if [ -z "$nfsserver" ]; then
+    nfsserver=$(get_field $stuff 2)
   fi
   gw_ip=$(get_field $stuff 3)
   subnet=$(get_field $stuff 4)
@@ -55,9 +55,9 @@
     nfsroot=*) opt="${opt##nfsroot=}" 
       nfspath="$(echo $opt | cut -d : -f 2 | cut -d , -f 1)" 
       t="$(echo $opt | cut -s -d : -f 1)"
-      if [ -z "$siaddr" ] && [ -n "$t" ]; then
-        siaddr="$t"
-        echo "setting siaddr $siaddr"
+      if [ -z "$nfsserver" ] && [ -n "$t" ]; then
+        nfsserver="$t"
+        echo "setting nfsserver $nfsserver"
       fi
       t="$(echo $opt | cut -s -d , -f 2,3,4,5,6,7,8,9,10,11,12,13,14)"
       test -n $t && nfs_opts="$t"
@@ -69,7 +69,7 @@
 test -w /tmp/ || mount -nt tmpfs tmpfs /tmp
 
 test -n "$nfspath" && echo nfspath=$nfspath > $tempfile
-test -n "$siaddr" && echo siaddr=$siaddr >> $tempfile
+test -n "$nfsserver" && echo nfsserver=$nfsserver >> $tempfile
 test -n "$nfs_opts" && echo nfs_opts=\"$nfs_opts\" >> $tempfile
 test -n "$rootdev" && echo rootdev=$rootdev >> $tempfile
 # FIXME: init scripts appear to export kernel commandline values derived from
diff -ur lessdisks-0.5.3cvs.20040906/mkinitrd/conf/install_scripts/90_mount_nfs_root patched-lessdisks-0.5.3cvs.20040906/mkinitrd/conf/install_scripts/90_mount_nfs_root
--- lessdisks-0.5.3cvs.20040906/mkinitrd/conf/install_scripts/90_mount_nfs_root	2004-08-21 01:45:07.000000000 -0700
+++ patched-lessdisks-0.5.3cvs.20040906/mkinitrd/conf/install_scripts/90_mount_nfs_root	2004-11-09 16:25:52.000000000 -0800
@@ -18,8 +18,11 @@
 fi
 
 # TODO support udhcpc style versions of tftp-server-name
-server="$siaddr"
-if [ -z "$server" ] && [ -n "$tftp" ]; then
+server="$nfsserver"
+if [ -z "$server" ] && [ -n "$siaddr" ]; then
+  echo "NOTE: assuming siaddr $siaddr is also NFS server..."
+  server="$siaddr"
+elif [ -z "$server" ] && [ -n "$tftp" ]; then
   echo "WARNING: assuming TFTP server $tftp is also NFS server..."
   server="$tftp"
 elif [ -z "$server" ] && [ -n "$serverid" ]; then
diff -ur lessdisks-0.5.3cvs.20040906/mkinitrd/conf/network_script patched-lessdisks-0.5.3cvs.20040906/mkinitrd/conf/network_script
--- lessdisks-0.5.3cvs.20040906/mkinitrd/conf/network_script	2004-06-17 11:30:02.000000000 -0700
+++ patched-lessdisks-0.5.3cvs.20040906/mkinitrd/conf/network_script	2004-11-09 16:26:53.000000000 -0800
@@ -56,6 +56,21 @@
                 # client's dhclient script (so as to get added to lease file)
                 [ "$hostname" ] && hostname "$hostname"
 
+                if [ -n "$rootpath" ]; then
+                  if [ -z "$nfspath" ]; then
+                    nfspath="$(echo $rootpath | cut -d : -f2)"
+                    echo "using nfs dir from rootpath: $nfspath"
+                  fi
+                  if [ -z "$nfsserver" ] && [ -n "$(echo $rootpath | grep :)" ]; then
+                    x="$(echo $rootpath | cut -d : -f1)"
+                    if [ "$x" != "$nfspath" ]; then
+                      # FIXME test if $x is a valid ip address
+                      nfsserver="$x"
+                      echo "using nfs server from rootpath: $nfsserver"
+                    fi
+                  fi
+                fi
+
                 # udhcp 0.9.6 bug: siaddr incorrectly == ip
                 if [ "$siaddr" = "$ip" ]; then
                   # assume that the dhcp server is same as next-server
@@ -75,6 +90,9 @@
                 if [ -n "$interface" ]; then
                   echo "interface=\"$interface\"" >> $cmdline_opts
                 fi
+                if [ -n "$nfsserver" ]; then
+                  echo "nfsserver=\"$nfsserver\"" >> $cmdline_opts
+                fi
                 if [ -n "$siaddr" ]; then
                   echo "siaddr=\"$siaddr\"" >> $cmdline_opts
                 fi
