Mac failing (failed?) hard drive - is all hope lost?

7,422

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)...

Share:
7,422

Related videos on Youtube

Daniel
Author by

Daniel

Updated on September 18, 2022

Comments

  • Daniel
    Daniel over 1 year

    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.

  • Spiff
    Spiff over 12 years
    +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.
  • Gordon Davisson
    Gordon Davisson over 12 years
    @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).
  • Daniel
    Daniel over 12 years
    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?
  • Gordon Davisson
    Gordon Davisson over 12 years
    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).