diff options
Diffstat (limited to 'recipes/initrdscripts/files/80-nfsboot.sh')
-rw-r--r-- | recipes/initrdscripts/files/80-nfsboot.sh | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/recipes/initrdscripts/files/80-nfsboot.sh b/recipes/initrdscripts/files/80-nfsboot.sh new file mode 100644 index 0000000000..e1588c16a8 --- /dev/null +++ b/recipes/initrdscripts/files/80-nfsboot.sh @@ -0,0 +1,45 @@ +#!/bin/sh + +if [ "$ROOT_DEVICE" = "/dev/nfs" ]; then + + # These correspond to what kernel itself uses + # DO NOT CHANGE! + NFS_OPTIONS="-o nfsvers=2,nolock" + + for arg in $CMDLINE; do + echo $arg + optarg=`expr "x$arg" : 'x[^=]*=\(.*\)'` + echo $optarg + case $arg in + nfsroot=*) + nfsroot=$optarg ;; + ip=*) + ip=$optarg ;; + esac + done + + echo $ip | (IFS=: read client_ip server_ip gw_ip netmask hostname device autoconf; \ + echo client_ip=$client_ip; + echo server_ip=$server_ip; + echo gw_ip=$gw_ip; + echo netmask=$netmask; + echo hostname=$hostname; + echo device=$device; + echo autoconf=$autoconf; + + case "$device" in + usb*) + echo "USB" + modprobe g_ether + sleep 5 + ;; + esac + + ifconfig $device $client_ip + ping -c 2 $server_ip + ) + + echo "booting from NFS: $nfsroot" + mount -t nfs $NFS_OPTIONS $nfsroot /mnt + BOOT_ROOT=/mnt +fi |