Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 05 Nov 2007 18:54:31 +0000
From:      Christopher Key <cjk32@cam.ac.uk>
To:        Boris Samorodov <bsam@ipt.ru>
Cc:        questions@freebsd.org
Subject:   Re: fsck and memory filesytems (fsck_mfs: No such file or directory)
Message-ID:  <472F66E7.2070103@cam.ac.uk>
In-Reply-To: <99846340@srv.sem.ipt.ru>
References:  <472F4C16.5020406@cam.ac.uk> <99846340@srv.sem.ipt.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
Boris Samorodov wrote:
> On Mon, 05 Nov 2007 17:00:06 +0000 Christopher Key wrote:
>
>   
>> I recently had a powercut to my FreeBSD home server, and I'm now
>> getting the following messages at startup:
>>     
>
>   
>> Starting file system checks:
>> /dev/ad8s1a: FILE SYSTEM CLEAN; SKIPPING CHECKS
>> /dev/ad8s1a: clean, 466797 free (2837 frags, 57995 blocks, 0.6%
>> fragmentation)
>> fsck: exec fsck_mfs for md in /sbin:/usr/sbin: No such file or directory
>> fsck: exec fsck_mfs for md in /sbin:/usr/sbin: No such file or directory
>> /dev/ad8s1f: FILE SYSTEM CLEAN; SKIPPING CHECKS
>> /dev/ad8s1f: clean, 214294022 free (173430 frags, 26765074 blocks,
>> 0.1% fragmentation)
>> /dev/mirror/gm0s1d: FILE SYSTEM CLEAN; SKIPPING CHECKS
>> /dev/mirror/gm0s1d: clean, 16121593 free (1441 frags, 2015019 blocks,
>> 0.0% fragmentation)
>> /dev/mirror/gm0s2d: FILE SYSTEM CLEAN; SKIPPING CHECKS
>> /dev/mirror/gm0s2d: clean, 63140067 free (4187 frags, 7891985 blocks,
>> 0.0% fragmentation)
>> /dev/ad8s1e: FILE SYSTEM CLEAN; SKIPPING CHECKS
>> /dev/ad8s1e: clean, 8049657 free (1169 frags, 1006061 blocks, 0.0%
>> fragmentation)
>> /dev/mirror/gm0s3d: FILE SYSTEM CLEAN; SKIPPING CHECKS
>> /dev/mirror/gm0s3d: clean, 84638779 free (1779 frags, 10579625 blocks,
>> 0.0% fragmentation)
>> /dev/ad8s1d: FILE SYSTEM CLEAN; SKIPPING CHECKS
>> /dev/ad8s1d: clean, 6625471 free (47 frags, 828178 blocks, 0.0%
>> fragmentation)
>> THE FOLLOWING FILE SYSTEM HAD AN UNEXPECTED INCONSISTENCY:
>>        mfs: md (/tmp)
>> Unknown error; help!
>> NEnter full pathname of shell or RETURN for /bin/sh:
>>     
>
>
>   
>> The problem is, I'm sure, is essentially identical to that described in,
>>     
>
>   
>> http://www.mail-archive.com/freebsd-current@freebsd.org/msg21675.html
>>     
>
>   
>> namely that the entry for the memory filesystem, /tmp, in /etc/fstab
>> is confusing fsck.  My /etc/fstab looks like,
>>     
>
>   
>> # cat /etc/fstab
>> # Device                Mountpoint      FStype  Options         Dump
>> Pass#
>> /dev/ad8s1b             none            swap    sw              0       0
>> /dev/ad8s1a             /               ufs     rw              1       1
>> md                      /tmp            mfs     rw,-s64m
>> 2      2
>>     
>         ^^^ [1]
>
>   
>> /dev/ad8s1f             /usr            ufs     rw              2       2
>> /dev/ad8s1e             /var            ufs     rw              2       2
>> /dev/ad8s1d             /var/tmp        ufs     rw              3       3
>>     
>                                                                  ^^^^^^^^^^ [2]
>   
>> /dev/mirror/gm0s1d      /svn            ufs     rw              2       2
>> /dev/mirror/gm0s2d      /data           ufs     rw              2       2
>> /dev/mirror/gm0s3d      /music          ufs     rw              2       2
>>     
>
>   
>> I can get the system to boot quite happily by carrying on into single
>> user mode and exiting, but I still get the same behaviour next reboot.
>>     
>
>   
>> Does anyone have any suggestions?
>>     
>
> [1] According to man(5) fstab:
> -----
>      The sixth field, (fs_passno), is used by the fsck(8) program to determine
>      the order in which file system checks are done at reboot time.  The root
>      file system should be specified with a fs_passno of 1, and other file
>      systems should have a fs_passno of 2.  File systems within a drive will
>      be checked sequentially, but file systems on different drives will be
>      checked at the same time to utilize parallelism available in the hard-
>      ware.  If the sixth field is not present or is zero, a value of zero is
>      returned and fsck(8) will assume that the file system does not need to be
>      checked.
> -----
>
> Seems that you need to use "0" istead of "2". I'd say the same for the
> fifth field here.
>
> BTW, I can't find what does [2] mean (the values "3" here)...
>
>
> WBR
>   
Thanks Boris, Daniel,

Setting the pass# to 0 for /tmp worked perfectly.

The reason for having a pass# of 3 for /var/tmp was, to put it 
succinctly, because it was mounted within a filesystem with a pass# of 2.

My understanding was that the fsck didn't start to check a filesystem 
with a pass# of n+1 until it had successfully checked all those with a 
pass# of n.  I expected that you would always want to make sure that, 
before checking some filesystem, you ensured that its mount point was 
valid first, and hence gave it a greater pass# that the filesystem in 
which it gets mounted.  Hence / having a pass# of 1, and /usr/ var etc 
having a pass# of 2.

If anyone knows otherwise, I'd appreciate the correction.

Regards,

Chris



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?472F66E7.2070103>