double/erraneous fsck bug

samuel verstraete samuel.verstraete at gmail.com
Fri Mar 17 13:25:26 UTC 2006


well i confirm it *doesn't* work on my machine...

i have the latest mount script my fstab entries are as default as they
can be and i just rebooted my machine and *all* my disks were checked
3 times...

no fun!

/dev/sda2       /              reiserfs              defaults         0 1
/dev/sda1       /boot      ext2                     defaults        0  2
/dev/sda3       none      swap                  sw                 0  0
/dev/sda4       /home    reiserfs              defaults        0 2


so after a bit of experementing...


mount script behaves normally (but my /home partition doesn't get checked)
/dev/sda2       /       reiserfs         defaults        0 1
/dev/sda1       /boot   ext2             defaults        0 2
/dev/sda3       none    swap             sw              0 0
/dev/sda4       /home   reiserfs         defaults        0 0

mount script will check sda1 and sda4 2 times
/dev/sda2       /       reiserfs         defaults          0 1
/dev/sda1       /boot   ext2             defaults        0 2
/dev/sda3       none    swap             sw              0 0
/dev/sda4       /home   reiserfs         defaults    0 2

mount script will check sda1,sda2 and sda4 3 times
/dev/sda2       /       reiserfs         defaults          0 1
/dev/sda1       /boot   ext2             defaults         0 1
/dev/sda3       none    swap             sw              0 0
/dev/sda4       /home   reiserfs         defaults    0 1

a part from man fstab:
The  sixth  field,  (fs_passno),  is  used  by  the fsck(8) program to
determine the order in which       filesystem checks are done at
reboot  time.   The  root  filesystem  should  be  specified  with  a 
     fs_passno  of  1,  and  other filesystems should have a fs_passno
of 2.  Filesystems within a drive will be checked sequentially, but
filesystems on different drives will be checked at the same  time  to 
utilize  parallelism  available  in the hardware.  If the sixth field
is not present or zero, a       value of zero is returned and fsck
will assume that the filesystem does not need to be checked.

so although 1 1 1 wouldn't be a prefered method to specify the order
of checking it should NOT result in checking all filesystem 3 times...

gr,S.




On 3/2/06, sofar <sofar at foo-projects.org> wrote:
>
> people who have NO systems setup for fsck-ing are hit with this bug. The
> proper code is a lot simpler and I just committed this to moonbase:
>
> sed 's/#.*$//g' /etc/fstab | awk '($6>0){print$6}' | sort -n
>
> in any case, please confirm that the fix works for you by:
>
> - waiting 10 minutes from now (until a new moonbase is available), and then
> - lin moonbase
> - lin e2fsprogs
> - reboot
>
> Auke
>
>
> On Thu, 2 Mar 2006 17:43:51 +0000, sofar <sofar at foo-projects.org> wrote:
> >
> >
> > On Thu, 2 Mar 2006 10:02:51 -0700, "Alex Hunsaker" <badalex at gmail.com>
> > wrote:
> >> On 3/2/06, Sebastian Kärgel <mailing at wodkahexe.de> wrote:
> >>> On Thu, 2 Mar 2006 17:09:34 +0100
> >>> samuel verstraete <samuel.verstraete at gmail.com> wrote:
> >>>
> >>> >
> >>> > i might sometimes say very stupid things... and my bash skillz suck
> >>> > monkeyballs but that specific thing i checked myself already... and
> >>> > they are not listed twice ;)
> >>> > gr,S.
> >>> >
> >>>
> >>> Same problem here with /dev/hda1 and /dev/hda2
> >>> You're not alone ;)
> >>
> >> I fixed it with this patch
> >
> > this patch below makes no sense, unless you have a line with a non-number
> > in the fs_passno field.
> >
> > Can you execute the code snipplet below and paste me the output? Also,
> > please send me a FULL copy of your fstab
> >
> > sed 's/#.*$//g' /etc/fstab | awk '{if($6>0){print$1,$6}}' | sort -n
> >
> >
> > Auke
> >
> >>
> >> --- mount.old   2006-03-02 10:01:24.000000000 -0700
> >> +++ mount       2006-03-02 10:01:55.000000000 -0700
> >> @@ -214,7 +214,7 @@ start()
> >>                 fi
> >>
> >>                 # check filesystems
> >> -               FSCKLEVELS=$(sed 's/#.*$//g' /etc/fstab | tr -s
> >> '[:blank:]' | awk '{print $6}' | sort -n | grep -v -w 0)
> >> +               FSCKLEVELS=$(sed 's/#.*$//g' /etc/fstab | tr -s
> >> '[:blank:]' | awk '{print $6}' | sort -n | grep -v -w 0 | egrep
> >> '[0-9]+')
> >>                 if [ -n "$FSCKLEVELS" ]; then
> >>                         echo "Checking file systems:"
> >>                         for FSCKLEVEL in $FSCKLEVELS; do
> >>
> >>> _______________________________________________
> >>> Lunar mailing list
> >>> Lunar at lunar-linux.org
> >>> http://foo-projects.org/mailman/listinfo/lunar
> >>>
> >> _______________________________________________
> >> Lunar mailing list
> >> Lunar at lunar-linux.org
> >> http://foo-projects.org/mailman/listinfo/lunar
> >
> > _______________________________________________
> > Lunar mailing list
> > Lunar at lunar-linux.org
> > http://foo-projects.org/mailman/listinfo/lunar
> >
>
> _______________________________________________
> Lunar mailing list
> Lunar at lunar-linux.org
> http://foo-projects.org/mailman/listinfo/lunar
>


More information about the Lunar mailing list