Hi folks,
Okay I'm really lost and desperate and hope someone can give me a hint.
I have an external USB drive with 3 ReiserFS partitions which were working without trouble last time I connected it a few days ago.
However, today after attaching the drive
none of the partitions are recognized as Reiserfs (the partition table seems fine however). So I did various (read-only) checks, read up about the reiser filesystem structure etc. and, using hexdump, realized that the superblock of
all three partitions seem to contain invalid data.
So I created a disk image of one of the partitions and ran testdisk. It found
a number of superblocks at various offsets (I believe all within the journal area) but was not able to recover anything. Next, I tried two things:
Code:
reiserfsck -rebuild-sb && reiserfsck -rebuild-tree -S
which recovered a lot of files, however *a lot* of them ended up in lost+found with a generic name so were essentially useless.
Second thing I tried (with the original image) was manually copying one of the superblocks to offset 0x10000. Unfortunately, I was still unable to mount the image and although testdisk was now able to browse the filesystem, it only showed those files which reiserfsck fully recovered in attempt 1.
I checked my system logs but as far as I can tell the hard drive was properly unmounted last time and nothing else done with it since then. So I have absolutely no idea what is going on...
Here are some relevant details of my setup:
System: Debian wheezy/sid 2.6.38-2-686
HDD: WDC WD30
lsusb: Bus 001 Device 005: ID 067b:2507 Prolific Technology, Inc. PL2507 Hi-speed USB to IDE bridge controller
Code:
# fdisk -l /dev/sdb
Disk /dev/sdb: 300.1 GB, 300069051904 bytes
255 heads, 63 sectors/track, 36481 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x525dcb85
Device Boot Start End Blocks Id System
/dev/sdb1 1 24323 195374466 83 Linux
/dev/sdb2 24324 30402 48829567+ 83 Linux
/dev/sdb3 30403 36481 48829567+ 83 Linux
What's rather weird is that the first 64k of all partitions are zeros as they should be but what follows is not a superblock but something else (part of the journal maybe). FWIW, here are the first few lines of the dump output:
Code:
# hexdump -C /dev/sdb1
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00010000 1c b6 00 00 31 b6 00 00 32 b6 00 00 37 b6 00 00 |....1...2...7...|
00010010 39 b6 00 00 0c b7 00 00 0d b7 00 00 38 b7 00 00 |9...........8...|
00010020 3b b7 00 00 47 b7 00 00 4a b7 00 00 4b b7 00 00 |;...G...J...K...|
00010030 62 b7 00 00 f0 b7 00 00 f1 b7 00 00 f2 b7 00 00 |b...............|
00010040 1c b6 00 00 31 b6 00 00 32 b6 00 00 37 b6 00 00 |....1...2...7...|
00010050 39 b6 00 00 0c b7 00 00 0d b7 00 00 38 b7 00 00 |9...........8...|
00010060 3b b7 00 00 47 b7 00 00 4a b7 00 00 4b b7 00 00 |;...G...J...K...|
00010070 62 b7 00 00 f0 b7 00 00 f1 b7 00 00 f2 b7 00 00 |b...............|
00010080 1c b6 00 00 31 b6 00 00 32 b6 00 00 37 b6 00 00 |....1...2...7...|
The reiser partitions on another drive work fine. Can anyone tell me what might have caused this? Could it be the controller?
Cheers,
AusBob