I decided up front to buy a 40Gb TiVo knowing that I could upgrade it myself cheaper than what TiVo sold the 80Gb model for (an extra $100). To start off, I browsed the forums looking for tips and found that adding an additional 120Gb drive would be pretty cheap and be pretty painless.
After reading a lot of forum posts, it seemed clear that most people say you should get a 5400rpm upgrade drive, because the extra speed of a 7200rpm drive isn't really necessary in a TiVo, and only contributes more noise and heat to the machine. While shopping around for cheap 120Gb drives online, I couldn't find anything in a slower 5400rpm setup so I just decided to go with a 7200rpm drive from Maxtor.
Oh, there are a couple issues on putting large drives into a TiVo. One is that the linux kernel used to only recognize drives up to 137Gb in size, ignoring any additional space, but with a bit more hacking it is possible to get around that. I wasn't going to use anything larger than a 120Gb drive so this wasn't an issue. The other big issue is the swap file in TiVo's version of linux. When you take a series 1 machine beyond 140Gb or a series 2 machine beyond 180Gb, if the box ever gets a GSOD (green screen of death -- a very rare major error), the required rebuild cannot properly complete because the swap file will be too small. There are ways around this, where you can increase the swap file to 127Mb reliably. Increasing to 128Mb or beyond seems to cause a lot of problems, but again, since my setup was only 120Gb + 40Gb I was in the clear.
I picked up a bare 120Gb 7200rpm Maxtor drive from newegg.com, a place I buy a lot of PC upgrade parts. It was only $98 at the time I purchased it, but may be less (or more) at the time of this writing. One thing about the maxtor that intrigued me was a quieting utility maxtor made called Amset. Amset lets you set your drive's speed to either ultra quiet at the expense of fast seek times to or still fast but only slightly quieter. It sounded like a great feature and everyone on the tivo boards raved about it so I decided to give it a go before I added it to my TiVo.
Small, tedious problems
I only have a newer PC running XP at home and knew that I couldn't boot the machine into XP with the new drive attached, as Win2k and XP add drive signatures that will harm the drive. The amset utility would only run in DOS so I went to bootdisk.com to find a simple win98 boot disk I could boot into and run the program. Unfortunately, my floppy drive is toast, which I found out only after searching for 30 minutes to find an old floppy in my house and finding it couldn't be recognized.
I thought I was sunk, but I noticed bootdisk.com linked to a pretty cool site with software written by a guy that has created bootable CDs that pop you into DOS just like a floppy. Eventually, I found a method to create a bootable ISO that you could also toss your own programs onto, so I burned a CD with DOS and amset. I unplugged my XP drive, popped the new drive in as the primary master, then used the DOS boot disk (ha! DOS boot!) to get a prompt and ran the utility successfully. All told it took me 90 minutes to figure all this stuff out and complete it to this point.
And now, the TiVo
The unsuspecting TiVo
I powered down my TiVo and gently removed the case, the power cables, and IDE cables from the drive, and then the drive itself. There are a couple things to watch out for when messing with your TiVo internals. One is that you should never touch anything near the power supply, as you can fry it and hurt yourself in the process. The other, and this is specific to series 2 Tivos, is to be careful with the white ribbon cable on the front of the motherboard, if you touch it, make sure it's properly seated before you ever turn the box back on, as that can also fry the whole system.
The only thing left to do is run some software to prepare the new drive and marry it to the original one. I used the popular and super simple-to-use MFS 2.0 tools, which can be downloaded as a bootable ISO here. Once burned, I placed the TiVo drives into my computer as suggested, with the new drive jumpered as a slave drive on the primary controller, and the original drive kept as master (with slave present for my stock western digital) on the secondary IDE controller (I kept my XP hard drive unplugged).
Drives connected to my PC
MFS Tools booting while reading the how-to
I loaded up the hinsdale how-to instructions on a separate laptop so I could read it, and booted the system up. I checked the boot sequence to see that indeed linux could see I had 120Gb and 40Gb drives attached (if it reported an incorrect size, there could be problems).
The how-to instructions are pretty complete, but entail making a backup and restoring your TiVo's original drive and writing that to a windows hard drive, but it requires a fat32 disk that I don't have handy. I decided to skip all the backup procedures, knowing that there are places online that people store and share their TiVo rom backups if I ever needed them someday (probably not -- didn't with the past TiVo's upgrade).
With that, I could skip all the way down to Step 10, and follow the first scenario, since I was adding a new B drive. I only had to run one command, typed exactly as shown in the tutorial. After a second or two, it was complete and reported a new size and approximate number of hours for the TiVo.
This was surprisingly smooth, easy, and fast. I could upgrade another tivo in probably ten minutes start to finish. Previously I had done some upgrades on a DirecTivo that required copying the original drive to a new one, then adding in a second drive and that took the better part of a day to complete, but this couldn't have been smoother.
That's it! All that was left to do was plop the drives back into the TiVo and power it up. I'm going to hold off on the details of reassembly, saving that for the next stage of upgrade which includes a review of the Weaknees Twinbreeze package.
Update: In follow-up posts, I covered the install of the Twinbreeze package and the question of whether you should do this yourself or pay someone to do it.