Backup Shows TiVo Drive PC

From DVRpedia

Jump to: navigation, search

Contents

Overview

If the drive(s) in a TiVo are failing, it is possible to install them in a PC running Linux and export/extract/backup the shows to a hard drive. The shows are stored in a database and are not simply files on the hard drive, so it is necessary to use special programs and procedures to export the shows from the MFS database to a non-TiVo hard drive.essay

The shows do not have to be un-encrypted prior to extraction. However, if they are encrypted, they will have to be inserted back into the original TiVo to be played. They can not be decrypted on a PC or on another TiVo. If you want to convert the file to another format (such as XVID, X264), the file can not be encrypted. See these related pages:

This Page Applies to these TiVo Versions

  • TiVo Series 1 - yes
  • Tivo Series 2 - yes
  • TiVo Series 2.5 - yes
  • TiVo Series 3 - yes
  • DirecTV TiVo Series 1 - yes
  • DirecTV TiVo Series 2 - yes
  • DirecTV TiVo Series 2 HD - yes

Requirements

  • A PC with a CD or DVD drive (or with Linux already installed)
  • A blank hard drive onto which to copy the TiVo files
  • The ability to burn download and burn a bootable Linux CD or DVD

Procedure

You will need a PC running Linux. If you don't have one, you can make any PC temporarily run Linux using a Live CD or Live DVD, which is a bootable CD that does not install any files on the PC and runs completely from the CD or DVD drive.

Creating a Linux Boot CD

Download the latest version of Knoppix Linux (version 5.011 or later) from [1]. If you can burn a DVD, download the DVD version (file name KNOPPIX_V5.0.1DVD-2006-06-01-EN.iso or later.) If you can only burn a CD, download the CD version (file name KNOPPIX_V5.0.1CD-2006-06-01-EN.iso or later.)

To make a bootable CD or DVD from an ISO file you DO NOT simply copy the ISO file to the CD!! You must use burning software that can convert ISO files into bootable CDs or DVDs. In other words, the software burns the disc in ISO mode. See this page to learn how to burn a CD / DVD ISO file to a blank disc using Nero Burning Rom.

Preparing the Backup Hard Drive

You will want to format the hard drive so it can be read by Linux, Windows, or Mac. The best file system to use for this is FAT32 and is the default format for most external pre-formatted hard drives. If the drive for storing the show backups is not formatted properly, format it using the FAT32 file system in Windows. See Microsoft page for more details.

Download the Necessary Files

  • Download the file mfs-utils_bin.Linux-i686-20050604.tar.bz2 from this page. (Note that if you are using an S1 TiVo, you might also wish to download the experimental mfs-utils_bin.Linux-i686-20060503.tar.bz2 release instead.)
    • Decompress/extract the file using 7-Zip. This will create a folder named mfs-utils
    • Inside this folder there will be a directory named bin.Linux-i686 containing about 14 files and one folder.
    • Copy these 14 files and 1 folder from the bin.Linux-i686 directory to the backup FAT32 hard drive.
    • Place these files in a folder named mfs-utils in the root directory.
  • Download the file tivopart-20040530.zip from this page (you must be a member of the DealDatabase forum to download files)
    • Decompress/extract the file using 7-Zip to a folder of your choice.
    • Two folders will be created (bin and src). The bin directory will contain about 11 files.
    • Copy the ll files from the bin directory to the backup FAT32 hard drive.
    • Place these files in a folder named tivo-part in the root directory.

Install the Drives in a PC

  • Open the PC and disconnect any Windows drives. If the PC boots Windows with the TiVo drives installed, Windows will modify the bootpage and make them unbootable in a TiVo. Plus you don't want to mess-up your main Windows drive. So just disconnect it!
  • Remove the TiVo drive(s) from the TiVo. See TiVo Disassembly instructions.
  • Connect the TiVo drives and the backup drive to the PC as specified in Install TiVo Drives in PC Here is a summary:
    • Connect the backup drive to the IDE Primary Master position (Linux will assign this as drive hda).
    • Connect the CD/DVD ROM drive to the IDE Primary Slave position (Linux will recognize this hdb as a CD-ROM drive).
    • Connect the primary TiVo drive to the IDE Secondary Master position (Linux will assign this as drive hdc).
    • If there is one, connect the secondary TiVo drive to the IDE Secondary Slave position (Linux will assign this as drive hdd).

Boot to Linux

Put the Linux CD/DVD in the CD/DVD ROM drive. Turn on the computer. If the computer doesn't boot to the CD drive, you may have to configure the BIOS of your PC to boot to a CD drive by changing the device boot order (search Google for more info.) When the computer is booting, look at the hard drive info as the computer scans for them and make sure the drives are connected to the proper location (during the first few seconds after the computer turns on, press F1 or ESC or DEL to enter setup and view more details on the drives.)

It will take a few minutes for Linux to boot. Once it finally does, you will see a graphical desktop that looks similar to Windows. Using the menu at the bottom, you will need to launch the program named "Root Shell" (K --> KNOPPIX --> Root Shell. not K --> Utilities --> Root Terminal).

Identify and Extract the Shows

To run the export tool from any directory, you will need to add it to the path using the following command:

 export PATH=$PATH:/mnt/hda1/mfs-utils/

Now you'll need to make the TiVo partition tables accessible to Linux:

 /mnt/hda1/tivopart/tivopart.x86 r /dev/hdc

If you have a two drive tivo drive, also type this command:

 /mnt/hda1/tivopart/tivopart.x86 r  /dev/hdd

Note: if you get a "Segmentation Fault", it probably means you are are not running as Root, which give you administrative access to the drives - make sure you are running the program "Root Shell" or equivalent. It could also mean that you are running an old version of Linux (older than specified above) with an old Kernel (older than 2.6).

Now you need to connect to the MFS database:

 export MFS_DEVICE=/dev/hdc

Or if you also have a two-drive tivo, instead type:

 MFS_DEVICE="/dev/hdc /dev/hdd"

Now you'll need to create a list of the locations and name of each show in the MFS database. Type the following to have the list shown on your screen:

 mfs_streams

It is more useful to have the show list written to a text file that you can view in an text editor program (in a different window). To do this, use the following command to write the file to your back-up (non-TiVo) drive:

 mfs_streams > /mnt/hda1/mfs_show_list.txt

Now use the K-browser file manager and browse to the location /mnt/hdc1 and open the text file in the default Linux editor to view the show information.

You'll need two pieces of information to extract the show: the first set of numbers is the FSID identifying the database location of the show. The show name directly follows those first set of numbers.(The numbers after the show name identify the MFS database locations for the entire show - it is broken into chunks. You won't need these locations.)

Now it's time to export a show from the MFS database to the hard drive. The .TY+ format is recommended if you play to convert the files to another format or play them on a Windows PC using TyShow. TY+ files can also be reinserted directly back into the TiVo. The .TMF format can't be directly played or converted but requires less rescources when reinserting flies back into the TiVo (it is a TAR containing all of the show information and individual MFS chunks needed to re-insert the shows back into a working TiVo.) The .TY format is not recommended at all because it is basically a TY+ file without the metadata, making it difficult to reinsert. Use one of the following commands to extract a show to the external drive:

For .tmf format: (Where FSID equals the show FSID number from the previous step)

mfs_uberexport -txv -R FSID -o "/mnt/hda1/show name.tmf"

For .ty+ format: (Where FSID equals the show FSID number from the previous step)

mfs_uberexport -xv -R FSID -o "/mnt/hda1/show name.ty+"

For .ty format (no metadata): (Where FSID equals the show FSID number from the previous step)

mfs_uberexport -v -R FSID -o "/mnt/hda1/show name.ty"

You should now have the show backed-up on the spare hard drive. Repeat this procedure for each file to be backed-up.

Moving shows back to the TiVo

Once you have restored the TiVo with a new, working drive, you can move the extracted shows back using MFS_FTP, which is a FTP server that runs on the TiVo and allows shows to be moved to and from a modified (hacked) TiVo.

Advanced Alternative Methods

You can use and external USB / Firewire hard drive in place of an internal hard drive for storing the backed-up shows. The location of this drive will probably be something like /mnt/sda1 instead of /mnt/hda1.

You can perform this backup within Windows if you have external hard drive enclosure(s) for each TiVo drive. To do so, you will need to install Cygwin ( http://www.cygwin.com/ ), which is a Linux-like environment for Windows. Basically, you download and install Cygwin, then connect the external USB drive enclose to the computer, then perform the steps above. One benefit is that you can extract directly to a drive formatted with the NTFS file system. You will have to use the command similar to this (changing the drive letter as appropriate) "export MFS_DEVLIST=/dev/sdc" to connect to the external USB TiVo drive. To find the exact external drive name for your PC, refer to the Cygwin guide (http://www.cygwin.com/cygwin-ug-net/using-specialnames.html). Also, you will have to use the a different version of MFS_UTILS (mfs-utils_bin.CYGWIN_NT-5.1-i686-20050604.tar.bz2 from this page http://www.dealdatabase.com/forum/showthread.php?t=39487). If you have a Series 1 TiVo, you need need the experimental binaries package, which includes support for the byte-swapping used by a Series 1: http://sourceforge.net/project/showfiles.php?group_id=138561&package_id=152006

You can write a script to backup multiple shows so you don't have to do it one-at-a-time. Refer to this article for more info on Linux scripting: http://www.freeos.com/guides/lsst/ch02sec01.html

Credits and References

http://www.dealdatabase.com/forum/showpost.php?p=201494&postcount=210