How-to: Upgrade the drive in your Apple TV
While millions thousands of people were enjoying their Apple TVs last night, we decided to take ours apart for some pictures and to upgrade the drive. Seriously, 40 GB is smaller than our iPod and we don't like to have to pick and choose what to sync. While there is little doubt that this will void our warranty, isn't it worth it? We have just updated our process, which is much much faster and no longer requires iPartition, thanks to some comments by Epomymous.
We decided to double the size of the HDD from 40 GB to 80 GB; we picked up a new 5400 RPM IDE laptop drive and went to town.
You're going to need a few other items to perform this upgrade -- besides the Apple TV and the new drive, of course. First you'll need a TORX 8 and 10 driver to remove the screws and some spray adhesive to reapply the rubber mat on the bottom of the unit. You will also need either an external 2.5 inch drive enclosure or a USB to IDE adapter like the one shown with a 3.5 inch to 2.5 inch adapter.
You can also use two 2.5 inch to 3.5 inch drive adapters and a computer with dual IDE channels to do a disk to disk copy which would be much faster, but you don't get a backup of the original drive.
First we need to disassemble the Apple TV by peeling off the rubber from the bottom. Start on one corner and peal slowly so you don't tear it. There will be 4 TORX screws, one in each corner; don't remove the other 4 closer to the middle just yet.
After you remove the first four screws, gently pull the bottom away from the top. The hard drive is attached to the bottom so be mindful of the IDE cable.
Fold the bottom cover over so you don't stress the cable and gently pull the IDE cable from the main board of the Apple TV. After you're done admiring the internals, remove those other four screws on the back while holding the hard drive. Finally, unplug the IDE cable from the drive and plug it into your USB adapter.
Now we need to copy the disk -- and while there are probably 100 ways to do this, we are going to show our Linux roots by using our favorite command, "dd."
Sine we are only using one 2.5 inch to 3.5 inch hard drive adapter, first we are going to make a image of the disk onto our internal hard drive, then swap drives to copy the image back to the new disc. This will obviously take twice as long, but also gives us a backup of the original drive. If you have two USB to IDE adapters or a computer with two laptop drive adapters you can do a disk to disk copy which is much faster.
Plug the USB adapter into your Mac. From the Terminal, use diskutil to verify what disc we are working with:
*on Linux use fdisk -l instead*
diskutil list
Look for the disk that looks like this, it will have a partition named OSBoot and Media.
This tells us that the Apple TV drive is disk2 or more specifically. /dev/disk2
The tool we are going to use to copy the disk is dd, which simply means copy the input device to the output device. We are using disk2 for input and an image file in our home directory for the output. Make sure you have enough room for the entire 37GB file. Here is the command we are going to run form the terminal:
dd if=/dev/disk2 of=/Users/Engadget/AppleTV.img bs=1024k
To be clear, this command instructs the system to copy the entire disk, including all the partitions on disk2 to a image file stored at /Users/Engadget/AppleTV.img and the bs=1024k helps speed it along. If you want to only copy the parts of the drive you need add the count=1335 switch like the next command, we left it out despite the copy time so we could have a complete backup image of the original drive.
You should see the following screen when it's completed; unfortunately, there's no progress indicator.
Optional step: If you have a way to connect both drives to the computer at the same time, then use this command instead, assuming that disk2 is the source drive and disk3 is the destination:
dd if=/dev/disk2 count=1335 of=/dev/disk3 bs=1024k
When the image is finished we need to swap the drives and copy the image back to the new, bigger hard disk. Use diskutil again to verify the drive and then this command to start the copy.
** Update ** Now we are only copying the partitions we want, by adding the count= switch. It is much faster to copy 1.4 GB instead of 37 GB.
dd if=/Users/Engadget/AppleTV.img count=1335 of=/dev/disk2 bs=1024k
(If you connected both drives at the same time this step is not necessary.)
Again you will see the output confirming completion.
**Update**
We removed the iPartition steps, they are no longer necessary, now we do it manually and free.
First we eject the disk, we have to do this every time we run gpt or you will get an error.
diskutil eject disk2
Just in case lets try to recover the partition table.
gpt recover disk2
diskutil eject disk2
Then we remove the old Media Partition. (don't remove the wrong one!)
gpt remove -i 4 disk2
diskutil eject disk2
Then find our new start and size.
gpt show disk2
This will return this.
It we look just above the Sec GPT table we will see that the empty space starts at 3141672 and is 74998455 in size so we will use those in our next command.
Eject the disk again.
diskutil eject disk2
Then create the new partition, using the info from the last step.
gpt add -b 3141672 -i 4 -t hfs /dev/disk2
Last, we format the drive.
diskutil eraseVolume "Journaled HFS+" Media /dev/disk2s4
Now before we dismount the drive, verify that there are no .Spotlight folders on the partitions by typing this command in the Terminal:
ls -a /Volumes/Media
and
ls -a /Volumes/OSBoot
If there are, then use this command to remove them, but be very careful, this command can delete everything.
sudo rm -rf /Volumes/OSBoot/.Spotlight-V100
or
sudo rm -rf /Volumes/Media/.Spotlight-V100
Now dismount and disconnect the drive and then install it back into your Apple TV.
diskutil eject disk2
It will boot like the first time again and now you should now be able to go into the Apple TV menu and see the size as well as in iTunes.
Stayed tuned as we learn more about what we can make this thing do.