Sunday, May 31, 2009

How to use Time Machine with a Buffalo Terastation NAS

I always thought how convenient a Time Capsule would be. But I was always discouraged with the cost. I already have a 802.11n Wifi router and already have a NAS too. It was just plain impossible to justify the cost of getting a Time Capsule.

So I looked around to see if there were any other solutions. And I found one. Unfortunately I do not know how it compares to Time Capsule as I do not have one (yes, some investigation needed here). But it does what I need to do and that is take a regular backup of my system.

In my environment I am using a Buffalo Terastation Live with 1TB of storage. The file system where the backups are stored is a 1TB external USB hard drive connected to the Terastation.

Step by step procedure is listed below:

  1. So first things first. In order for your Mac to store backups on NAS drives, you have to change a system property. Please refer to the following command:



    MacBook :~ mactimes$ defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1

    Restart your system in order for the changes to take effect. Once done, Time Machine will allow your system to use a Network drive (non-standard drives in general) to backup your system. But unfortunately, there is still more to do. The application has difficulties creating the backup file and the work around is to manually create this storage container (known as SparseBundle) for Time Machine.

  2. Turn off Time Machine in order to complete the next steps.

  3. Run the following command to grab the MAC address from your Network Interface. This is recreated when creating the backup file.



    MacBook :~ mactimes$ ifconfig en0 | grep ether

    Make a note of the MAC address and remove the colon marks. This and the hostname are required for the naming of the backup file.

  4. Create the "sparesebundle" file on your local file system. We will copy it to the NAS server later.



    MacBook :~ mactimes$ hdiutil create -size 300g -fs HFS+J -volname "Backup of MacBook" macbook_001b63b14f57.sparsebundle
    created: /Users/mactimes/macbook_001b63b14f57.sparsebundle

    note: The "-size" is the max size that you allow the file to grow to. Supply the size which fits your requirements
    note: HFS+J is file type, this does not change.
    note: -volname is the name you configure for your backup file.
    note: output name is [hostname]_[MAC address].sparesebundle

  5. Move the file to the File Server



    MacBook :~ mactimes$ mv macbook_001b63b14f57.sparsebundle /Volumes/usbdisk1/

  6. Now is the moment of truth. In Time Machine Systme Preferences Panel, select "Change Disk". It will display the volumes you can backup to. It should display the volume you moved the file to. If your share is not listed, ensure that the NAS is mounted. Also, if you haven't rebooted after Step 1, please be sure to reboot then try again.

  7. Before starting Time Machine, you will want to stop the indexing on your backup file, else your system will become extremely slow. To do this go to "Spotlight" in your System Preferences. In the Privacy tab, add the share where you copied the backup file.

  8. From here, just turn on Time Machine and let it run. You should get a successful backup although it can take time to complete depending on how much data your hard drives are using.
Now that is it. I have been using this technique to do regular backups and usually let it run over a night during the weekend. So far I have had no issues although I have only recovered one or two files since enabling it.



Just as a note, the technique mentioned above is clearly a hack and not promoted by Apple in any way. I will not be held liable for any data loss especially since I have not fully tested a full recovery myself. This technique worked well for me but I am guessing depending on the hardware used, mileage may vary. If you have any issues, I am more than willing to help for the setup although I cannot guarantee this technique for your environment. Please use at your own risk. If you do have success with this technique, please comment to let others know.

9 comments:

Jim said...

Thank you for your article. Regrettably I can't get your solution to work. Whenever I type in "ifconfig en0 grep ether" I get an error message of "bad value". I have a few Windows Vista machines hanging off my Terastation Live server and they work fine. However, with my MacBook using 10.5.7 of the OS get very very slow file copy performance and I can't create the sparsebundle to use TimeMachine. Any help you can give me would be greatly appreciated.

As you might be able to tell I'm a MAC newbie and even the terminal commands are a bit foreign to me.

Thanks, in advance, for your help on both (file copy and Time Machine) issues.

Anonymous said...

try just "ifconfig en0 | grep ether"

Newb @ MacTimes said...

Anonymous, thank you for correcting my mistake. You are absolutely correct.

I have edited my post with scripting boxes to ensure that none of the special characters are accidently removed. I hope this helps to limit the issues that may arise.

Eric Jones said...

Almost every thing worked well but I still get the error:"The backup disk image could not be mounted".
No matter what I get this error.
I thought it was great when the system changed screens to Time Machine. Freaked me out for a minute. After that I pointed Time Machine to my NAS but it still failed.

ej

Newb @ MacTimes said...

Hey EJ,

I remember seeing this error when I was first playing around a while back but unfortunately I do not remember at which stage I got this error.

Some things that I can think of which could cause problems.

1) Ensure that you have rebooted the system after running the command in step #1
2) In step #4, make sure that you are using the following format: [hostname]_[mac address].sparsebundle. [hostname] being the name of your Mac.
3) Make sure that in step #4 that you create the file locally and then copy the file to the server.

I hope that one of these suggestions help to resolve your issue.

Newb @ MacTimes said...

EJ, I just realized than when I wrote the post, the format required for the naming convention of sparesbundle did not display correctly. I fear I may have used angle brackets which did not display properly in the post. I have updated the post and replaced the angle brackets with square brackets.

Again to clarify, the "hostname" is the name that you set for your mac. You can run the command "hostname" in the terminal to verify your hostname.

I really hope this is the source of your problem and that it prevents issues for others in the future.

Good luck and let us know how it goes.

oregonduckman said...

Newb,

Tried the following steps with the noted result, any ideas?

1. defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes
2. rebooted my system
3. created the share iMac on my Terastation
4. turned off TimeMachine
5. used System Preferences to get the Mac address of my AirPort adapter
6. ran the command hdiutil create -size 300g -fs HFS+J -volname "Backup of iMac1" iMac1_"The Macaddress from my airport adapter with the colons removed".sparsebundle
7. did your step 6
8. did your step 7
9. did your step 8 except I received a Time Machine Error with the message "The backup disk image could note be created"

oregonduckman said...

Got it to work on the wired connection but not on the wireless, any ideas?

Anonymous said...

wrong mac address, use wireless mac address

Post a Comment