I've recently taken up the adventure of looking at my girlfriend's semi-dead Macbook Pro. I had been neglecting the poor thing for too long, and it was time to get it up and running.
I think (or maybe hope) the issue may be a corrupt filesystem, perhaps in the boot blocks or the Volume Header. While it can't boot into OSX properly anymore, the personal data recovered from the disk seems to be in-tact. Thankfully, the OSX Recovery Mode (in this case) has made it fairly simple to get this data back. Not without a few hiccups of course.
First off, what is Recovery Mode?
Recovery Mode is a special feature on a Mac to allow a user access to a basic environment on the machine. This mostly allows for diagnostics to be performed on the machine (memory tests, filesytem tests and repairs, etc.). It does provide some other utilites though, such as recovery using Time Machine and a few handy command line tools.
For those familiar with Linux, just imagine loading an image into memory from a disk or thumb drive (a very similar setup). For people who are used to Windows or OSX, imagine the little OS you get to run when installing from a boot disk.
To access Recovery Mode, hold CMD-R during boot. After a minute or so, you should be dropped into a screen like this:
One other note...
While I hope you gather good tips and ideas while reading this, realize you should also have a good laugh at my expense at some parts. The moral of the story is, planning ahead can help.
Avoid a situation where you need to do a backup from Recovery Mode.
In this case, we weren't properly prepared with a backup on this machine. It's obviously much better to plan for later where possible.
Use Time Machine to perform your recovery, if possible.
While I'm not very familiar with Time Machine yet, it seems like a useful utility to take advantage of. And since Recovery Mode supports restoring a machine with this, it seems worthwhile to spare yourself in the future.
Adjust the powermanagement settings to disable sleep mode.
Recovery Mode appears configured to have the machine go to sleep after 10 minutes by default (power adapter or otherwise). Since the system won't adjust the timer for sleeping due to something on the command line, this will terminate your remote backup attempts.
First, check the power settings
Do this by running
pmset -g. This lists off current settings such as if sleep mode or disk-sleep mode are on, how long until something turns off, etc.
Next, disable sleep mode if needed for the disk and the system
Do this by running
pmset -a sleep 0, then run
pmset -a disksleep 0. The zero in this case denotes how many minutes until either of these settings is applied.
- First, check the power settings .
Ensure your backup machine is reliable
During the backup, I found that my typical backup machine was being quite unreliable (dropping its connection to the network). It's also not the fastest machine, which just meant the process took even longer than one would like. Switching over to my primary computer which is much more reliable seemed to help greatly.
Ensure your backup machine has enough disk space
During the backup onto my primary machine, I found out that I was lacking in the disk space needed for this.
Calculate the size of the directory to back up.
Do this by running
du -sh. It should give you the total directory structure's size in GB's (a more 'human-readable' format if you will).
Check for duplicated items
It turns out there were duplicated items within the user's Library directory (all of the User directory essentially). Skipping those bought me a ton of extra space. I don't know the reason behind their duplication yet however.
- Calculate the size of the directory to back up.
- Get your backup plan in place after you've recovered Now that I've got the backup finished and the machine running once again, I need to put into place some kind of backup strategy. On my current (Linux) machine, I use a simple rsync setup to a few different locations, which would be sufficient here too. That being said, Time Machine seems like a worthwhile thing to investigate first.