1

It's a 500 GB Seagate laptop hard drive that came with my Macbook Pro. Apple partition format.

Already replaced and now have it external, connected via SATA/USB adapter. Trying to get just a few files that I worked on while out of town when it crashed (and thus did not have my time machine backup drive).

Drive will not mount, but OS X Disk Utility detects it and can read the capacity, model number, and even the name of the partition, which leads me to believe all hope may not be lost.

Failed attempts so far:

  • Disk Utility verify+repair says drive cannot be repaired and that I should back up immediately (lovely)
  • Disk Warrior says it cannot rebuild the directory due to hardware failure
  • Data Rescue quick & deep scans immediately failed
  • PhotoRec says "error reading sector" for every sector (at least for the few minutes I let it run before closing it to explore other options)

What else can I try here? Again, I'm just looking for a few, small files (python scripts to be specific) - not a full recovery.

1 Answer 1

4

From your description, I don't think I can offer you much hope. If you're getting read errors everywhere something pretty serious has gone wrong.

One thing you might try is using ddrescue to try to clone the raw volume (there are some notes on running it under OS X on tinyapps.org). It basically tries to read over & over, getting as much as possible from the disk. Unfortunately, while you only want to recover a little data, you also have to be able to read the volume data structures (catalog etc.) in order to locate the files you're interested in. This pretty much means you need to clone the entire volume, and hence will need a blank space at least as big as the volume (whole volume, not just the used space)...

4
  • +1. I second GNU ddrescue (not to be confused with a very similarly-named utility that is not from GNU). I have used it for exactly this kind of thing. Took me a while to make sense of the man page and figure out how to run it correctly (tip: what its documentation calls a log file is less of a log and more of a "table of bad blocks ddrescue needs to retry later", so you want to run it with a log file), but once I got it running, it saved my bacon.
    – Spiff
    Nov 30, 2011 at 7:33
  • @Spiff I think the similarly-named utility you're thinking of is Kurt Garloff's dd_rescue, which (together with LAB Valentin's dd_rhelp wrapper script) does basically the same thing. My impression is that GNU ddrescue (by Antonio Diaz) was actually inspired by these, and just integrates the functions a bit better (and I think is a little smarter about things like attacking bad sections from both ends, etc). Nov 30, 2011 at 17:13
  • Thank you for the reply. I tried this but it is saying rescued: 0 B, errsize: 589 TB (and this number keeps going up). This is what I'm seeing from dmesg: disk2s2: I/O error. 0 [Level 3] [ReadUID 0] [Facility com.apple.system.fs] [ErrType IO] [ErrNo 5] [IOType Read] [PBlkNum 710335744] [LBlkNum 710335744] [FSLogMsgID 1657890070] [FSLogMsgOrder First] Also if i try to mount it read-only I get this: GetMasterBlock: Error 5 from read; amount=-1, wanted=512 mount_hfs: Input/output error Is there any point in connecting directly via SATA or should the USB adpater work just as well?
    – Daniel
    Dec 1, 2011 at 3:58
  • You can try connecting via SATA, but I don't think it'll change anything. It sounds like the drive is completely unreadable, which probably means something like a controller or motor failure, not something you can get past with software. Unless you happen to have another drive of the same model available to try a controller swap (not for the faint of heart on a modern drive), your only real option is to send it to a data recovery shop that can tear it apart and read the data directly off the platters (this is not cheap). Dec 1, 2011 at 5:38

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .