fsck strangeness
Ian Smith
smithi at nimnet.asn.au
Wed Aug 22 22:02:48 PDT 2007
On Wed, 22 Aug 2007, Chris wrote:
> On 20/08/07, Ian Smith <smithi at nimnet.asn.au> wrote:
> > Sorry for the repeat post folks, but I goofed last time, leaving out the
> > subject line while replying to the digest. Still curious .. Ian
> > =======
> >
> > On Sat, 18 Aug 2007 21:32:28 +0200 Erik Trulsson <ertr1013 at student.uu.se> wrote:
> > > On Sat, Aug 18, 2007 at 08:21:42PM +0100, Christopher Key wrote:
> > > > Hello,
> > > >
> > > > I'm having some rather strange behaviour with fsck.
> > > >
> > > > When I boot the system, it asserts that all the file systems are clean, but
> > > > subsequently running an fsck on /dev/ad8s1e (mounted as /var) detects
> > > > errors. Even if this first check is run whilst the file system is mounted,
> > > > and is hence run in NO WRITE mode, a second check doesn't find block
> > > > errors. If I then unmount the file system and check the disk, it's fine,
> > > > as indeed it is if I unmount, remount, then check. However, if I then
> > > > reboot, the process repeats, and an fsck immediately after reboot will find
> > > > errors again. If I bring the system up in single user mode, and run fsck
> > > > either before or after mounting /var, it finds no errors.
> > > >
> > > > I'm running 6.2_RELEASE with a custom kernel based upon generic-smp, but
> > > > with a lot of unecessary bits removed, and geom_mirror compiled in. I
> > > > don't think it's the drive that's at fault, all the other partitions in the
> > > > slice are fine, it's a fairly new drive, and it passes a self test quite
> > > > happily. Included below is a transcript that attempt to show what's going
> > > > on in detail, is there anything else relevant?
> > > >
> > > > Can anyone suggest what might be going on and how to fix it, or suggest
> > > > some slightly better diagnostics? Apologies if this is an RTFM issue, I
> > > > have had a good dig through the handbook, but can't seem to find anything
> > > > that helps.
> >
> > > Running fsck on a file system that has been mounted read/write will almost
> > > always report spurious errors and can really screw up the disk if it tries
> > > to 'correct' those errors.
> >
> > I'm a bit confused by this. I've been running 'fsck -n' over FreeBSD
> > systems since 2.2.6, and modulo seeing the at-the-time inconsistencies
> > on those filesystems in /etc/fstab that are mounted, as Chris reported
> > and as are expected, I've never had a problem with it, nor seen the sort
> > of inconsistent results between runs that Chris is reporting.
> >
> > > You should normally not run fsck on a mounted filesystem and you should
> > > *NEVER* run fsck on a filesystem that has been mounted read/write.
> >
> > This seems to imply that using the -n switch may have different results
> > than not using it and having fsck determine 'NO WRITE' itself from the
> > fact that it's noticed that the fs is mounted? Are you suggesting by
> > "can really screw up the disk if it tries to 'correct' those errors"
> > that fsck might WRITE to a mounted fs that it's showing as 'NO WRITE'?
> >
> > I've never had any screwups with it, but then I've always specified -n.
> >
> > Later Bill Moran said:
> >
> > > Don't run fsck on mounted filesystems unless they're mounted read-only.
> > >
> > > Although, it's possible I misunderstood your description of the problem.
> >
> > so I'm still curious, and am wondering if Chris using SMP kernel and/or
> > geom_mirror might have anything to do with this? Or whether his use of
> > 'umount -f' might be (or cause) the problem indicated by his results?
> >
> > > > # umount -f /var
> > > >
> > > >
> > > > # mount /var
> If its bad to run fsck on a mounted read,write then why does
> background fsck do it? or you talking about foreground fsck only?
Well I was referring to foreground fsck, and I still don't know why
running it on a mounted fs is 'bad' when fsck runs in 'NO WRITE' mode
anyway when it finds a fs is mounted, hence my query above.
My knowledge of this is thin, despite reading McKusick's paper through
several times, but we're told that background fsck runs on a snapshot of
the fs concerned. How any bg fsck corrections are woven back into the
live fs later is still a mystery to me, but that's because I still have
an only barely superficial understanding of how snapshots work ..
I still feel that your 'umount -f /var' seems potentially hairy, but
can't say if that might explain the behaviour you were reporting.
Cheers, Ian
More information about the freebsd-questions
mailing list