EDIT: I found a quasi-solution that sort of kind of works:
mount -o loop,offset=209739776,rw -t hfsplus /dev/sdc /mnt/mountpoint/
It appears (via "find /mnt/mountpoint/") that all my data is there, but attempts to access some of my data yields an "input/output error".
I had an external 2 or 3 TB (I'm not sure which) USB drive connected to my Mac (running OS X Snow Leopard) with an HFS+ journaled filesystem on it.
The drive was working fine, but was a bit slow and occasionally gave
I/O errors, so I backed up my files and ran
fsck_hfs on it.
fsck_hfs died while trying to rebuild the B-tree, and the drive won't
mount at all now. Also, I lied about making backups first.
How do I get this drive working again? Given the redundancy of HFS+, this should be possible no? Other notes:
- If I run
fsck.hfsplus -df /dev/sdb3on a Linux box, I get this:
Block 1565298166 is not an MDB or Volume Header
** Checking HFS Plus volume. Invalid number of allocation blocks (-1, 0) IVChk - volume header total allocation blocks is greater than device size
volume allocation block count 732533183 device allocation block count 195662271
** Volume check failed. volume check failed with error 7
volume type is pure HFS+
primary MDB is at block 0 0x00
alternate MDB is at block 0 0x00
primary VHB is at block 2 0x02
alternate VHB is at block 1565298166 0x5d4c8df6
sector size = 512 0x200
VolumeObject flags = 0x03
total sectors for volume = 1565298168 0x5d4c8df8
total sectors for embedded volume = 0 0x00
Using a Perl script and "seek", I can see some of my filenames surrounded by information that I assume is telling me where on the drive to find my files. If all else fails, I'll pursue recovering files this way, but I'd prefer a "cleaner" recovery option.