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

Bug#252464: please comment



On Tue, Jun 29, 2004 at 11:51:30AM +0200, Sven Luther wrote:
> 
> | Ok, a bit late, but better late than never.
> |
> | You will find at :
> |
> | http://people.debian.org/~luther/mkinitrd.tgz
> |
> | a tarball containing the initrd, the output of the mkinitrd with sh -x,
> | as well as the content of /etc/mkinitrd which was used to generate it.

Thanks.

I suspect the problem is that you didn't have ext2 loaded when you were
building the initrd image.  Since mkinitrd doesn't use the type field in
/etc/fstab this means that ext2 will not get loaded at all.

The solution is to always append the types in /etc/fstab to the end
of /proc/filesystems.

Please try this patch.
-- 
Visit Openswan at http://www.openswan.org/
Email:  Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Index: mkinitrd
===================================================================
RCS file: /home/gondolin/herbert/src/CVS/debian/initrd-tools/mkinitrd,v
retrieving revision 1.203
diff -u -r1.203 mkinitrd
--- mkinitrd	28 May 2004 10:14:33 -0000	1.203
+++ mkinitrd	29 Jun 2004 11:53:00 -0000
@@ -607,15 +607,21 @@
 	set +f -- $ROOT
 	device=$1
 	type=$2
+
+	local fstabtype=
 	if [ "$device" = probe ]; then
 		local script root
 
 		script='
 			BEGIN { printf "set -- " }
 			/^#/ { next }
-			$2 == "/" { root = $1; next }
+			$2 == "/" { root = $1; type = $3; next }
 			$3 == "swap" { printf "'\''%s'\''", $1 }
-			END { print ""; print "root=" root }
+			END {
+				print ""
+				print "root=" root
+				print "fstabtype=" type
+			}
 		'
 		root=
 		eval "$(awk "$script" /etc/fstab)"
@@ -632,7 +638,16 @@
 	fi
 
 	if [ -z "$type" ]; then
-		set -- $(awk -F '	' '!$1 { print $2 }' /proc/filesystems)
+		set -- $(
+			{
+				awk -F '	' '!$1 { print $2 }' \
+					/proc/filesystems
+				if [ -n "$fstabtype" ]; then
+					IFS=,
+					printf '%s\n' $fstabtype
+				fi
+			} | cat -n | sort -u -k 2,2 | sort -n | cut -f 2-
+		)
 		if [ $# -eq 0 ]; then
 			echo "$PROG: Cannot determine root file system" >&2
 			exit 1

Reply to: