Fixing up a HFS+ filesystem enough to rescue some files I have a HFS+ formatted drive that just died on me. I have a back up but it's a about a week old. Unfortunately, I have a few files that I've changed and added since then that I would like to rescue before throwing it out.

Running fsck on it gives this output:

tangrs:~ new_tangrs$ sudo fsck_hfs -d /dev/disk1s2
Password:
journal_replay(/dev/disk1s2) returned 0
** /dev/rdisk1s2
    Using cacheBlockSize=32K cacheTotalBlock=32768 cacheSize=1048576K.
   Executing fsck_hfs (version diskdev_cmds-557~393).
** Checking Journaled HFS Plus volume.
** Checking extents overflow file.
** Checking catalog file.
   Missing thread record (id = 18)
   File record has hard link chain flag (id = 14050171)
   File record has hard link chain flag (id = 14050178)
   File record has hard link chain flag (id = 14050182)
...
   File record has hard link chain flag (id = 9464626)
   File record has hard link chain flag (id = 9464630)
   File record has hard link chain flag (id = 9464633)
   Missing thread record (id = 2056093)
   Missing thread record (id = 2056272)
   Missing thread record (id = 3885380)
...
   Missing thread record (id = 21227307)
   Missing thread record (id = 21479379)
   Missing thread record (id = 21504654)
   Incorrect number of thread records
(4, 154)
    CheckCatalogBTree: dirCount = 3230, dirThread = 1815
   Incorrect number of thread records
(4, 154)
    CheckCatalogBTree: fileCount = 3640, fileThread = 1935
   Unused node is not erased (node = 40959)
** Checking multi-linked files.
   Incorrect number of file hard links
    filelink prime buckets do not match
** Checking catalog hierarchy.
** The volume   could not be verified completely.
    volume check failed with error 2 
    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 1329072302 0x4f3808ae 
    sector size = 512 0x200 
    VolumeObject flags = 0x07 
    total sectors for volume = 1329072304 0x4f3808b0 
    total sectors for embedded volume = 0 0x00 
CheckHFS returned -1317, fsmodified = 0
tangrs:~ new_tangrs$


Obviously the volume is beyond the help of disk utility.

When I try to mount it, it just kicks me out with a weird error message.

tangrs:~ new_tangrs$ sudo mount -o ro -t hfs /dev/disk1s2 /Volumes/HDD
mount_hfs: No such file or directory
tangrs:~ new_tangrs$ sudo dmesg | tail
hfs_mountfs: encountered failure 2 
hfs_mount: hfs_mountfs returned 2
hfs_mounthfsplus: cat_idlookup returned (2) getting rootfolder 
hfs_mounthfsplus: encountered errorr (2)
hfs_mountfs: encountered failure 2 
hfs_mount: hfs_mountfs returned 2
hfs_mounthfsplus: cat_idlookup returned (2) getting rootfolder 
hfs_mounthfsplus: encountered errorr (2)
hfs_mountfs: encountered failure 2 
hfs_mount: hfs_mountfs returned 2
tangrs:~ new_tangrs$


Can anyone help out here?
Disk warrior has saved my bacon more than once:

http://www.alsoft.com/DiskWarrior/