Hi, Eric....thanks for your suggestions.
First, of all, it turns out that I can mount the loopback copy of this
filesystem, though I'm not sure if the difference between that version
and the original disk version is due to additional runs of xfs_repair
or something else. Trying to mount the original still gives the
generic "wrong fs type, bad superblock" message.
When I mount the loopback version there are lots of directories with
leading slashes and if I try to copy almost anything off of it (even
things without leading slashes), I get "Unknown error 990"
and repair gives thousands and thousands of errors like:
entry at block 1078 offset 1792 in directory inode 58812988 has
illegal name "/27523.": entry "/27524." at block 1078 offset 1816 in
directory inode 58812988 references invalid inode 18374686479671623679
clearing inode number in entry at offset 1816...
running strace with the etrace option doesn't seem to show
much...there are 18 lines of "
read(3, "XFSB\0\0\20\0\0\0\0\0\0$\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
2048) = 2048
in phase 1, but no other strace output.
If at all useful, here's the very end of a full strace output:
pread(4, "XD2D\2\340\r \0\0\0\0\0\0\0\0\0\0\0\0\2\212\221\16\007"...,
4096, 7869706240) = 4096
pread(4, "XD2D\0\20\vX\v\200\1\340\rx\1h\377\377\vX\2\212\375\\\007"...,
4096, 7869726720) = 4096
pread(4, "XD2D\5\370\n\10\0\20\5\320\0\0\0\0\377\377\5\320\2\213"...,
4096, 7869730816) = 4096
pread(4, "XD2D\0\20\6\30\v8\4\310\10\200\1\260\377\377\6\30\2\213"...,
4096, 7869734912) = 4096
pread(4, "XD2D\4\30\n\370\0\20\2\350\3\20\0\360\377\377\2\350\2\213"...,
4096, 7869739008) = 4096
pread(4, "XD2D\t\240\6H\0p\5\240\6(\3`\377\377\0H\2\213v\341\007"...,
4096, 7869747200) = 4096
brk(0) = 0x8270000
brk(0x8291000) = 0x8291000
pread(4, "XD2D\0\20\r\310\16P\1h\r\360\0H\377\377\r\310\2\213\221"...,
4096, 7869751296) = 4096
pread(4, "XD2D\0\20\6\30\6@\0048\n\220\3`\377\377\6\30\2\213\247"...,
4096, 7869755392) = 4096
write(2, "\nfatal error -- ", 16
fatal error -- ) = 16
write(2, "can\'t read block 8388608 for dir"..., 54can't read block
8388608 for directory inode 54540222
) = 54
exit_group(1) = ?
-Tupshin
On Mon, 2 Aug 2004 09:46:30 -0500 (CDT), Eric Sandeen <sandeen@xxxxxxx> wrote:
> On Mon, 2 Aug 2004, Tupshin Harper wrote:
>
> > I have an xfs partition that xfs_repair refuses to fix. It always dies
> > with the following:
> >
> > Phase 6 - check inode connectivity...
> > - resetting contents of realtime bitmap and summary inodes
> > - ensuring existence of lost+found directory
> > - traversing filesystem starting at / ...
> > rebuilding directory inode 128
> > empty data block 9 in directory inode 54540222: junking block
> >
> > fatal error -- can't read block 8388608 for directory inode 54540222
>
> maybe stracing xfs_repair would tell us what the real error was, although
> the output will be quite large - the option "-etrace=read" might catch
> only the read calls, and see if one fails. Or, maybe some creative
> printf debugging in phase6.c to find the underlying error.
>
> > I have tried dd'ing it to a file on another filesystem, and I get the
> > same results. I've tried running it a few times, and no change. Mount
> > doesn't recognize it.
>
> What does mount say?
>
> -Eric
>
>
|