My TiVo Upgrade
Diary using Large Disks
Up until recently, it's been impossible to upgrade Tivo
beyond it's physical limits. Tivo's operating system limits the
size of a disk it can access to 137G. Thus even though
you could put in a 160G drive, Tivo could not use the extra 23G
beyond it's limit.
With drive sizes getting larger and larger now, a solution
has been developed to allow Tivo to use these bigger disks.
The solution involves installing a patch to the Tivo
operating system to correct, what is now known to be, a software
limitation.
Here are the steps I took to upgrade a UK Thompson Tivo pvr
from its current 120G hard drive (see here
for how I got this far) to a single 250G drive which gives me
slightly over double the recording capacity that I had
previously. Note, however, these instructions will work for a
basic 40G drive too (I've included information if you have a
twin drive machine too), even if you have not already upgraded
previously. It is the final drive size that these instructions
depend on, not the starting drive size.
This time, I was not interested in keeping any existing
programs, but I did want to keep all my season passes and
existing hacks (Tivoweb, endpad and the like) that I had running
on the current system.
The whole process took around one hour.
The machine used was a single drive model number 6023.
If you are planning to back up or
restore to twin drives, instead of a single drive, then follow
the relevent comments in GREEN.
Note: of the upgrades I've done recently, this was the
most tricky - I found lots of different options on how to do the
upgrade but not all of them worked for me.
Here's how I finally managed to do the upgrade...
What I had at the start.
- TiVo
- A larger hard drive. I used a 250G drive, a Maxtor
DiamondMax Plus 10 (6B250RO) drive. Remember - you cannot
use SATA drives in TiVo !
- A multi bit screwdriver , preferably magnetic.
- Torx screwdriver bits sizes T10 and T15. (six pointed star
shaped)
- A spare PC with cables for Primary and Secondary IDE ports.
- A spare hard drive, formatted to FAT for storing the backup
on.
- A BootCD of MFSTools2 LBA48
- A floppy boot disk with diskutil copied onto it.
- Some sort of CD burning software (Nero etc).
Web links I used.
Part 1 : Creating
and testing the CD Boot disk.
Firstly, download the ISO image of the
MFSTools2 Large Disk CD (file size = 11 Meg). This file is
different from the previous MFSTools2 disk that I used in my 40G to 120G upgrade diary in that it
has been adapted to allow larger disk access.
Note: I used a couple of boot disks available online with
varying success - this ISO is the one I finally got things to
work with.
Using your CD burning software, burn this image onto a CD.
(In Nero, choose RECORDER -> Burn
Image then select the downloaded iso image. The image
will create you a Linux bootable CD.
Now reboot your machine and drop into the BIOS (you usually need
to press DEL or F2 or F12 as you machine first boots up). Once
in the BIOS, check your boot-up settings to
ensure that your machine will boot from the CD first and not
look on any of the Hard Drives for an operating system.
Now insert the newly burnt MFSTools2 CD into your cd drive and
reboot your machine again. You should see the system boot into
linux and not windows. Remove your Boot CD from the drive and
shut the PC down.
Depending on the drive you are going to use, you might need
the Diskutil program. Now would be a good time to create it. You
need to format a floppy disk so that it will boot into DOS. Then
download the Diskutil program
unzip it and copy it to the floppy drive.
Part 2 : Removing the Tivo drive.
Check the removal information on my previous upgrade
page to see how to remove a Tivo drive.
Part 3 : Creating a
Backup Image.
If you are planning to restore to twin
drives, at this point take your new twin drives and LABEL one
drive A and the other B, to avoid getting them mixed up.
Now connect your existing Tivo hard drive (the one you took
out of Tivo), to your PC as follows:
- Primary Master IDE cable - FAT32 hard disk
of size > 1Gig. (remember to set the jumper switch on the
drive to Master). This be used to save the backup image.
- Primary Slave IDE cable - empty (if you have a twin drive machine - connect
your B drive here, jumper set to SLAVE)
- Secondary Master IDE cable - Tivo drive (Place your A drive here if you have a twin
drive machine). Set the jumper to MASTER
- Secondary Slave IDE cable - CDROM drive (jumper
set to Slave).
Once everything is connected, put the CDROM of MSFTools2
Large Disk into the CD drive and turned on the machine.
The PC booted into Linux from the CD. You need to press ENTER to
get to the Bash prompt ( /# ).
To backup the Tivo, enter the following two commands to ready
the disks.

To do the actual backup, enter the following command:

|
If you have a twin drive machine
- enter the following instead of the above
command:
mfsbackup -l 32 -6so /mnt/dos/tivo.bak /dev/hdc /dev/hdb |
|
(The l in the command is a lowercase "L" by the way.)
The command took under 5 minutes to run and should
then report a result as shown. Notice the system has recognised
that I'm upgrading an already upgraded drive. You will not get
this line if you are upgrading from a basic 40G drive.

This will transfer an image of the Tivo settings (thumbs
data, season passes etc, but not recorded programs) onto
the hard disk attached to the Primary Master cable. The
resulting image, called "tivo.bak" was about 350Meg in size.
This image can be burnt later onto a CD for safekeeping.
Type Reboot to reboot the PC and turn it off once it
starts to reboot.
Part 4 :
Transferring the Backup Image to the New Drive.
We now need to transfer the backup image over to the bigger
250Gig drive.
First ensure that the PC is tuned off.
Disconnect the original TIVO drive(s) from the PC. They can now
be stored away because they are no longer required.
Put the new 250Gig drive onto the Secondary Master cable - check
the drive is set to Master on it's jumpers.
Your drives should list as follows:
- Primary Master IDE cable - FAT32 hard disk
containing the backup image.
- Primary Slave IDE cable - empty (if you are restoring to twin drives,
connect your B drive here, jumper set to SLAVE)
- Secondary Master IDE cable - New 250Gig
drive (Place your A drive here if you
are restoring to twin drives)
- Secondary Slave IDE cable - CDROM drive (jumper
set to Slave).
Again start up the PC and it should ensure it drops into
Linux.
Note
At this point, I found that Linux was registering my drive as
locked (this often happens on Maxtor drives apparently).
To see this, you need to page back about 6 pages (use Shift +
Page Up) to the line similar to that shown below:

Firstly, depending on your drive sizes/makes your version of
this screen may look different.
This shot is taken from an unlocked hard drive - you can see
in the highlighted area that the system recognizes the secondary
master drive (hdc) as 251,000 MB (approx 250G).
This is what you should be seeing for a 250G drive.
However, if your drive size registers as only 10 MB then the
system will not allow you to proceed without unlocking the
drive. In previous guides, we unlocked the drive with the
QUNLOCK utility. However, under no
circumstances should you use Qunlock on these large drives - you
may render the drive unusable!
We will use the diskutil utility instead -
this is large disk safe.
You need to do the following:
- Reboot the system
- Before it reboots, insert the floppy
disk with Diskutil on it.
- Drop into your BIOS and ensure that
the system will boot to the floppy this time (it should
currently be set to CD-Rom)
- Allow the system to boot into DOS
- Type the following (note the
capitals) :
- This will unlock the drive at
position 2 (hdc) and you should see the following:

- Now switch off the PC, remove the
floppy disk and reboot.
- As the PC reboots, change the BIOS to
boot back to the CD-Rom.
Once the linux boot has finished, again check back to the HDC
disk size to ensure it's of the correct size you should see the
full size of the drive listed against HDC. Only continue when
you are happy that this is the case.
Now page back down to the bash prompt and enter the
following:

This will again mount the hda FAT drive allowing you access
to the backup you made earlier.
Now enter the restore command as shown below. (note If you are using a drive 300G or above, use the command shown in the red box below).
(yes, that is "restore" not mfsrestore. This command is detailed
at the end of the boot disk start up sequence.)
|
If you are restoring to twin
drives - enter the following instead of the
above command:
restore -x -s 300 -zpi /mnt/dos/tivo.bak /dev/hdc /dev/hdb |
|
|
If you are restoring to individual drive(s)
300GB or greater in size, you need to add an extra
parameter to the restore command to overcome the next Tivo threshold at 274Gb:
restore -x -r 4 -s 300 -zpi /mnt/dos/tivo.bak /dev/hdc Single drive
|
restore -x -r 4 -s 300 -zpi /mnt/dos/tivo.bak /dev/hdc /dev/hdb dual drives |
|
This command will restore the image (tivo.bak) from the
previously mounted drive onto hdc, your new large drive.
In the case of a restore to twin
drives, the backed up image is restored to both drives at the
same time.
You will see the progress indicator update and finally report
(hopefully) success.

Again, your figure may vary depending on the size of the
drives you are using.
Part 5 : Patching
the Tivo Operating System.
On your new drive, you should now have a copy of the original
Tivo drive. You have one more step to complete before it is
usable in Tivo.
Currently, although the drive is ready for use and is using
the whole 250G of the drive, the Tivo system will not know how
to access the area of this drive beyond 137G. If you were to
place the new drive into Tivo at this point, it would only
register 137G as the size of the new drive - a large waste of
drive space!
So we need to tweak the Tivo system with a patch to the Tivo
Kernel (it's main program).
Fortunately, this is not too difficult to do...
If you have just restores to twin
drives, check that your A drive is correctly connected to HDC
before continuing.
Still at the bash prompt, following the upgrade above, type
in the following command:

This will start off a series of menus.
- Firstly, copykern will ask you to confirm whether you wish
to continue. Answer Y
- Now you will be given a list of possible drives to update.
Our Tivo drive is on hdc, so we need to answer hdc
- Confirm your hdc choice with a Y
- Now the system asks which Kernel you want to transfer to
your Tivo drive as shown below:
Now although UK Tivo's are the 'standalone'
type, we in the UK actually need the first kernel. So respond
to the question by typing 1
- Confirm your previous answer with a Y
- The system will now ask you to backup the Kernel. Since we
currently still have the original drive this is not as
important. I answered Y to the "continue?"
prompt.
- The system will now show you the command it intends to run.
Here is what I was shown.
- Answer Y to the final 'are you ready'
prompt.
Finally, the new kernel will be copied over to the hdc drive,
allowing your Tivo to utilise the full capacity of your drive!
Shut down the system, by typing REBOOT and powering off as
the system restarts.
Part 6 : Replacing
The Drive.
All that is left to do now is to replace the drive into Tivo,
screw down the drive and replace the lid.
Part 7 : Finishing
Off.
Reattach Tivo to the TV and power it up again.
Tivo should boot up, play it's little 'Tivo on a slide' video
clip then jump to the main menu ready for use.
Again check the SYSTEM INFORMATION screen on Tivo and the
settings should now show an increase to around 86 hours in
Best and 299 hours in Basic. Again your figures will
be slightly different to these if you use a non 250G drive.
Here's a chart showing approximate recording hour capacities
for a modified UK Tivo.

IT'S FINISHED!
All in all, the complete process should take about 1 hour to
complete.
This does require a certain amount of PC literacy, and you have
to be confident messing about with drives and cables in the
Tivo/PC.
Part 8:
Things To Note.
My Tivo is now running on a 250G drive and also is using a Cachecard network interface. Using
the steps above, the Cachecard drivers and settings (that were
already on my 120G drive) were all copied over, so I didn't need
to re-do these. Tivoweb, endpad, autospace and the rest of the
hacks I was using also came across OK.
However, once I'd initially done the upgrade to 250G I
noticed that Tivo was re-booting every now and again. Sometimes
hours apart sometimes minutes. I enquired on the Tivo Forum and consensus was that I was now
overpowering the power supply of Tivo. Remember, Tivos PSU is
designed to work with just a 40G drive and no interface card.
Both the larger drive and cachecard draw more power and this is
the accepted cause for my reboots. It is also understood that
Tivo's PSUs do actually wear out over time.
I therefore decided to order a new PSU from Tivoland.com which arrived in double quick
time (Cheers Dave!) and was easy to fit - no soldering required.
Tip - when installing the PSU, temporarily remove the
Tivo fan first to give you more room to work.
I have not had the re-occurrence of the reboot problem. (update
- now been running for over a year without incident!)
You should realise that this may not happen to you - indeed
if you don't use cachecard or one of the other network
interfaces, then it's unlikely it will. I've noted this here
just in case you have the same problems as me.
Written Jan 2005. |