UPDATE 8/23/09 - The cloning of an ATV hard drive can also be accomplished via Dynaflash's ATV Cloner program. It can be found here:
http://dynaflashtech.net/
Original Article Follows:
A few months ago, I got a 40GB Apple TV from eBay for $60 to put the kids' videos on. It worked great, but the hard drive was too small to store all the videos I wanted on it. I wasn't keen on streaming and don't have my iMac on all the time. Since my Apple TV isn't under warranty, there was no obstacle to doing the upgrade. I took the plunge this weekend and upgraded the hard drive on my Apple TV to 250GB since Microcenter was running a special on the WD Scorpio drive for $90. I did a hybrid installation using suggestions from several web pages. The upgrade went very well, I rebooted, did a factory restore, upgraded to Apple TV v2.2 of the software and resynced everything. Works great!
For those of you who care about the details, here they are:
References:
Engadget "How to Upgrade the Drive in your Apple TV"
http://img.engadget.com/2007/03/23/how-to-upgrade-the-drive-in-your-apple-tv/
Awkwardtv.org "Hard Drive Upgrade Tutorial"
http://wiki.awkwardtv.org/wiki/Prepare_a_Hard_Drive#Preparing_the_partition_table
Waroth.K in the AppleTVHack's Forums
http://appletvhacks.net/forums/viewtopic.php?f=5&t=66#p188
My goal was to reliably do the upgrade without having to wait forever to copy blank data from the 40GB hard drive I had in the Apple TV. It seemed unnecessary to waste time or disk space on that. A review of the available references above seemed to indicate that just copying the EFI and Apple_Recovery partitions from the Apple TV would be sufficient. To be on the safe side, I wanted to make disk images of those two partitions as well. I also had some reservations because there seemed to be an indication in forums and web pages that doing the upgrade using a PowerPC instead of an Intel Mac might be problematic. It turned out not to be.
Equipment:
Apple TV 40GB; Western Digital 250GB 2.5 inch IDE hard drive (WD2500BEVE); i-Connect 3-in-1 USB drive adaptor, 8GB USB keydrive, TORX-8 and TORX-10 screwdrivers, and a G5 iMac.
The plan:
1. Pull the Apple TV original hard drive
2. Copy the EFI and RECOVERY partitions to DMG files on the USB keydrive
3. Properly format and install appropriate partitions onto the new 250GB drive
4. Install the 250GB into the Apple TV
5. Connect and update Apple TV software
6. Sync everything in iTunes onto the Apple TV (approximately 60GB)
7. Store original 40GB Apple TV drive
The Engadget instructions for taking apart the Apple TV are very good and they have nice pictures. So, I had no trouble pulling the drive.
Once I had the drive, I wanted to connect it with minimal chance of corruption to the iMac, so I booted into single-user mode. Unfortunately, the diskutil command wasn't available there, so I rebooted. The had the unfortunate effect of putting copies of Spotlight indexes in my OSBoot partition and Media partitions on my original drive. I deleted them (the Engadget instructions were helpful there), but I'll note it here for everyone's benefit - everything didn't go 100% according to plan, but it all worked out. I probably should have put a utility on my Mac that turned off Spotlight. Still, no harm seems to have been done, although I was very concerned for awhile.
Once I rebooted my Mac from single-user mode, I went straight into the Terminal and got a listing of all the disks. Note that my Apple TV ended up being /dev/disk1 and the USB drive where I wanted to store my disk images was /dev/disk2. The USB disk is called "paul".
Below, Courier font for everything in the Terminal. Bold for what I actually typed in.
Last login: Sat Oct 25 20:40:28 on console
[iMacG5:~] paul% diskutil list
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: Apple_partition_scheme *232.9 Gi disk0
1: Apple_partition_map 31.5 Ki disk0s1
2: Apple_HFS Macintosh HD 232.8 Gi disk0s3
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *37.3 Gi disk1
1: EFI 34.0 Mi disk1s1
2: Apple_Recovery 400.0 Mi disk1s2
3: Apple_HFS OSBoot 900.0 Mi disk1s3
4: Apple_HFS Media 35.8 Gi disk1s4
/dev/disk2
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *7.5 Gi disk2
1: Apple_HFS paul 7.5 Gi disk2s1
after identifying all the disks, I plotted out my commands on paper first. I started out using the AwkwardTV instructions to make copies of the EFI and Apple_Recovery partitions. AwkwardTV used the "sudo" command to preface every other command. It is unclear to me if this is necessary, but I used it and it worked. Someone who understands Unix a little better can explain whether or not it is redundant. Note that I use the full disk name for my USB keydrive "/Volumes/paul/". According to AwkwardTV, my Apple_Recovery partition should be 419430400 bytes. Mine was actually 419405824. This had be concerned as well, but again, all seems to work in the end.
[iMacG5:~] paul% sudo diskutil unmountDisk /dev/disk1
Unmount of all volumes on disk1 was successful
[iMacG5:~] paul% sudo dd if=/dev/disk1s1 of=/Volumes/paul/efi.dmg bs=1m
34+0 records in
34+0 records out
35651584 bytes transferred in 14.665292 secs (2431018 bytes/sec)
[iMacG5:~] paul% sudo dd if=/dev/disk1s2 of=/Volumes/paul/recovery.dmg bs=1m
399+1 records in
399+1 records out
419405824 bytes transferred in 175.350872 secs (2391809 bytes/sec)
At this point, I ejected the original Apple TV 40GB drive.
[iMacG5:~] paul% diskutil eject disk1
Disk disk1 ejected
Then I added the new, blank, 250GB Western Digital drive. Continuing on with the AwkwardTV instructions, I found that the command "gpt destroy /dev/disk1" didn't take as the drive appears unformatted. Again a little concerning, but I just moved on to the next command which was basically to initialize the disk.
[iMacG5:~] paul% diskutil list
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: Apple_partition_scheme *232.9 Gi disk0
1: Apple_partition_map 31.5 Ki disk0s1
2: Apple_HFS Macintosh HD 232.8 Gi disk0s3
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: *232.9 Gi disk1
/dev/disk2
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *7.5 Gi disk2
1: Apple_HFS paul 7.5 Gi disk2s1
[iMacG5:~] paul% diskutil unmountDisk /dev/disk1
Unmount of all volumes on disk1 was successful
[iMacG5:~] paul% sudo gpt create /dev/disk1
With a successfully created disk, now was the time to add the partitions. I used AwkwardTV's MacOS 10.5 instructions:
Adding the EFI partition (note, AwkwardTV recommended unmounting the disk before almost every command).
[iMacG5:~] paul% diskutil unmountDisk /dev/disk1
Unmount of all volumes on disk1 was successful
[iMacG5:~] paul% sudo gpt add -b 40 -i 1 -s 69632 -t efi /dev/disk1
/dev/disk1s1 added
Adding the Apple_Recovery partition (I do not know why it has the strange name beginning with "5265636F-")
[iMacG5:~] paul% diskutil unmountDisk /dev/disk1
Unmount of all volumes on disk1 was successful
[iMacG5:~] paul% sudo gpt add -b 69672 -i 2 -s 819200 -t 5265636F-7665-11AA-AA11-00306543ECAC /dev/disk1
/dev/disk1s2 added
Create the OSBoot Partition:
[iMacG5:~] paul% diskutil unmountDisk /dev/disk1
Unmount of all volumes on disk1 was successful
[iMacG5:~] paul% sudo gpt add -b 888872 -i 3 -s 1843200 -t hfs /dev/disk1
/dev/disk1s3 added
Now a little more tricky, create the Media partition. To find out the right numbers to plug in for the appropriate size, you have to take a look at the disk. Note that the two key numbers in the final "gpt" command are in the start and size columns (2732072 and 485665063). Depending on the size of your hard drive, these numbers may be different.
[iMacG5:~] paul% diskutil unmountDisk /dev/disk1
Unmount of all volumes on disk1 was successful
[iMacG5:~] paul% sudo gpt show /dev/disk1
start size index contents
0 1 PMBR
1 1 Pri GPT header
2 32 Pri GPT table
34 6
40 69632 1 GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
69672 819200 2 GPT part - 5265636F-7665-11AA-AA11-00306543ECAC
888872 1843200 3 GPT part - 48465300-0000-11AA-AA11-00306543ECAC
2732072 485665063
488397135 32 Sec GPT table
488397167 1 Sec GPT header
[iMacG5:~] paul% diskutil unmountDisk /dev/disk1
Unmount of all volumes on disk1 was successful
[iMacG5:~] paul% gpt add -b 2732072 -i 4 -s 485665063 -t hfs /dev/disk1
/dev/disk1s4 added
Now it's time to copy my disk images for the EFI and Apple_Recovery partitions onto the new Apple TV drive. Note that I am putting in the full name of the disk drive they reside on "/Volumes/paul/".
[iMacG5:~] paul% sudo dd if=/Volumes/paul/efi.dmg of=/dev/disk1s1 bs=1m
34+0 records in
34+0 records out
35651584 bytes transferred in 7.474555 secs (4769727 bytes/sec)
[iMacG5:~] paul% sudo dd if=/Volumes/paul/recovery.dmg of=/dev/disk1s2 bs=1m
399+1 records in
399+1 records out
419405824 bytes transferred in 75.162186 secs (5580011 bytes/sec)
[iMacG5:~] paul% diskutil list
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: Apple_partition_scheme *232.9 Gi disk0
1: Apple_partition_map 31.5 Ki disk0s1
2: Apple_HFS Macintosh HD 232.8 Gi disk0s3
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *232.9 Gi disk1
1: EFI 34.0 Mi disk1s1
2: Apple_Recovery 400.0 Mi disk1s2
3: Apple_HFS 900.0 Mi disk1s3
4: Apple_HFS 231.6 Gi disk1s4
/dev/disk2
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *7.5 Gi disk2
1: Apple_HFS paul 7.5 Gi disk2s1
Now at this point, AwkwardTV says that you are done. I know that I have blank OSBoot and Media partitions, because I just created them from scratch. However, I went ahead and followed Waroth.K's instructions to remove the partitions and put them back on. I'm thinking that this might be redundant. Perhaps the configuration statements below can be simply replace AwkwardTV's partition creation statements? I'm unclear. Doing it twice didn't harm anything though. I'd be interested in other people's thoughts about this.
[iMacG5:~] paul% diskutil eject disk1
Disk disk1 ejected
[iMacG5:~] paul% gpt remove -i 4 disk1
disk1s4 removed
[iMacG5:~] paul% diskutil eject disk1
Disk disk1 ejected
[iMacG5:~] paul% gpt show disk1
start size index contents
0 1 PMBR
1 1 Pri GPT header
2 32 Pri GPT table
34 6
40 69632 1 GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
69672 819200 2 GPT part - 5265636F-7665-11AA-AA11-00306543ECAC
888872 1843200 3 GPT part - 48465300-0000-11AA-AA11-00306543ECAC
2732072 485665063
488397135 32 Sec GPT table
488397167 1 Sec GPT header
[iMacG5:~] paul% diskutil eject disk1
Disk disk1 ejected
[iMacG5:~] paul% gpt add -b 2732072 -i 4 -t hfs /dev/disk1
/dev/disk1s4 added
[iMacG5:~] paul% diskutil eject disk1
Disk disk1 ejected
[iMacG5:~] paul% newfs_hfs -J -v Media /dev/disk1s4
Initialized /dev/rdisk1s4 as a 232 GB HFS Plus volume with a 24576k journal
[iMacG5:~] paul% diskutil list
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: Apple_partition_scheme *232.9 Gi disk0
1: Apple_partition_map 31.5 Ki disk0s1
2: Apple_HFS Macintosh HD 232.8 Gi disk0s3
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *232.9 Gi disk1
1: EFI 34.0 Mi disk1s1
2: Apple_Recovery 400.0 Mi disk1s2
3: Apple_HFS 900.0 Mi disk1s3
4: Apple_HFS 231.6 Gi disk1s4
/dev/disk2
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *7.5 Gi disk2
1: Apple_HFS paul 7.5 Gi disk2s1
[iMacG5:~] paul% diskutil eject disk1
Disk disk1 ejected
[iMacG5:~] paul%
This is the point where I put the drive back into the Apple TV and rebooted. It asked for a factory restore, which I approved. Then I configured it, downloaded v2.2 of the software (my Apple TV has 1.0 native), and synced everything over ethernet.
I apologize for the long post. I hope there are people out there who find it helpful. I know that I had a lot of reservations about doing this upgrade (mainly worried about bricking my original hard drive), but it turned out to be pretty simple, even if I had a few bumps along the way. The end result, after about four hours of work (mostly syncing) is a 231GB Apple TV with about 60GB of content installed. Total cost was $125 if you include the SATA/IDE adapter ($20) and a set of screwdrivers from Radio Shack ($15). I used a USB keydrive to store the disk images on, but I have subsequently copied them off to my hard drive for safe keeping. With the initial investment of $60 for the Apple TV, I am one very happy customer.
http://dynaflashtech.net/
Original Article Follows:
A few months ago, I got a 40GB Apple TV from eBay for $60 to put the kids' videos on. It worked great, but the hard drive was too small to store all the videos I wanted on it. I wasn't keen on streaming and don't have my iMac on all the time. Since my Apple TV isn't under warranty, there was no obstacle to doing the upgrade. I took the plunge this weekend and upgraded the hard drive on my Apple TV to 250GB since Microcenter was running a special on the WD Scorpio drive for $90. I did a hybrid installation using suggestions from several web pages. The upgrade went very well, I rebooted, did a factory restore, upgraded to Apple TV v2.2 of the software and resynced everything. Works great!
For those of you who care about the details, here they are:
References:
Engadget "How to Upgrade the Drive in your Apple TV"
http://img.engadget.com/2007/03/23/how-to-upgrade-the-drive-in-your-apple-tv/
Awkwardtv.org "Hard Drive Upgrade Tutorial"
http://wiki.awkwardtv.org/wiki/Prepare_a_Hard_Drive#Preparing_the_partition_table
Waroth.K in the AppleTVHack's Forums
http://appletvhacks.net/forums/viewtopic.php?f=5&t=66#p188
My goal was to reliably do the upgrade without having to wait forever to copy blank data from the 40GB hard drive I had in the Apple TV. It seemed unnecessary to waste time or disk space on that. A review of the available references above seemed to indicate that just copying the EFI and Apple_Recovery partitions from the Apple TV would be sufficient. To be on the safe side, I wanted to make disk images of those two partitions as well. I also had some reservations because there seemed to be an indication in forums and web pages that doing the upgrade using a PowerPC instead of an Intel Mac might be problematic. It turned out not to be.
Equipment:
Apple TV 40GB; Western Digital 250GB 2.5 inch IDE hard drive (WD2500BEVE); i-Connect 3-in-1 USB drive adaptor, 8GB USB keydrive, TORX-8 and TORX-10 screwdrivers, and a G5 iMac.
The plan:
1. Pull the Apple TV original hard drive
2. Copy the EFI and RECOVERY partitions to DMG files on the USB keydrive
3. Properly format and install appropriate partitions onto the new 250GB drive
4. Install the 250GB into the Apple TV
5. Connect and update Apple TV software
6. Sync everything in iTunes onto the Apple TV (approximately 60GB)
7. Store original 40GB Apple TV drive
The Engadget instructions for taking apart the Apple TV are very good and they have nice pictures. So, I had no trouble pulling the drive.
Once I had the drive, I wanted to connect it with minimal chance of corruption to the iMac, so I booted into single-user mode. Unfortunately, the diskutil command wasn't available there, so I rebooted. The had the unfortunate effect of putting copies of Spotlight indexes in my OSBoot partition and Media partitions on my original drive. I deleted them (the Engadget instructions were helpful there), but I'll note it here for everyone's benefit - everything didn't go 100% according to plan, but it all worked out. I probably should have put a utility on my Mac that turned off Spotlight. Still, no harm seems to have been done, although I was very concerned for awhile.
Once I rebooted my Mac from single-user mode, I went straight into the Terminal and got a listing of all the disks. Note that my Apple TV ended up being /dev/disk1 and the USB drive where I wanted to store my disk images was /dev/disk2. The USB disk is called "paul".
Below, Courier font for everything in the Terminal. Bold for what I actually typed in.
Last login: Sat Oct 25 20:40:28 on console
[iMacG5:~] paul% diskutil list
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: Apple_partition_scheme *232.9 Gi disk0
1: Apple_partition_map 31.5 Ki disk0s1
2: Apple_HFS Macintosh HD 232.8 Gi disk0s3
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *37.3 Gi disk1
1: EFI 34.0 Mi disk1s1
2: Apple_Recovery 400.0 Mi disk1s2
3: Apple_HFS OSBoot 900.0 Mi disk1s3
4: Apple_HFS Media 35.8 Gi disk1s4
/dev/disk2
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *7.5 Gi disk2
1: Apple_HFS paul 7.5 Gi disk2s1
after identifying all the disks, I plotted out my commands on paper first. I started out using the AwkwardTV instructions to make copies of the EFI and Apple_Recovery partitions. AwkwardTV used the "sudo" command to preface every other command. It is unclear to me if this is necessary, but I used it and it worked. Someone who understands Unix a little better can explain whether or not it is redundant. Note that I use the full disk name for my USB keydrive "/Volumes/paul/". According to AwkwardTV, my Apple_Recovery partition should be 419430400 bytes. Mine was actually 419405824. This had be concerned as well, but again, all seems to work in the end.
[iMacG5:~] paul% sudo diskutil unmountDisk /dev/disk1
Unmount of all volumes on disk1 was successful
[iMacG5:~] paul% sudo dd if=/dev/disk1s1 of=/Volumes/paul/efi.dmg bs=1m
34+0 records in
34+0 records out
35651584 bytes transferred in 14.665292 secs (2431018 bytes/sec)
[iMacG5:~] paul% sudo dd if=/dev/disk1s2 of=/Volumes/paul/recovery.dmg bs=1m
399+1 records in
399+1 records out
419405824 bytes transferred in 175.350872 secs (2391809 bytes/sec)
At this point, I ejected the original Apple TV 40GB drive.
[iMacG5:~] paul% diskutil eject disk1
Disk disk1 ejected
Then I added the new, blank, 250GB Western Digital drive. Continuing on with the AwkwardTV instructions, I found that the command "gpt destroy /dev/disk1" didn't take as the drive appears unformatted. Again a little concerning, but I just moved on to the next command which was basically to initialize the disk.
[iMacG5:~] paul% diskutil list
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: Apple_partition_scheme *232.9 Gi disk0
1: Apple_partition_map 31.5 Ki disk0s1
2: Apple_HFS Macintosh HD 232.8 Gi disk0s3
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: *232.9 Gi disk1
/dev/disk2
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *7.5 Gi disk2
1: Apple_HFS paul 7.5 Gi disk2s1
[iMacG5:~] paul% diskutil unmountDisk /dev/disk1
Unmount of all volumes on disk1 was successful
[iMacG5:~] paul% sudo gpt create /dev/disk1
With a successfully created disk, now was the time to add the partitions. I used AwkwardTV's MacOS 10.5 instructions:
Adding the EFI partition (note, AwkwardTV recommended unmounting the disk before almost every command).
[iMacG5:~] paul% diskutil unmountDisk /dev/disk1
Unmount of all volumes on disk1 was successful
[iMacG5:~] paul% sudo gpt add -b 40 -i 1 -s 69632 -t efi /dev/disk1
/dev/disk1s1 added
Adding the Apple_Recovery partition (I do not know why it has the strange name beginning with "5265636F-")
[iMacG5:~] paul% diskutil unmountDisk /dev/disk1
Unmount of all volumes on disk1 was successful
[iMacG5:~] paul% sudo gpt add -b 69672 -i 2 -s 819200 -t 5265636F-7665-11AA-AA11-00306543ECAC /dev/disk1
/dev/disk1s2 added
Create the OSBoot Partition:
[iMacG5:~] paul% diskutil unmountDisk /dev/disk1
Unmount of all volumes on disk1 was successful
[iMacG5:~] paul% sudo gpt add -b 888872 -i 3 -s 1843200 -t hfs /dev/disk1
/dev/disk1s3 added
Now a little more tricky, create the Media partition. To find out the right numbers to plug in for the appropriate size, you have to take a look at the disk. Note that the two key numbers in the final "gpt" command are in the start and size columns (2732072 and 485665063). Depending on the size of your hard drive, these numbers may be different.
[iMacG5:~] paul% diskutil unmountDisk /dev/disk1
Unmount of all volumes on disk1 was successful
[iMacG5:~] paul% sudo gpt show /dev/disk1
start size index contents
0 1 PMBR
1 1 Pri GPT header
2 32 Pri GPT table
34 6
40 69632 1 GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
69672 819200 2 GPT part - 5265636F-7665-11AA-AA11-00306543ECAC
888872 1843200 3 GPT part - 48465300-0000-11AA-AA11-00306543ECAC
2732072 485665063
488397135 32 Sec GPT table
488397167 1 Sec GPT header
[iMacG5:~] paul% diskutil unmountDisk /dev/disk1
Unmount of all volumes on disk1 was successful
[iMacG5:~] paul% gpt add -b 2732072 -i 4 -s 485665063 -t hfs /dev/disk1
/dev/disk1s4 added
Now it's time to copy my disk images for the EFI and Apple_Recovery partitions onto the new Apple TV drive. Note that I am putting in the full name of the disk drive they reside on "/Volumes/paul/".
[iMacG5:~] paul% sudo dd if=/Volumes/paul/efi.dmg of=/dev/disk1s1 bs=1m
34+0 records in
34+0 records out
35651584 bytes transferred in 7.474555 secs (4769727 bytes/sec)
[iMacG5:~] paul% sudo dd if=/Volumes/paul/recovery.dmg of=/dev/disk1s2 bs=1m
399+1 records in
399+1 records out
419405824 bytes transferred in 75.162186 secs (5580011 bytes/sec)
[iMacG5:~] paul% diskutil list
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: Apple_partition_scheme *232.9 Gi disk0
1: Apple_partition_map 31.5 Ki disk0s1
2: Apple_HFS Macintosh HD 232.8 Gi disk0s3
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *232.9 Gi disk1
1: EFI 34.0 Mi disk1s1
2: Apple_Recovery 400.0 Mi disk1s2
3: Apple_HFS 900.0 Mi disk1s3
4: Apple_HFS 231.6 Gi disk1s4
/dev/disk2
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *7.5 Gi disk2
1: Apple_HFS paul 7.5 Gi disk2s1
Now at this point, AwkwardTV says that you are done. I know that I have blank OSBoot and Media partitions, because I just created them from scratch. However, I went ahead and followed Waroth.K's instructions to remove the partitions and put them back on. I'm thinking that this might be redundant. Perhaps the configuration statements below can be simply replace AwkwardTV's partition creation statements? I'm unclear. Doing it twice didn't harm anything though. I'd be interested in other people's thoughts about this.
[iMacG5:~] paul% diskutil eject disk1
Disk disk1 ejected
[iMacG5:~] paul% gpt remove -i 4 disk1
disk1s4 removed
[iMacG5:~] paul% diskutil eject disk1
Disk disk1 ejected
[iMacG5:~] paul% gpt show disk1
start size index contents
0 1 PMBR
1 1 Pri GPT header
2 32 Pri GPT table
34 6
40 69632 1 GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
69672 819200 2 GPT part - 5265636F-7665-11AA-AA11-00306543ECAC
888872 1843200 3 GPT part - 48465300-0000-11AA-AA11-00306543ECAC
2732072 485665063
488397135 32 Sec GPT table
488397167 1 Sec GPT header
[iMacG5:~] paul% diskutil eject disk1
Disk disk1 ejected
[iMacG5:~] paul% gpt add -b 2732072 -i 4 -t hfs /dev/disk1
/dev/disk1s4 added
[iMacG5:~] paul% diskutil eject disk1
Disk disk1 ejected
[iMacG5:~] paul% newfs_hfs -J -v Media /dev/disk1s4
Initialized /dev/rdisk1s4 as a 232 GB HFS Plus volume with a 24576k journal
[iMacG5:~] paul% diskutil list
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: Apple_partition_scheme *232.9 Gi disk0
1: Apple_partition_map 31.5 Ki disk0s1
2: Apple_HFS Macintosh HD 232.8 Gi disk0s3
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *232.9 Gi disk1
1: EFI 34.0 Mi disk1s1
2: Apple_Recovery 400.0 Mi disk1s2
3: Apple_HFS 900.0 Mi disk1s3
4: Apple_HFS 231.6 Gi disk1s4
/dev/disk2
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *7.5 Gi disk2
1: Apple_HFS paul 7.5 Gi disk2s1
[iMacG5:~] paul% diskutil eject disk1
Disk disk1 ejected
[iMacG5:~] paul%
This is the point where I put the drive back into the Apple TV and rebooted. It asked for a factory restore, which I approved. Then I configured it, downloaded v2.2 of the software (my Apple TV has 1.0 native), and synced everything over ethernet.
I apologize for the long post. I hope there are people out there who find it helpful. I know that I had a lot of reservations about doing this upgrade (mainly worried about bricking my original hard drive), but it turned out to be pretty simple, even if I had a few bumps along the way. The end result, after about four hours of work (mostly syncing) is a 231GB Apple TV with about 60GB of content installed. Total cost was $125 if you include the SATA/IDE adapter ($20) and a set of screwdrivers from Radio Shack ($15). I used a USB keydrive to store the disk images on, but I have subsequently copied them off to my hard drive for safe keeping. With the initial investment of $60 for the Apple TV, I am one very happy customer.