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

Re: linux-image-2.6.14-2-686: Could not read output for /sbin/modprobe -v -n --show-depends --set-version 2.6.14-2-686 auto (fatal)



On Tue, Dec 06, 2005 at 02:28:01PM +0200, Jari Aalto wrote:
> 
> Following my other posts: Here is install report from another machine,
> with exactly the same results. I've tried to reproduce as much debug
> as I know. Let me know how can I help more.

Thanks, very clear report.

> /dev/hda7       /               ext3,auto    defaults,errors=remount-ro,noat\

Bingo!  We know about lists of file system types, we know about the 'auto'
file system type, but you're the first to actually test the combination of
the two.

Could you try the attached patch?  Note that the patch is relative to development;
there's an offset when applying to the debian version.

Regards,
Erik
=== modified file 'perl/Plan.pm'
--- perl/Plan.pm
+++ perl/Plan.pm
@@ -614,41 +614,43 @@
 
 	addDevicePlan ($actions, $abd, []);
 
+	#
+	# Do the file system type.  This may be a list of types, to be tried
+	# in turn, and the list can contain 'auto': look at the block device
+	# to determine type.
+	#
 	my $fsType = $root->type;
-
-	if ($fsType eq "auto") {
-		#
-		# Let's guess the fstype using /sbin/blkid.
-		#
-		my ($rc, $guess) = Base::runCmd (missingOk => 1,
-			cmd => ['/sbin/blkid', $rootDevName]);
-		if (!defined ($guess)) {
-			my $origin = $root->origin;
-			Base::fatal ("the command /sbin/blkid is not found, so file system type 'auto' for '$rootDevName' is not supported; use an explicit file system type ($origin)");
-		}
-		if (@{$guess} != 1) {
-			my $origin = $root->origin;
-			Base::fatal ("the command /sbin/blkid $rootDevName did not give exactly one line of output, so file system type 'auto' for '$rootDevName' is not supported; use an explicit file system type ($origin)");
-		}
-
-		if (${$guess}[0] !~ /\sTYPE="([a-zA-Z0-9]+)"/) {
-			my $origin = $root->origin;
-			Base::fatal ("the command /sbin/blkid $rootDevName did not have TYPE=\"fstype\" in the output, so file system type 'auto' for '$rootDevName' is not supported; use an explicit file system type ($origin)");
-		}
-		$fsType = $1;
-		Base::debug ("blkid $rootDevName => $fsType");
-	}
-
-	#
-	# Actually, fsType may be a comma-separated list of types,
-	# to be tried in turn
-	#
 	my @types = grep {$_ ne ''} split (',', $fsType);
 	if (@types == 0) {
 		my $origin = $root->origin;
 		Base::fatal ("no file system type given for '$rootDevName'; use an explicit file system type ($origin)");
 	}
-	ModProbe::addModules ($actions, [ @types ]);
+
+	for my $type (@types) {
+		if ($type eq "auto") {
+			#
+			# Let's guess the fstype using /sbin/blkid.
+			#
+			my ($rc, $guess) = Base::runCmd (missingOk => 1,
+				cmd => ['/sbin/blkid', $rootDevName]);
+			if (!defined ($guess)) {
+				my $origin = $root->origin;
+				Base::fatal ("the command /sbin/blkid is not found, so file system type 'auto' for '$rootDevName' is not supported; use an explicit file system type ($origin)");
+			}
+			if (@{$guess} != 1) {
+				my $origin = $root->origin;
+				Base::fatal ("the command /sbin/blkid $rootDevName did not give exactly one line of output, so file system type 'auto' for '$rootDevName' is not supported; use an explicit file system type ($origin)");
+			}
+			if (${$guess}[0] !~ /\sTYPE="([a-zA-Z0-9]+)"/) {
+				my $origin = $root->origin;
+				Base::fatal ("the command /sbin/blkid $rootDevName did not have TYPE=\"fstype\" in the output, so file system type 'auto' for '$rootDevName' is not supported; use an explicit file system type ($origin)");
+			}
+			$type = $1;
+			Base::debug ("blkid $rootDevName => $fsType");
+		}
+
+		ModProbe::addModules ($actions, [ $type ]);
+	}
 
 	my $yspecial = $abd->yspecial();
 	my $opts = $root->opts->cmdLineVersion();


Reply to: