If dumpfs(8) produces valid output from the superblock, that will at least give you some idea of the possibilities for data recovery. If it looks valid, and you had a spare 1/2 TB of disk space available, you could attempt to copy a drive image to it, using something like:
# dd if=/dev/rwd1c of=/path/to/copy.of.wd1c conv=noerror,sync bs=64k
It would likely take a very, very long time to copy, as all of the bad blocks will be retried over and over before they either timeout or reflect a read error.
From there, forensic analysis tools like The Sleuth Kit could be used to determine if there are readable inodes that point to valid file or file fragments, and possibly extract some or all of it. Sleuthkit is available as a package for OpenBSD.
This is that long, involved, and difficult analysis requiring a skilled technician I mentioned above.
|