From owner-freebsd-questions@FreeBSD.ORG Thu Aug 23 15:08:07 2007 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8EB7F16A49C for ; Thu, 23 Aug 2007 15:08:07 +0000 (UTC) (envelope-from smithi@nimnet.asn.au) Received: from gaia.nimnet.asn.au (nimbin.lnk.telstra.net [139.130.45.143]) by mx1.freebsd.org (Postfix) with ESMTP id 676B813C45B for ; Thu, 23 Aug 2007 15:08:03 +0000 (UTC) (envelope-from smithi@nimnet.asn.au) Received: from localhost (smithi@localhost) by gaia.nimnet.asn.au (8.8.8/8.8.8R1.5) with SMTP id BAA19097; Fri, 24 Aug 2007 01:07:51 +1000 (EST) (envelope-from smithi@nimnet.asn.au) Date: Fri, 24 Aug 2007 01:07:51 +1000 (EST) From: Ian Smith To: Karol Kwiatkowski In-Reply-To: <46CD5295.4050406@gmail.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: Chris , freebsd-questions@freebsd.org, Bill Moran Subject: Re: fsck strangeness X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 Aug 2007 15:08:07 -0000 On Thu, 23 Aug 2007, Karol Kwiatkowski wrote: > Ian Smith wrote: > > On Thu, 23 Aug 2007, Karol Kwiatkowski wrote: > > > Ian Smith wrote: > > > > On Wed, 22 Aug 2007, Chris wrote: > > > > > 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. > > > > > > Here's my understanding: > > > > > > Mounted fs (rw) isn't in stable state, there may be some writes to it - > > > daemons, buffers flushes, etc. In this condition fsck can report > > > inconsistency. And fsck running in 'NO WRITE' won't help anyway :) > > > > a) Absolutely. > > > > b) Indeed it usually does, fairly consistently, especially on /var. > > > > c) No it won't help (except where it can help locate problems in a real > > mess like bad blocks), but the assertion in question was, can it hurt? > > Ah sorry, I missed that. With 'NO WRITE' one can suppose it shouldn't > hurt anything except performance ;) > > I made a quick scan through the source and it looks like it won't: > - in src/sbin/fsck_ffs/setup.c > if fs is mounted rw fswritefd is set to -1 Ah, the source, who would have thought .. so it does .. if (bkgrdflag == 0 && (nflag || (fswritefd = open(dev, O_WRONLY)) < 0)) { fswritefd = -1; if (preen) pfatal("NO WRITE ACCESS"); printf(" (NO WRITE)"); } .. which explore answered the flip side of my query, I think: fsck (in fg mode) _will_ update an fs mounted readonly, unless -n is specified. > - in src/sbin/fsck_ffs/fsutil.c > blwrite(), flush() and ckfini() won't write anything if fswritefd<0 > > Unless, of course, I'm missing something. I'll keep using -n to be sure for 'casual' fsck, never failed me, and one day I may figure out how bg fsck works. Thanks for the tute :) Cheers, Ian