On Thu, 3 Oct 2013 at 20:42, Christos Zoulas <chris...@zoulas.com> wrote: > > On Oct 3, 5:08pm, net...@precedence.co.uk (Stephen Borrill) wrote: > -- Subject: Re: too many inodes error from fsck > > | I tried it, but I read that message as saying that an unknown inode has a > | link to an invalid inode in a linked list and the inode I need to clear is > | the one that references the invalid inode. > > I guess make it print the inode you want it to remove. > > | It has WAPBL enabled on it, so I would have hoped the metadata would be OK > | even if the actual file contents were not :-/ > > I wonder what heppened then. It got pretty mangled!
Following up on this (ancient :) thread, as I'm hitting a related issue. I have a filesystem failing fsck with "bad inode number 34610688 to nextinode" and its not in a convenient place to copy all data off to rebuild, so I'd like to investigate options to clear the affected inode. The message is triggered from pass1.c for (ii = 0; ii < inosused; ii++, inumber++) { if (inumber < UFS_ROOTINO) { (void)getnextinode(inumber); /* <------ here */ continue; } Adding a quick printf before that loop of printf("inumber %llu, inosused %lld\n", (unsigned long long)inumber, (unsigned long long)inosused); and tweaking the bad inode number message to include lastvalidnum gives a fair amount of output, ending with: inumber 34091008, inosused 11264 inumber 34194944, inosused 11264 inumber 34298880, inosused 11264 inumber 34402816, inosused 11264 inumber 34506752, inosused 839647232 bad inode number 34610688 (max 34610687) to nextinode "one of those things is not like the others". It looks like we have a bad inosused, which runs off the end of the available space (>.lastvalidinum) This feels like something from which fsck could recover? David