How to restore a failed external hard drive from Time Machine?

My external hard drive has failed. It will no longer spin up and therefore is unmountable. Thankfully I had added it to my OSX Time Machine backups. So, since disks are cheap, I can just go buy a new, probably larger external drive and restore, right? But how do I tell Time Machine that this is a replacement and to restore to the new drive?


PS - Yes I did remove the external drive from TM's exclude list and have verified that the backup is there on TM's own external drive.


PPS - Posted this same question on the Apple support forum and got a response that I just need to name the new disk the same as the old disk. This was not from an Apple employee. Any thoughts?


Solution 1:

Naming the brand new drive the same as the old drive is the first step, but it doesn't get your files restored. After that you need to open the (empty) drive in Finder and then "Enter Time Machine" from the Time Machine icon in the Menu Bar. You can then go back to your last backup, select all the files and folders at the top level of your (old) drive, control-click on them and restore them. Prior to doing this I turned off Time Machine backups while this long restore was taking place.

I tried Migration Assistant but it didn't appear to have the ability to select a specific hard drive to restore.

I am in the middle of a restore using this method, and have yet to see whether Time Machine in Snow Leopard successfully identifies the new drive as the same as the old drive. When I tried this method last year in Leopard, Time Machine decided that the identically-named drive was a new drive with the same name -- I ended up with two backups named "Ext HD" and Ext HD 1", one of which was the old, discarded drive, and the two together doubling the amount of space they used on my backup drive. You can control-click on an item in Time Machine and have it delete all backups of an item if you end up in this situation, but then you'll lose all your old archival backup data for the drive.

Also, I suspect this method misses hidden files at the root of the drive -- if you've changed the drive icon it isn't restored, for example. If that's a problem I believe you can navigate up one level to the machine in the Time Machine window, select just the external hard drive backup, and restore everything, but it will then be in a folder named after your external hard drive. You'll have to manually move both the visible and hidden items once the restore is done.

Solution 2:

Lets assume

  • your old disk was mounted under /Volumes/USB-old
  • the new disk is mounted as /Volumes/USB-new (may be the same name as the old one. I use a different name to make clear what is what)
  • the time machine backup is under /Volumes/backups

To restore the backup stop time machine (in the preferences: uncheck the "Back Up Automatically" checkbox) and restore it on the command line:

sudo tmutil restore /Volumes/backups/Backups.backupdb/MacBookPro/Latest/USB-old/* /Volumes/USB-new

You can associate the new disk with the backup using:

sudo tmutil associatedisk /Volumes/USB-new /Volumes/backups/Backups.backupdb/MacBookPro/Latest/USB-old

Note: even if your new disk is mounted under the same name as the old one, you have to run the command above, because time machine uses the disk UUID and not the disk name to associate the backup (see man tmutil)!

If you now switch on time machine, it will not create a new backup and add changes on top of the old backup.

Solution 3:

Naming the new volume the same as the old one makes it very easy to go back one step in time and restore the contents of that volume's root directory.

What the restore doesn't seem to do is copy over the extended attributes

com.apple.metadata:_kTimeMachineNewestSnapshot 

and

com.apple.metadata:_kTimeMachineOldestSnapshot

that Time Machine uses to decide whether it needs to re-backup a file. So, when you turn Time Machine back on with the new volume in place, it backs up another copy of every single file instead of creating just another set of hard links to the copy it already has. If you have a backup drive that is big enough then this is OK (not ideal, but OK). If your backup drive doesn't have the additional room, then you've potentially got a problem.

I haven't tried restoring the files using Unix commands instead of Time Machine's "Restore" button to see if one can keep the extended attributes in place. I believe that they are kept in the Time Machine backup so in theory one should be able to retain them and make Time Machine understand that it still has an unchanged copy of the files.