misc/63343: Manual root filesystem specification failed with error 22 on 4.9-STABLE

Bruce Evans bde at zeta.org.au
Wed Feb 25 06:40:14 PST 2004


The following reply was made to PR misc/63343; it has been noted by GNATS.

From: Bruce Evans <bde at zeta.org.au>
To: Nikolay Pavlov <quetzal at roks.biz>
Cc: FreeBSD-gnats-submit at freebsd.org, joerg at freebsd.org
Subject: Re: misc/63343: Manual root filesystem specification failed with
 error 22 on 4.9-STABLE  
Date: Thu, 26 Feb 2004 01:31:56 +1100 (EST)

 On Wed, 25 Feb 2004, Nikolay Pavlov wrote:
 
 > >Description:
 > 	I have erroneously change my fstab file and on next reboot can't mount root with <vfsname>:[<path>] command:
 > mountroot> ufs:/dev/ad1s2a
 > Root mount failed: 22
 > Manual root filesystem specification:
 >   <fstype>:<device>  Mount <device> using filesystem <fstype>
 >                        eg. ufs:/dev/da0s1a
 >   ?                  List valid disk boot devices
 >   <empty line>       Abort manual input
 >
 > The command did not want work only with new kernel, when I "boot kernel.GENERIC" it works.
 
 I think this is what was broken by rev.1.49.2.5 of kern/vfs_conf.c (a hack
 for vinum).  The main bug is here:
 
 % @@ -354,4 +351,11 @@
 %  	return (NODEV);
 %  gotit:
 % +	if (devsw(dev)->d_maj == major(rootdev))
 % +		/* driver has already configured rootdev, e. g. vinum */
 % +		return (rootdev);
 
 This results in rootdev never being changed if the first mountroot try
 sets rootdev to have the right major (and the user doesn't manage to
 work around the bug by trying a different major).
 
 Bruce


More information about the freebsd-bugs mailing list