Update: Thanks to reader Epon, we now have a way to do this without requiring iPartition. So you can now do the upgrade for only the price of your new harddrive.

Here it is, a step by step tutorial on upgrading your Apple TV harddrive. With thanks to Jonathan Bare, the brave soul who worked this out!

It should be noted that this process will almost certainly void your Apple TV’s warranty and you are attempting this upgrade at your own risk.

You can do this via the terminal, or by using some applications (which add $100 to the cost of the process).

What you need:

Hex-bit screwdriver
2.5″ hard drive (we used a Western Digital 120 GB WD1200VE drive)
Wiebetech Forensic DriveDock (optional, but recommended) or any 2.5″ to Firewire bridge
Subrosasoft’s CopyCatX ($49), or be comfy with the terminal
Coriolis’s iPartition ($45), or use the Apple Factory Restore

This process was done on an Intel Mac Pro. Connecting the Apple TV drive to a Power PC Mac might damage the GUID partition, especially for anyone who hasn’t upgraded to Mac OS X 10.4.6 or newer.

Step 1

You’ve already seen the Apple TV dissected, so we won’t get in to the details of removing the bottom cover and the hard drive. Just note that you need to peel back the rubber covering the bottom of the Apple TV to get to the four screws holding the hard drive to the cover (see here for details).

Once you have the hard drive out, connect it to your handy WiebeTech Forensic DriveDock or other Firewire bridge. We used the Forensic DriveDock to prevent any writing to the original drive, but the Forensic DriveDock is an expensive accessory to just have lying around. Any 2.4″ to Firewire bridge will work just as well.

Two volumes will mount, OSBoot and Media. Looking deeper in to the partition structure with diskutil, you can see the addition critical partitions on the drive:

#: type name size identifier
0: GUID_partition_scheme *37.3 GB disk5
1: EFI 34.0 MB disk5s1
2: 400.0 MB disk5s2
3: Apple_HFS OSBoot 900.0 MB disk5s3
4: Apple_HFS Media 36.0 GB disk5s4

Step 2 – Using the Terminal

Note: If you have already installed some extras on your Apple TV harddrive, doing a ‘factory restore’ will remove these. If you don’t want that, then after copying the contents of the drive over via the terminal, use the iPartition method below rather than ‘factory restore’ to free up the additional space on the drive.

To begin, we need to make an image of the original harddrive. This can be done using dd to make an image file (ensuring you reference the correct disk, here it is ‘disk5’):

dd if=/dev/disk5 of=/Users/tom/AppleTVDrive-Compressed.img bs=1024k

Next we must use this image to recreate the contents on the new drive. Disconnect the original drive, and connect your new drive to. Then use this command to restore the contents of the image to the drive (again ensure you use the correct drive number):

dd if=/Users/tom/AppleTVDrive-Compressed.img of=/dev/disk5 bs=1024k

Finally, connect this drive back to the Apple TV, and do a ‘factory restore’; this will free up all the additional space on the new drive.

Step 2 – Using Applications

Using CopyCatX, you must duplicate the drive to a disk image.

The 400 MB unlabelled partition is used if you do a factory restore, the OS is restored from this partition.

Next we connected the new Western Digital drive to a regular WiebeTech ComboDock and used CopyCatX to duplicate the disk image to the drive. Creating the disk image first meant that we no longer needed to keep the original drive connected and we could repeat the restore process to the new drive when we inevitably screwed it up.

Once the the disk image was restored, we had the exact same partition map as the original drive, except now there was 70+ GB of unused, unpartitioned free space on the drive. At this point, you should test the new drive by connecting it to the Apple TV. It should boot normally and show the old capacity of around 40 GB.

Disconnecting and going back to your Mac, with the help of iPartition, you must increase the block size of the Media partition to use the full space of the drive. The key here is not destroying the existing EFI or 400 MB unlabeled partitions. So far we have been unable to resize this volume with any utility, including diskutil and Subrosasoft’s VolumeWorks without breaking other partitions.

Now reconnect the drive to the Apple TV and plug in the power.

All done!

The resulting capacity should be 107 GB (or more/less depending on your replacement drive), as seen here:

Note: It seems the built in Fujitsu drive was probably chosen for it’s low power consumption, and its probably lower heat output. Keep this in mind when selecting a replacement drive.

That’s it you are done, and you should now be able to fit that many more episodes of ‘Lost’ on to your Apple TV! Good luck!