Adding a 2nd hard drive to Tivo

Introduction

These are notes and instructions are on how I upgraded my Tivo from a one hard drive unit to a two hard drive unit.  This document specifically relates to the Sony SAT-T60 DirecTivo satellite receiver with one factory installed hard drive.  If you decide to add a hard drive as I did, and everything goes well (as it did for me), you will end up with more recording capacity while maintaining your current system state (current recordings, season passes, etc).

First let me state that there are many resources on the Internet describing how to hack and upgrade Tivos.  They describe, in excruciating detail, how to create a Linux bootable cd, boot to it on your Windows box, perform the hard drive preparation, and finally install the hard drives.  If you are using Windows, then I suggest you utilize one of these resources (see Recommended reading below).  I, however, am already running Linux on my desktop so creating the bootable Linux CD seemed pretty stupid.  Although I did spend a little time searching for some general instructions on the procedure for upgrading a Tivo for those of us lucky enough to be enjoying Linux, I never really found anything.  So I figured I'd throw together some notes and post something, mostly for my own reference later, but also for anyone else that may be in the same boat as me.  It is really not that difficult, and I doubt that anyone already running Linux  would need a HOWTO on this.  Nonetheless, it is sometimes nice to see what someone else has done before attempting something so potentially treacherous.   ( I know that if I were to break my Tivo my family would hang me).

Now, I should say, if you are familiar with Linux and needful of a DVR, you should look at MythTV (if you haven't already).  I'm running one of these also and love it!

For reference, I added an 60 gig HD to my Tivo, thereby increasing my recording capacity from 35 hours to around 90 hours.

Recommended reading

Before attempting anything I'd HIGHLY recommend reading the Hinsdale HOWTO.   Additionally you will be using mfstools and can look at the html documentation here.  Again, both these guides assume you are using Windows, but the basics on the tools and their usage are relevant.

Tools

Aside from a Linux distribution (I did mine on Ubuntu's Breezy Badger) you will need only mfstools.  There are two versions--a statically linked version and a dynamically linked version.  The dynamically linked version is dependant on the GNU libc 2.2.5 and libz 1.1.4 libraries.  You can get tarballs of each version at the mfstools' sourceforege site.  

Requisite verbiage

I in no way guarantee, warranty, or even pretend to suggest that this will work for you.  All I know is it worked for me.  If you follow these instructions and your Tivo fails, barfs, or a hole in the universe opens and swallows your Tivo whole, I'm not responsible.  In other words--Proceed at you own risk!

Get to it already...

Download and unpack mfstools.  (I used the static version).

$ wget http://www.tyger.org/MFS/2.0/mfstools_2_0_static.tar.gz
$ tar -zxvf mfstools_2_0_static.tar.gz

It is a good idea to write down your current Tivo software version.  You get this from the System menu.  If you have version 2.0 or below you may need to perform an extra step to "unlock" the drive.  This requires an extra utility in addition to mfstools.  See the Hinsdale HOWTO section 7 for more information.  My Tivo had version 3.x so I was in the clear.

Now open your Tivo unit and remove the hard drive.  You did read the Recommended reading, right?
You will need to remove the hard drive bracket.  To do so you have to remove three screws and disconnect the fan.  I took some pictures for reference.  Here are the two obvious screws (and the fan) and here is the hidden screw.  

Backup your Tivo.  

This is not required but very recommended.  Now is the time to get a backup image of your Tivo in case of future hard drive failure.  This doesn't take much in the way of extra time or space (we won't save recordings, just the basics stuff) so please consider it.  

Jumper and mount your original Tivo hard drive and your new hard drive in your Linux box. My configuration is as follows:

Original Tivo drive (40 gig Maxtor) -> /dev/hdc (Secondary master)
New Drive (Western Digital 60 gig) -> /dev/hdd (Secondary slave)

STOP RIGHT THERE! I know you just breezed over my configuration but carefully look at it again. Now note any differences in your setup from mine.  The commands I post below are for my configuration.  Obviously, if your configuration is different then you need to adjust the commands. The actions that mfstools takes on the hard drives are permanent. One mistake and you could easily lose something forever.

Once you've mounted your hard drives and booted up your computer it is time for some magic.

First let's make the backup image.

$ cd mfstools-2.0/
$ sudo -s
# ./mfstool backup -6so tivo.bak /dev/hdc

This will create a backup image of your Tivo excluding recordings and some other stuff not necessary for a basic system restore.  Now lets restore the image to your new drive for testing.

# ./mfstool restore -zi tivo.bak /dev/hdd

You should see output similar to this:

MFS volume set for /dev/hdd
The MFS volume set contains 4 partitions
  /dev/hdd10
    MFS Partition Size: 512MiB
  /dev/hdd11
    MFS Partition Size: 15702MiB
  /dev/hdd12
    MFS Partition Size: 512MiB
  /dev/hdd13
    MFS Partition Size: 21000MiB
Total MFS volume size: 37726MiB
Estimated hours in a standalone TiVo: 39
This MFS volume may be expanded 4 more times

Time to test it.  Shutdown your computer, remove your new drive, jumper it to master and install it into your Tivo.  Once you've reassembled your Tivo, plug it back into your TV and boot her up.  It should boot to the typical Tivo screens and everything should work (except recordings of course).  If you are having troubles, see the Hinsdale HOWTO section 9.

Make Tivo bigger

Now that you have successfully backed up your current Tivo system it is time to continue with the upgrade.  Take the new hard drive out of the Tivo, jumper it to slave, reinstall it into your computer, and boot up your system.

Please note that even if you decided to skip the backup procedure you must install both the old Tivo hard drive and the new one into your computer.  Adding the additional hard drive requires two basic steps--formatting the additional hard drive and telling Tivo that the new hard drive exists.  mfstools takes care of both steps automatically, but it requires that both drives be present when the command is run.  This is why it is making backup makes so much sense.

With both drives mounted into your computer, you can now run the command to perform the necessary magic.  (Remember to adjust the commands to your hard drive configuration, if necessary).

$ cd mfstools-2.0/
$ sudo -s
# ./mfstool add -x /dev/hdc /dev/hdd

This should produce output similar to this:

Current estimated standalone size: 39 hours
Adding pair /dev/hdd2-/dev/hdd3...
New estimated standalone size: 102 hours (63 more)
Done!  Estimated standalone gain: 63 hours

That's it!  You did it!  Now just power down your computer, remove the drives, install them into your Tivo, and boot it up.  Don't forget to plug in the fan! Here is my dual hard drive unit before reassembly.  Once you have booted up your Tivo, go to the System menu and see how many more hours of enjoyment your have.

Ahhhh.  Time for a good hockey game!

Comments welcome.