[OpenAFS] OAFS 1.4.2fc4 Solaris8 Problems salvaging volumes

Chaskiel M Grundman cg2v@andrew.cmu.edu
Fri, 29 Sep 2006 20:52:25 -0400


--On Friday, September 29, 2006 05:08:02 PM -0500 Matt Elliott 
<melliott@ncsa.uiuc.edu> wrote:
> ----------   1 daemon   root        8041 Apr 28 05:48 zzzz56VJNE0

This file is much larger than I would have expected. it should be a fixed 
size (552 bytes on i386 linux. sparc solaris may not be identical, but 
should be similar)
> 09/29/2006 17:05:13 CHECKING CLONED VOLUME 1.
> 09/29/2006 17:05:13 Part of the header (Volume information) is corrupted
> 09/29/2006 17:05:13 totalInodes 20
>
> Well, we got further. Any more ideas?
I think it would make sense to delete the cloned volume id  "1". I have no 
idea what would have created that.

I think you will have files
zzzz52, zzzz92, zzzzD2 in the special directory.

move them aside and try salvaging again.

>>> 09/29/2006 10:15:50 Recreating link table for volume 605564696.
>>> Unable to allocate link table inode for volume 605564696 (error = 20)
>> 20 is ENOTDIR.
>>
>> what's in /vicepd/AFSIDat/M/Mw04Y/special?
>> does that path exist as a directory?
>
> Nope, it shows up as a file.
>
># pwd
> /vicepd/AFSIDat/M/Mw04Y
># ls -la
> total 20
> drwx------   3 root     root         512 Apr 27 22:13 +
> drwx------   3 root     root         512 Apr 27 22:13 .
> drwx------   3 root     root         512 Sep 27 13:06 ..
> ----------   1 daemon   root        6640 Apr 28 05:48 special
Recovering from this problem is going to be tough. you need new special 
files (link table, volume info file, vnode indices) , and the salvager 
isn't smart enough to recreate all of them properly. There are some 
experimental tools someone I know wrote (who can speak up if he so desires) 
that might be able to help with this situation, but it would be pointless 
to spend time on that if there are other problems with the volume (such as 
a missing root directory).

please run salvager -inodes /vicepd 605564696 and send me the output (or 
put it in afs and send the list a pointer.)

what you should _not_ do is remove the file "special", create a directory 
there, and run the salvager. if you do that, all the files in the volume 
will be deleted.