From owner-freebsd-hackers@FreeBSD.ORG Tue Sep 25 07:50:22 2007 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 39DBB16A41B for ; Tue, 25 Sep 2007 07:50:22 +0000 (UTC) (envelope-from samflanker@gmail.com) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.184]) by mx1.freebsd.org (Postfix) with ESMTP id 69C0813C469 for ; Tue, 25 Sep 2007 07:50:21 +0000 (UTC) (envelope-from samflanker@gmail.com) Received: by nf-out-0910.google.com with SMTP id b2so1378582nfb for ; Tue, 25 Sep 2007 00:50:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:user-agent:mime-version:to:cc:subject:references:in-reply-to:content-type:content-transfer-encoding; bh=9sOevAwGUQzWwiBe6DTR+MA/KIhqiG3C+v7Us4G/8FE=; b=rNc5od38wFbmmwM4hjiDbiga3zBnT18ND00byIXMW/ooU2gL2P1hWaYb0AtfV2dqrgrP/Sl2fH41edlueUntYm5aHxLVZfeTjropJnokd/BOOUqrvsEwRcJ9FlzWflwCEY93BTBZrPaelmropmKoE3xcr6WDGN55B9zFScloHUs= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:user-agent:mime-version:to:cc:subject:references:in-reply-to:content-type:content-transfer-encoding; b=m4bM748EgAQGswSysSaojJ7YCaDLw+ED9y18QMAmsAOiUIxU4c06abBudTTttCqluU0Bv+z0Udv2ZLiYjsletT3zyH768uljsQT4rPAcHiWlNHF6tdK58R0p/o1SwMCVbRXFbWKZU1/4oRpXVJz04nNeh1hFBPR42d5N2i2nRfc= Received: by 10.86.93.17 with SMTP id q17mr5411696fgb.1190706620030; Tue, 25 Sep 2007 00:50:20 -0700 (PDT) Received: from ?192.168.1.185? ( [213.152.137.35]) by mx.google.com with ESMTPS id 31sm12473465fkt.2007.09.25.00.50.17 (version=SSLv3 cipher=RC4-MD5); Tue, 25 Sep 2007 00:50:18 -0700 (PDT) Message-ID: <46F8BDAD.4000309@gmail.com> Date: Tue, 25 Sep 2007 11:50:05 +0400 From: sam User-Agent: Thunderbird 2.0.0.4 (Windows/20070604) MIME-Version: 1.0 To: Don Lewis References: <200709242330.l8ONU0IT008004@gw.catspoiler.org> In-Reply-To: <200709242330.l8ONU0IT008004@gw.catspoiler.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-hackers@FreeBSD.org Subject: Re: fsck of large volume with small memory X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Sep 2007 07:50:22 -0000 Don Lewis wrote: > On 24 Sep, sam wrote: > > Expect major file system lossage ... > I think this patch could be better, but this should get you going ... > > Index: sbin/fsck_ffs/pass1.c > =================================================================== > RCS file: /home/ncvs/src/sbin/fsck_ffs/pass1.c,v > retrieving revision 1.43 > diff -u -r1.43 pass1.c > --- sbin/fsck_ffs/pass1.c 8 Oct 2004 20:44:47 -0000 1.43 > +++ sbin/fsck_ffs/pass1.c 24 Sep 2007 23:15:22 -0000 > @@ -93,9 +93,29 @@ > inumber = c * sblock.fs_ipg; > setinodebuf(inumber); > getblk(&cgblk, cgtod(&sblock, c), sblock.fs_cgsize); > - if (sblock.fs_magic == FS_UFS2_MAGIC) > + if (sblock.fs_magic == FS_UFS2_MAGIC) { > inosused = cgrp.cg_initediblk; > - else > + if (inosused < 0 || inosused > sblock.fs_ipg) { > + pfatal("CG %d: PREPOSTEROUS NUMBER OF INODES %d (cg_initediblk), ASSUMING %d (fs_ipg)\n", > + c, inosused, sblock.fs_ipg); > + /* > + * The cylinder group block is most likely > + * totally corrupted and will probably > + * fail the magic number check below as well. > + * Ignoring cg_initediblk and setting > + * inosused to sblock.fs_ipg will allow > + * a manual fsck to proceed further instead > + * of dying when it attempts to allocate > + * an insane amount of memory to store > + * the inode info for this cylinder group. > + * This may provide enough information > + * to allow the system administrator to > + * do a better job of patching the > + * filesystem with fsdb. > + */ > + inosused = sblock.fs_ipg; > + } > + } else > inosused = sblock.fs_ipg; > if (got_siginfo) { > printf("%s: phase 1: cyl group %d of %d (%d%%)\n", > > > after patching ====================================================== # fsck /dev/aacd0s1f ** /dev/aacd0s1f (NO WRITE) ** Last Mounted on /usr ** Phase 1 - Check Blocks and Sizes CG 124: PREPOSTEROUS NUMBER OF INODES 1668246575 (cg_initediblk), ASSUMING 23552 (fs_ipg) UNEXPECTED SOFT UPDATE INCONSISTENCY ** Phase 2 - Check Pathnames UNALLOCATED I=2732216 OWNER=svn MODE=40755 SIZE=512 MTIME=Sep 4 12:22 2007 DIR=/home/svn UNEXPECTED SOFT UPDATE INCONSISTENCY REMOVE? no UNALLOCATED I=2732189 OWNER=venom MODE=40755 SIZE=512 MTIME=Sep 3 17:16 2007 DIR=/home/venom/svn UNEXPECTED SOFT UPDATE INCONSISTENCY REMOVE? no UNALLOCATED I=2732248 OWNER=root MODE=40755 SIZE=512 MTIME=Sep 14 19:03 2007 DIR=/home/venom/temp/devel/trunk *** DELETE OUTPUT *** ** Phase 3 - Check Connectivity UNREF DIR I=2755667 OWNER=games MODE=40750 SIZE=1536 MTIME=Jul 19 16:45 2007 RECONNECT? no UNREF DIR I=2755600 OWNER=games MODE=40750 SIZE=1024 MTIME=Jul 19 16:45 2007 RECONNECT? no UNREF DIR I=2755628 OWNER=games MODE=40750 SIZE=1536 MTIME=Jul 19 16:45 2007 RECONNECT? no UNREF DIR I=2755584 OWNER=games MODE=40750 SIZE=512 MTIME=Jul 19 16:45 2007 RECONNECT? no ** Phase 4 - Check Reference Counts UNREF FILE I=541705 OWNER=root MODE=100555 SIZE=218296 MTIME=Sep 10 14:51 2007 CLEAR? no UNREF FILE I=541950 OWNER=root MODE=100555 SIZE=37832 MTIME=Sep 10 14:52 2007 CLEAR? no *** DELETE OUTPUT *** UNREF FILE I=4875961 OWNER=root MODE=100444 SIZE=35552 MTIME=Sep 10 14:50 2007 CLEAR? no UNREF FILE I=6312454 OWNER=root MODE=104555 SIZE=15880 MTIME=Sep 10 14:52 2007 CLEAR? no ** Phase 5 - Check Cyl groups CG 116: BAD MAGIC NUMBER UNEXPECTED SOFT UPDATE INCONSISTENCY FREE BLK COUNT(S) WRONG IN SUPERBLK SALVAGE? no SUMMARY INFORMATION BAD SALVAGE? no BLK(S) MISSING IN BIT MAPS SALVAGE? no CG 124: BAD MAGIC NUMBER UNEXPECTED SOFT UPDATE INCONSISTENCY LOST 74 DIRECTORIES UNEXPECTED SOFT UPDATE INCONSISTENCY fsck: /dev/aacd0s1f: Segmentation fault: 11 # ====================================================== /Vladimir Ermakov