Replacing the TiVo drives in the Series 1 TiVo
The HDR 112 Series 1 Philips TiVo we have showed signs of failing, as the picture would stick during playback of certain recorded programs. The screen would freeze, and the tivo would be unresponsive, and the hard drive could be heard ticking away in the box.
On March 15, I opened up the TiVo box and looked inside. Apart from 1/2 inch of dust coating all the components, there was a simplelayout. One power supply, two hard drives, and a processor board.
After using a compressed air canister and cleaning it outside, I then unplugged the two drives and hooked them up to my sesktop machine and tried to make linux 'dd' backups.
The first disk was a 13.7 Gb Seagate disk, and although the partition table was unrecognised, the disk was copied using
dd if=/dev/hdb of=tivodrivea.backup bs=1024k
The second drive was a retrofitted IBM 40 Gb drive, and I tried top dd copy this to the computer too. It would copy up to 2.3Gb, and then the drive would fail after about 5 minutes of repeated accessing. The drive was toast.
Looking around on the internet, I found MFS Live which carries two separate iso disk images (one using Linux, the other using a current Windows installation) that allow you to copy, backup, repair and modify the hard drives from a TiVo. Reading the docs on the site, I saw that TiVo units use a custom filesystem called MFS, and that this had been mostly reverse engineered by enthusiasts online.
DOwnloading and burning the mfstools 1.3b iso CD-ROM image, I rebooted and saw that it is a basic version of Linux with some text based utilities custom written to deal with the MFS filesystem.
One of the options was called 'divorcing' a two drive system, and converting to a large single A drive system. I used a command similiar to:
backup -so - /dev/hdc | restore -s 128 -zpi - /dev/hdd
It complained about not finding /dev/hdb2, so playing around with the options, I separated the command line switches to say:
backup -sE /dev/hdc -o -
..and this produced a good response and so then i reinstated the rest of the piping command to write out the directory to /dev/hdd, which held the new blank 160Gb disk.
The program copied about 950Mb of data from the Seagate TiVo drive on /dev/hdc onto the new disk, and after complaining about some bad partition tables on the new (unformatted) disk, it claimed success.
Taking the 160Gb new drive and putting it into the TiVo, there was success! The TiVo rebooted and seemed to work as usual. The only difference was that although the programs appeared in the "to Watch" list, they were in fact missing, and were subsequently deleted.
Removing the drive again, I plugged in my Linux disk and TiVo disk, rebooted onto mfstools 1.3 and mounted and copied as a backup my new TiVo disk.
mount -t ext3 /dos /dev/hda cd /dos mkdir tivobackup backup -6so /dos/tivobackup/tivodrivea.backup /dev/hdc
Removing the disk and reinstalling inside TiVo, and it's been running without a problem for a day now. It's good to have a small backup image and know that I can replace the TiVo disk, which appears to be one of two moving parts in the whole box.