SATA drives are faster so the good news is copying the old drive to the new one doesn't take as long. We do however need a PC with two SATA ports, which can be addressed separately and not only in a single RAID array. If you don't already have a computer like this, there are a few options. The first is to use two IDE to SATA adapters, you could get away with one, but it would be even slower, because it would require you to swap drives out. The second way is to buy a SATA PCI card, which is much faster than the adapters and has the same MSRP ($49).
The PCI SATA adapter we used is a Adaptec SATAConnect1205SA.
The next problem that SATA presents is the lack of support by the MFSTool bootable CD or PVTUpgrade CD, some SATA controllers support IDE emulation mode, but otherwise we will have to use a different boot disc. You can use any Linux livecd that supports SATA, we are going to use our favorite distro; Gentoo because they have a small ISO to download (54MB) and it's easy to setup networking to download mfstool. The Gentoo livecd doesn't have a graphic interface, but if that is a problem, you probably don't want to attempt to upgrade the drive yourself.
**Update** weakness now has a boot CD with the tools that supports SATA.
We ordered a Western Digital 500GB replacement drive because we didn't want to have to adapt solder the power cable to fit a normal SATA drive, plus 500GB drives can be found for around $200 which is much less than the $400 that Weakness charges. More specifically we went with the WD RE2 WD5000YS. There are some debate about what is the quietest drive, but this one works well for us.
Now that we have the new drive we need to download the ISO, burn it to a CD and install our PCI SATA card.
Now it's time to get the Series3 drive out.
We need a TORX 10 driver to remove the 6 screws that hold the case on, don't worry there is no tamper sticker or dead man's switch used to prove you voided your warranty. Don't touch the power supply it can shock you even if it is NOT plugged in and don't touch anything else either, you wouldn't want to break it.
Remove the four screws that secure the drive tray,
Carefully clear the COAX wires from plastic holders on the right of the drive.
Twist to remove the clip holding the power wires to the drive tray.
Flip the drive around and remove the 4 screws that hold the drive to the tray.
Here are the two drives, which are identical other than the capacity.
Looks pretty empty with no drive.
We plug both the drives into the same controller and make sure we connect the original to the first SATA port so we don't get them mixed up.
We boot from our livecd, but before we get to the Linux boot: prompt we need to verify that our drives are configured properly in our SATA BIOS, this will depend on which SATA controller you are using, here is what it looks like with the Adaptec.
After we confirm our SATA configuration we should be at the Linux boot: prompt so we hit enter.
Once the livecd is booted and we are at the bash prompt, lets double check where the drives are, so we type
major minor #blocks name
7 0 53224 loop0
8 0 244198584 sda
8 16 488386584 sdb
We can see that sda is the original 250GB disc and sdb is the new 500GB disc. This is very important, we wouldn't want to accidentally copy the blank disc over the original!
Now it's time to copy the original disc to our new hard drive, we are going to use dd because we want to ensure we copy everything, including all of our shows. There are faster ways with mfstool, that may work just as well. There is a debate about the best way to do this, feel free to head over to the forums linked below to understand the alternatives.
dd is a simple command, it simply means copy the input device to the output device. Additionally we are going to tell it to copy in 1024k chunks to help speed things along. This took less than 1 hour and 40 minutes, we're not sure exactly how long it took since we snuck off to watch HD and forgot about it.
If your source drive as reported by cat /proc/partitions is sda and destination is sdb then type the following command.
dd if=/dev/sda of=/dev/sdb bs=1024k
After we run this command we will not see any response until it completes, there is no status indicator and no warning. We just keep checking it till it returns to the bash prompt, it then reports how many blocks it wrote.
Now we need to setup the network so we can download mfstools, we could also download it on our PC and copy it over with a USB drive.
To setup network we type
Then we follow the wizard.
Now we need to download mfstools and uncompress it.
tar -zxvf mfstools_2_0_static.tar.gz
Now switch to the mfstools direcotory.
Now we are going to prepare the drive so the TiVo will use all of the extra space for our HD shows. Once again we make sure we run this on the new drive and not the original.
./mfstool add -x /dev/sdb -r 4
Current estimated standalone size: 282 hours
Adding pair /dev/sdb14-/dev/sdb15...
New estimated standalone size: 581 hours (299 more)
Done! Estimated standalone gain: 299 hours
mfstool resports success and lets us know that we have 581 SD hours now which is about 65 hours in the format that matter; HD.
We type halt to shut down the system, install the new drive back into the Series3. Turn the Series3 Back on, wait a few minutes more, then go into System Information to confirm that all our extra space is recognized. We plan to save our original disk as a backup, as we suspect sooner or later we will find more interesting, dangerous things to do with our Series3.
[Thanks to DealDataBase, TiVoCommunity for helping us figure this out]