fsck on current not always prompting a 2nd run when it should

Julian Elischer julian at freebsd.org
Fri Feb 5 06:56:26 UTC 2016


On 5/02/2016 2:40 AM, Kirk McKusick wrote:
>> To: fs at freebsd.org
>> Subject: fsck on current not always prompting a 2nd run when it should
>> From: "Julian H. Stacey" <jhs at berklix.com>
>> Organization: http://berklix.eu BSD Linux Unix Consultants, Munich Germany
>> Date: Wed, 03 Feb 2016 02:34:43 +0100
>> Cc: "Julian H. Stacey" <jhs at berklix.com>
>>
>> Hi fs@ people
>> fsck is sometimes (not always) not prompting for a 2nd run of fsck
>> when FS is still bad.  (After a few crashes I've become cautious
>> enough to give it a 2nd run even after it first detects no errors
>> left to fix.  There's a bug in fsck somewhere, it should ask for a
>> re-run more than it does.
>>
>> fsck running on uname -a
>>    FreeBSD lapr.js.berklix.net 11.0-CURRENT FreeBSD 11.0-CURRENT #12182:
>>    Mon Oct 19 23:57:08 CEST 2015
>>    jhs at lapr.js.berklix.net:/usr/src/sys/amd64/compile/LAPR.small  amd64
>>
>> Background:
>>     partition was corrupted running 10.2-RELEASE, but fsck is running on current.
>>
>>     On 10.2-RELEASE I've been doing intensive IO for days,
>>     cd /usr/ports  ; make reinstall-recursive
>>    	# http://berklix.com/~jhs/src/bsd/fixes/FreeBSD/ports/gen/Mk/
>>     with a selection of */Makefile.inc that result in my 1000+ favourites
>>     being shown by
>>    	pkg info | wc -l
>>     This has repeatedly reinstalled some common dependency ports/, hence heavy IO.
>>     + rdist mirroring,
>>     + devd usb ufs stick mounts, mdconfig, gbde, shells to umount &
>>     maybe mdconfig -u after.
>>     Plenty of activity might have caused the corruption, but ...
>>
>> I'm not querying corruption on 10.2-RELEASE I'm just concerned fsck on
>> current fails to tell me to re-run fsck.
>>
>> I didnt save previous fsck reports, but have this one.
>> Current fstab:
>> 	/dev/ada0s4f   /data   ufs  rw,noauto    1  5
>>
>> rc.conf:	background_fsck="NO"
>>
>> dumpfs -m /dev/ada0s4f
>> newfs -O 2 -U -a 4 -b 32768 -d 32768 -e 4096 -f 4096 -g 16384 -h 64 -i 8192 -j -k 6408 -m 8 -o time -s 1793576920 /dev/ada0s4f
>>
>> fsck -y /data
>> 	** /dev/ada0s4f
>>
>> 	USE JOURNAL? yes
>>
>> 	** SU+J Recovering /dev/ada0s4f
>> 	** Reading 33554432 byte journal from inode 70.
>>
>> 	RECOVER? yes
>>
>> 	** Building recovery table.
>> 	** Resolving unreferenced inode list.
>> 	** Processing journal entries.
>>
>> 	WRITE CHANGES? yes
>>
>> 	** 1974 journal records in 105472 bytes for 59.89% utilization
>> 	** Freed 0 inodes (0 dirs) 0 blocks, and 0 frags.
>>
>> 	***** FILE SYSTEM MARKED CLEAN *****
>> That ran very suspiciously quickly, so I ran it again,
>> took a long time (as about 900 gig)
>>
>> fsck -y /data
>> 	** /dev/ada0s4f
>>
>> 	USE JOURNAL? yes
>>
>> 	** SU+J Recovering /dev/ada0s4f
>> 	Journal timestamp does not match fs mount time
>> 	** Skipping journal, falling through to full fsck
>>
>> 	** Last Mounted on /s4/data
>> 	** Phase 1 - Check Blocks and Sizes
>> 	** Phase 2 - Check Pathnames
>> 	UNALLOCATED  I=19604676  OWNER=root MODE=0
>> 	SIZE=0 MTIME=Feb  3 00:52 2016
>> 	NAME=/release/10.2-RELEASE/usr/ports/x11/pixman/work/.PLIST.setuid
>>
>> 	UNEXPECTED SOFT UPDATE INCONSISTENCY
>>
>> 	REMOVE? yes
>>
>> 	UNALLOCATED  I=19604677  OWNER=root MODE=0
>> 	SIZE=0 MTIME=Feb  3 00:52 2016
>> 	NAME=/release/10.2-RELEASE/usr/ports/x11/pixman/work/.PLIST.writable
>>
>> 	UNEXPECTED SOFT UPDATE INCONSISTENCY
>>
>> 	REMOVE? yes
>>
>> 	UNALLOCATED  I=19604678  OWNER=root MODE=0
>> 	SIZE=0 MTIME=Feb  3 00:52 2016
>> 	NAME=/release/10.2-RELEASE/usr/ports/x11/pixman/work/.PLIST.objdump
>>
>> 	UNEXPECTED SOFT UPDATE INCONSISTENCY
>>
>> 	REMOVE? yes
>>
>> 	UNALLOCATED  I=19604679  OWNER=root MODE=0
>> 	SIZE=0 MTIME=Feb  3 00:40 2016
>> 	NAME=/release/10.2-RELEASE/usr/ports/x11/pixman/work/.install_done.pixman._usr_local
>>
>> 	UNEXPECTED SOFT UPDATE INCONSISTENCY
>>
>> 	REMOVE? yes
>> 	** Phase 3 - Check Connectivity
>> 	** Phase 4 - Check Reference Counts
>> 	** Phase 5 - Check Cyl groups
>> 	FREE BLK COUNT(S) WRONG IN SUPERBLK
>> 	SALVAGE? yes
>>
>> 	SUMMARY INFORMATION BAD
>> 	SALVAGE? yes
>>
>> 	BLK(S) MISSING IN BIT MAPS
>> 	SALVAGE? yes
>>
>> 	10707223 files, 158068913 used, 59088404 free (1210332 frags, 7234759 blocks, 0.6% fragmentation)
>>
>> 	***** FILE SYSTEM MARKED DIRTY *****
>>
>> 	***** FILE SYSTEM WAS MODIFIED *****
>>
>> 	***** PLEASE RERUN FSCK *****
>>
>> fsck -y /data
>> 	** /dev/ada0s4f
>>
>> 	USE JOURNAL? yes
>>
>> 	** SU+J Recovering /dev/ada0s4f
>> 	Journal timestamp does not match fs mount time
>> 	** Skipping journal, falling through to full fsck
>>
>> 	** Last Mounted on /s4/data
>> 	** Phase 1 - Check Blocks and Sizes
>> 	** Phase 2 - Check Pathnames
>> 	** Phase 2 - Check Pathnames
>> 	** Phase 3 - Check Connectivity
>> 	** Phase 4 - Check Reference Counts
>> 	** Phase 5 - Check Cyl groups
>> 	10707223 files, 158068913 used, 59088404 free (1210332 frags, 7234759 blocks, 0.6% fragmentation)
>>
>> 	***** FILE SYSTEM MARKED CLEAN *****
>>
>> 	***** FILE SYSTEM WAS MODIFIED *****
>>
>> Cheers,
>> Julian
>> -- 
>> Julian Stacey,  BSD Linux Unix Sys. Eng. Consultant Munich http://berklix.eu
>>   Mail plain text,  No quoted-printable, HTML, base64, MS.doc.
>>   Prefix old lines '> '  Reply below old, like play script.  Break lines by 80.
> If you tell fsck to use the journal, it assumes that the filesystem is
> basically in good shape and it just needs to take care of the
> transactions in the journal.  That way the the reboot is much quicker
> because it doesn't have to wait for a full fsck.
>
> If media errors or other unexpected problems arise, then they are
> not known by the journal and will only be found by running a full
> fsck (which is what is what you got when you did a second run above).

that's a good explanation.. maybe it should be put in the man page in 
that way (easy to understand) ..

>
> 	Kirk McKusick
> _______________________________________________
> freebsd-fs at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-fs
> To unsubscribe, send any mail to "freebsd-fs-unsubscribe at freebsd.org"
>



More information about the freebsd-fs mailing list