So, the other day I opened up my MBP 2011 (on El Cap) and found it's battery to be drained. Plugged it in and booted it up and got a flashing folder with a question mark thrown in my face. It stood there for a while, mocking me. I thought the worst. But then it suddenly started to come to life, and it actually booted, by it self. Hooray! Figured I should backup and get a new disk, but ultimately I didn't. And today it just came to a halt and I had to shut it down with the power button. Now it of course does not boot at all.
Entering single user is not possible as it won't recognize there an operating system there at all. I can however use internet recovery to get to diskutil, but it fails the recovery with an "invalid node structure" and "disk full" messags.
Same happens if I go to the terminal and run
fsck_hfs -l or
fsck_hfs -yprd. Giving me the dreaded message
Volume was found corrupt and needs to be repaired.
So the disk is probably toast. It's nearly 5 years old and never(!) formated. The lack of formatting was why I figured it was running so slow to begin with (I'm holding out for the Skylake MBP's –Apple this is all your fault!).
- Now, what's my best course of action in this situation?
- Get DiskWarrior and try that?
- Try accessing the disk via target mode from another computer?
- Use ddrescue (how do I do that?)
Ultimately I settled on the fourth alternative.
So it seems the file system is messed up. Initially I thought the hard drive cable was borked. But it's not the case. I haven't dropped my computer or anything like that. I haven't heard any ticking sounds either. But I have experience tremendous slowdowns. I didn't think much of it, except that I probably had those thanks to not having formatting the drive in 5 years.
I went to the computer store and got myself:
- 1x 4TB 3.5" hard drive + chassi (For cloning the crashed drive)
- 1x 1TB 2.5" hard drive + chassi (For hosting the clone)
- A 250GB SSD to use as main drive in the MacBook.
So when I got home from work today I pulled the drive from my MacBook and put it in the 2.5" chassi. Put the 4TB drive in the 3.5" chassi and followed this helpful tip.
I ran ddrescue via
sudo /usr/local/bin/ddrescue -v -n -c 4096 /dev/disk5s2 Rescue.dmg Rescue.log
..and it started chugging away, cloning the disk to my 4TB disk.
When I came back 2 hours later it had spit out the message "Finished" and I noted that it had rescued 90GB.
GNU ddrescue 1.20 About to copy an unknown number of Bytes from /dev/disk2s2 to Rescue.dmg. Starting positions: infile = 0 B, outfile = 0 B Copy block size: 4096 sectors Initial skip size: 128 sectors Sector size: 512 Bytes Press Ctrl-C to interrupt Initial status (read from mapfile) rescued: 90752 MB, errsize: 5120 B, errors: 10 Current status rescued: 90752 MB, errsize: 5120 B, current rate: 0 B/s ipos: 749297 MB, errors: 10, average rate: 0 B/s opos: 749297 MB, run time: 1s, remaining time: n/a time since last successful read: 1s Finished
Given the drive is 750GB I was not that happy. I also noted that the drive was no longer appearing in diskutil like it did initially. I rebooted. Still no disk. So I pulled the usb cable and put it back, and there it was again. Phew.
I ran ddrescue again and got the message "too many files" thrown in my face. Which I found odd, and then the computer dismounted the 4TB disk and the crashed drive and OSX froze. I tried again and OSX froze up again.
At this point I had gotten the 250GB SSD setup in the MacBook and gotten OSX on there. So I plugged the crashed drive and the 4TB drive in there instead and tried to run ddrescue. But it would only tell me "Finished" after a millisecond.
After some Googling I found that I should drop the "-n" and maybe try "-r" instead. So this is what I'm doing now. I sent it running with "-r2" And have been able to rescue a couple of more GB's:
GNU ddrescue 1.20 About to copy an unknown number of Bytes from /dev/disk2s2 to Rescue.dmg. Starting positions: infile = 0 B, outfile = 0 B Copy block size: 4096 sectors Initial skip size: 128 sectors Sector size: 512 Bytes Press Ctrl-C to interrupt Initial status (read from mapfile) rescued: 90752 MB, errsize: 5120 B, errors: 10 Current status rescued: 120869 MB, errsize: 45568 B, current rate: 6610 kB/s ipos: 120869 MB, errors: 23, average rate: 4240 kB/s opos: 120869 MB, run time: 1h 58m 22s, remaining time: n/a time since last successful read: 0s Scraping failed blocks... (forwards)
I'm curious. Where do I go from here? Can I somehow reclaim those "45568 B"? Can I find out what sort of files they are?
Any suggestions, tips or tricks are very appreciated!
Seeing I'm desperate and that I read that cooling the drive might help this happened. Yes that is loaves of frozen bread on top of the drive with some plastic in between.