[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#345654: please add NFS support



Package: preseed
Version: 1.11
Severity: wishlist
Tags: patch


The patch below adds NFS support to network-pressed.  You can pass a
NFS path in the form of nfs://$host/$path/$file and network-preseed
will mount the NFS share and copy the file to d-i.  Obviously, this
requires NFS support but this can be put on the initrd.  I intend to
do this for Cobalt to allow SSH installations on machines without
serial console.

(I've no idea whether d-i has a program to generate a safe /tmp
directory.)


Index: debian/network-preseed.postinst
===================================================================
--- debian/network-preseed.postinst	(revision 33661)
+++ debian/network-preseed.postinst	(working copy)
@@ -8,15 +8,33 @@
 preseed_fetch () {
 	local url="$1"
 	local file="$2"
-	iters=0
-	while [ $iters -lt 3 ]; do
-		# TODO proxy support? Would it be useful?
-		# TODO add progress bar
-		if wget -q "$url" -O "$file"; then
+	case "$url" in
+		nfs://*)
+			url=${url#nfs://}
+			host=$(echo "$url" | cut -d / -f 1)
+			url=${url#$host}
+			path=`dirname $url`
+			file=`basename $url`
+			mnt=/tmp/nfs
+			mkdir $mnt
+			mount -t nfs $host:$path $mnt
+			cp $mnt/$file $file
+			umount $mnt
+			rmdir $mnt
 			return 0
-		fi
-        	iters=$(($iters + 1))
-	done
+			;;
+		*)
+			iters=0
+			while [ $iters -lt 3 ]; do
+				# TODO proxy support? Would it be useful?
+				# TODO add progress bar
+				if wget -q "$url" -O "$file"; then
+					return 0
+				fi
+				iters=$(($iters + 1))
+			done
+			;;
+	esac
 	return 1
 }
 preseed_relative () {



-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.12-1-686
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)

-- 
Martin Michlmayr
http://www.cyrius.com/



Reply to: