Some months ago, I swapped some hard drives, and ended up upgrading my Apple TV’s 40GB hard drive. The process was the standard procedure you can find in many sites: back-up the drive, create the correct partition map on the new drive and restore the data into the new drive.
When I upgraded the hard drive, the software version was already 2.x. However, the Apple TV restore partition was still the original 1.0. Here is where the problem started. Whenever new software upgrades were downloaded, they just failed. I’m not sure the upgrades check the hard disk size. Most likely, when restoring into the larger hard drive, some permissions got messed up. A “factory restore” takes the Apple TV back to 1.0 (no YouTube, no Apple Store menus) but once again the upgrades fail.
The process I document here doesn’t require to re-open the Apple TV case. You could go that route, of course, but I think it may even take longer.
You will need:
- External USB drive that can be completely wiped (512MB or more)
- A copy of ATV USB Creator
- A DMG from Apple with the latest firmware. At the time of writing 2Z694-5573-24.dmg. I believe ATV USB Creator tries to download it automatically. However, we’ll need the file for the extra step described here, so you’d be better off by getting the DMG yourself.
UPDATE: You can try http://mesu.apple.com/data/OS/061-5816.20090224.At23V/2Z694-5587-18.dmg for 2.3.1 firmware. A good place to look for the URL of the latest firmware is http://www.iclarified.com/entry/comments.php?page=2&enid=970
In a nutshell, you need to replace a file OS.dmg on the restore partition of the Apple TV with the one you just downloaded from Apple.
That could be easily done connecting the ATV HD to you OS X box, or even to a Linux box that knows how to read GPT partitions and HFS+ filesystems. In my case, I didn’t want to disconnect the Apple TV from the living room setup, open it, etc.
Follow the instructions at http://code.google.com/p/atvusb-creator/ – run the application (atvusb-creator-1.0.b10 at the time of writing) and create the “patchstick” USB drive.
The contents of the patchstick will look like the following, image taken from the ATV USB Creator site

Now, this patchstick assumes you have 2.x software on your Apple TV and will fail with a 1.0 software. We’ll do some changes BEFORE connecting it to the Apple TV
The first 20 lines of the file patchstick.sh are shown below.
001 #!/bin/bash
002
003 exec 2>/dev/console
004 exec 1>/dev/console
005
006 echo
007 echo " --- AppleTV Patchstick by ATVUSB-Creator ---"
008
009 echo " * mounting OSBoot partition"
010 echo " * mounting OSBoot partition"
011 mkdir -p /OSBoot
012 fsck.hfsplus -f /dev/sda3
013 mount -t hfsplus -o rw,force /dev/sda3 /OSBoot
014 sleep 1
015
016 # if we successfully mount /OSBoot
017 if [ -d "/OSBoot/dev" ]; then
018 # symlink /mnt/rootfs to /payloads to make the scripts easier to read
019 echo " * symlinking /mnt/rootfs -> /payloads"
020 ln -s /mnt/rootfs/payloads /payloads
You’ll edit this script and make it copy the file 2Z694-5573-24.dmg into your recovery partition.
Lines 12 to 23 below are your edits. Lines 010-011 are there just to give you a reference of where to edit. Line 024-025 are again just for reference and correspond to former lines 012-013. That part of the script will fail, anyway. If you feel adventurous, just delete from line 24 onwards.
010 echo " * mounting OSBoot partition"
011 mkdir -p /OSBoot
012 fsck.hfsplus -f /dev/sda2
013 mount -t hfsplus -o rw,force /dev/sda2 /OSBoot
014 sleep 1
015
016 # if we successfully mount /OSBoot
017 if [ -f "/OSBoot/OS.dmg" ]; then
018 echo " * updating restore partition"
019 cp -f /mnt/rootfs/2Z694-5573-24.dmg /OSBoot/OS.dmg
020 umount /OSBoot
021 else
022 echo " * error updating restore partition"
023 fi
024 fsck.hfsplus -f /dev/sda3
025 mount -t hfsplus -o rw,force /dev/sda3 /OSBoot
Note that line 012 looks very similar, but uses sda2 instead of sda3. This is partition 2 of the Apple TV, where the recovery image of the filesystem is stored in the file OS.dmg. On line 19, you should replace 2Z694-5573-24.dmg with whatever the name of the file you plan to use.
As usual, YMMV, you must know what you are doing if you want to edit scripts on your AppleTV, as a typo, or any other error may render it unusable. By following this advice, you explicitly discharge me of any liability with respect to any of your equipment.
Before disconnecting your patchstick from the Mac, copy the 2Z694-5573-24.dmg (i.e. the file you downloaded from Apple) to the root of the patchstick file system. Dismount it, power off your ATV (unplug it), plug the patchstick on the USB port of the ATV, and power on. You should an AppleTV with Tux logo (as in the image above), then “—- AppleTV Patchstick by ATVUSB-Creator —-“, etc.
Wait for a couple of minutes, then power off the ATV, remove the patchstick, power on again. If you did not fry your ATV, it should boot to the same old 1.0 menu
Now go to settings, factory restore. It will reboot the ATV, and after a few minutes, you should see the welcome screen and language selection. If you go to settings, software version, it should be now 2.3. If it does, congratulations. You have updated your firmware and even if your updates were not broken, like mine, you can now do factory restores without having to re-download the upgrades every time.
I welcome comments, improvements or questions.

When used to update an ATV2 (2.0.2 Recovery Partition) the unit powers up and flashes at the language selection page. At this point can't do anything with the remote. Is this an HDMI firmware issue?
I have exactly the same problem. The Apple logo appears and then shows the language selection screen, but the screen seems to be frozen. When I press buttons on the remote, the litte light on the front of the Apple TV blinks so it's obviously not a remote/battery problem.
I'll try going back to 2.1 and then upgrading like normal.
@Anthony, @Daniel
Try powering off the unit (unplug it). Plug it back in, and while it boots, press the up arrow on the remote. It should recover from the recovery partition to whatever version you have there. At this point hopefully your remote works again. Then unpair and pair the remote (tip from http://blog.boxee.tv/2008/10/06/apple-tv-remote-w…. Recover to factory settings using the menu. Retry the upgrade. Hope it helps.
There were comments on this post, and now that I migrated to Disqus they are not showing up…
Will have to look into this problem
I have the SAME problem, but i noticed that even in the frozen language menu all of the "special" IR commands work, like video mode, reset, pair/unpair.
Does anybody have an idea what to do?
anybody ? =)
I'm trying to go from 1.0, hoping this will solve my issue resulting from upgrading to a larger HD. Anyway, this looks like it should work. But during the Patchstick script it errors "error updating restore partition". And the next line "mounting /dev/sda3 on /OSBoot failed: Invalid argument".
Any ideas on how to resolve? Alternatively, the case is open now, should I connect to a Mac and just restore the dmg you linked to into the "restore" partition?
Thanks!
@david – If the case is already open, perhaps connecting to a Mac with an external HD enclosure or cable is perhaps a good route. Can't say it works because I have not tried it myself, but conceptually it should work.
When you say mounting failed, I'm assuming you refer to line 024 of the modified script, not to line 013 of the original script… right?
If line 024 is what failed, it is OK. As I mentioned in the post, the script was made for upgrading from 2.x firmware, so this error happens when you upgrade from 1.x
OK, I see what you mean about the script failing. Anyway, I plugged it into the Mac, and just cloned the downloaded .dmg to the partition and it is fine. Syncing now, but I have not tried to upgrade to 2.3.1. Any idea what will happen?
Thanks again for your write-up and responses.
OK, updating from 2.3 to 2.3.1 fails. Unit is still open. I wonder, should I take it to 2.3.1 using the same method; manually downloading it from Apple and using DiskUtility to clone it to the OSBoot partition?
Thanks for any feedback.
@david – I've been swamped with work and just now saw your comments. I think upgrading to 2.3.1 using this method should work, and I may even try it this week. If I do and have success, I'll report the experience. If you beat me, please comment with your results. Thanks again!
David, I cannot update my once 40GB ATV. I installed a 160GB HD in it long ago & have never had a problem Restoring till OS 3.0 came along.
I use Disk Utility to restore the AppleTV3.0.1 image to the OSBoot partition, but I cannot get any patchstick or ATVFlash to work.
I may have to print this guide & try to cobble it back together to a working hacked ATV.
??
I upgraded my 160 HD to a 320 HD from TechRestore last December, 2009. Apple issued a recent update to Software 3.0.1, I think, and the upgrade failed. Nothing has worked. Will the process you describe here for Apple's latest upgrade? And can I do it using Windows 7. I don't have a Mac? Any suggestions would be helpful.
Worked for me on ATV 3.02. Thanks.
I have a question about this. I also have an ATV with an upgraded harddrive. When I used the first version, posted in the article, it didn't work. however, when i changed to the version that you said would work with your ATV, mine worked fine and I was able to update to the latest software. My problem now is that I cannot get atv usb creator to work with it to make a patchstick. I get this error when I try to boot with the most current version of patchstick. Is there a way that I can do something similar to what I did above to make it work?
Is the AppleTV OS Update to be placed in the PATCHSTICK mounted partition in the finder?