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: