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~} <[EMAIL PROTECTED]>
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 via email to