This article discusses how to clone a failing TiVo hard drive. It doesn’t cover how to upgrade a TiVo drive to a larger drive. It’s meant for people who have a TiVo with a failing hard drive who want to try to save the contents of their TiVo.

(Edit: This known to work for PC computers. According to Colin’s feedback in the comments section, these steps are confirmed to work for Mac Pro computers too — see Colin’s comment for more info.)

Before proceeding, I recommend that you have some basic familiarity with computers, configuring CMOS, and working with the command line before you try these steps. It’s not rocket science, but if you accidentally bork your hard drive, well, it’s not my fault. :)

Furthermore I assume that you’re already familiar with how to remove a TiVo drive and reinstall it, as well as how to install/remove hard drives in your PC, so I don’t cover that in this article. And always remember never boot Windows with TiVo drives attached — be sure you don’t accidentally boot into Windows after you’re finished with Linux.

When Good Drives Go Bad

About three months ago I upgraded my TiVo Premiere XL drive from 1TB to 2TB using a Western Digital WD20EARX drive. Unfortunately, in the past couple of weeks my WD20EARX upgrade drive started to fail the S.M.A.R.T. tests and began experiencing drive errors (e.g., glitches in recorded shows, spontaneous reboots, and other nasty stuff). I needed to clone it to a new drive before it failed altogether, and ideally preserve its contents and recover any errors along the way.

Someone in the TiVo Community forums said that the best “affordable” upgrade drive for a TiVo Premiere is the WD20EURS. It’s about 10% more expensive than the more common WD20EARX at Amazon, but the EURS is an “AV” drive optimized for best performance with audio/video applications. So I bought a EURS with the intention sending the failing EARX to Western Digital for warranty service (and using the replacement in a computer) after all the TiVo data is cloned.

However, that raised a question… How the heck do I clone my TiVo drive? Will it preserve my TiVo shows and settings? Is there any way to attempt error recovery while cloning?

Fortunately, the answer to the above questions is “yes”!

The Road To Recovery

After some Googling around I found that some folks in the TiVo Community forums had used a program called dd_rescue to clone their failing TiVo drives onto new drives. They did it by creating a Linux boot CD and then putting the dd_rescue software on a floppy drive, then running that.

Since I haven’t owned a floppy drive in about 10 years, I had to find another way.

After more searching I found out two things. First, there’s a newer program called ddrescue (note: no underscore) from GNU that does what dd_rescue does, and (supposedly) does it better. According to the Linux gurus out there, GNU ddrescue is a more efficient alternative to dd_rescue/dd_rhelp. Second, ddrescue is included as part of the free “Ubuntu Rescue Remix” software, which you can download for free and burn to a bootable CD.

To use ddrescue you need to have two identically sized disks, that is, your new drive should be the same size as your failing TiVo drive (or larger). In my case I had two identically sized WD drives, a failing 2TB EARX (source) and a new 2TB EURS (destination). Your destination drive doesn’t have to be blank or even formatted, BTW, since the ddrescue process will overwrite its contents with a byte-by-byte copy of your failing TiVo drive, and it will attempt to recover any errors along the way. The byte-for-byte copy means that when you eventually put the new drive in your TiVo you will have all your shows, season passes, etc. intact.

GNU and Linux To The Rescue

Here are the steps I followed…

  1. Burn a bootable Ubuntu rescue CD on your PC
    This bootable CD contains the ddrescue program we’ll use to clone the failing drive. The Ubuntu Rescue Remix download page is here. I used release 12.04. When you burn the ISO onto a CD-ROM disc, be sure to burn it as an ISO and not as a plain file onto the CD. In other words, if you haven’t burned an ISO before, simply follow these steps to burn the ISO onto your CD.
  2. Shut down, then disconnect ALL Windows or Mac OS hard drives from your system
    You don’t want to accidentally boot Windows with a TiVo drive attached.
  3. Hook up the TiVo source and destination drives
    • The “source drive” should be connected to the first SATA connector (when you boot Linux it will show up as /dev/sda in Linux) — this is the failing drive with TiVo software on it that you want to clone
    • The “destination drive” should be connected to the second SATA connector (shows up as /dev/sdb) — this is the new, blank drive
    • The only devices that should be connected are your CD-ROM drive, your failing TiVo source drive, and your destination TiVo drive
  4. Restart, then configure your PC’s BIOS
    • Set the boot order so that your CD-ROM is your first boot device
    • Set the drive type to AHCI for best speed (i.e., SATA drives will be used as SATA, not as legacy/IDE)
    • Save the CMOS settings when done
  5. Boot Linux
    Put the Ubuntu CD in the CD-ROM, then reboot. When Linux begins to boot you’ll see a “boot:” prompt. Simply hit <Enter> at the boot: prompt. The system slowly boots and leaves you at a Linux shell prompt (i.e., the Unix command line). Note: Depending on the hardware in your system, you may get some warnings during the boot, but as long as you don’t get an error you should be fine.
  6. Switch to the root user
    At the shell prompt, type:
    sudo bash
    The prompt on your command line may change, this is normal. Now you have Unix super powers, so be careful. :)
  7. Double check your source and destination drives
    Assuming that the two drives are different models and/or sizes, type this at the shell prompt to confirm that the source disk (/dev/sda) is in fact your SOURCE drive:
    hdparm -i /dev/sda
    and for the DESTINATION drive:
    hdparm -i /dev/sdb
    Confirm the drive types and sizes match your expectations for the types for your source and destination drives. If /dev/sda is not your source drive and /dev/sdb not your destination, then power off, swap the SATA cables between drives, reboot, and try this step again.
  8. Start the cloning process
    You invoke the ddrescue program by typing this EXACTLY AS SHOWN:
    ddrescue -f -n /dev/sda /dev/sdb tivo-rescue.log
    Remember in Linux that lower case matters. Be sure to use that “-n” option or the recovery can literally take weeks to complete if you have a lot of errors (it gets stuck in “splitting failed blocks”). Depending on the size of your drives and the number of errors the ddrescue process can take a VERY LONG TIME to run, anywhere from 5 hours to 24 hours is not uncommon. Do not power down or otherwise disturb your computer during the cloning process.

Send In The Clones

After the clone operation completes, switch off the computer and install the destination drive into your TiVo. Hook the TiVo up to your TV as normal. We’re almost done.

When you first start your TiVo, IMMEDIATELY do a Kickstart 57 (i.e., MFS disk check/repair). This will fix any disk errors that resulted due to any missing data from the source drive. Remember kickstarting only works with a regular TiVo IR Remote, NOT the TiVo Bluetooth Slide Remote.

Here are the steps for the kickstart:

  1. Power on the TiVo and wait for the green light to come on.
  2. When the yellow/amber lights flash irregularly, hold the PAUSE button on the remote. You will have approximately 10 seconds to do this.
  3. Release the PAUSE button when the yellow/amber and red lights come on.
  4. You will have approximately ten seconds to press 57 on the remote control.
  5. If you were successful, the blue light will come on and the TiVo will reboot. Do not stop the TiVo rebooting. This is normal.

If you were successful with the kickstart, when the TiVo reboots you’ll see a green screen that says “TiVo has detected a serious problem and is attempting to fix it”. The screen says it may take up to 3 hours, but in my experience always seems to take less than a half hour. It probably depends on how many errors it finds on your drive. Once the TiVo is done it will automatically reboot itself again.

Once that’s done you should be all set to enjoy your newly repaired TiVo.

Closing Thoughts

I hope you found this guide useful.

If you need more help with ddrescue, you can find the ddrescue manual online here:
http://www.gnu.org/software/ddrescue/manual/ddrescue_manual.html

You should be able to do all the above on a Mac Pro or iMac too, although I haven’t tested it. On a Mac, you don’t need to configure your BIOS, so the steps are the same except for skipping the BIOS configuration. When it comes to booting from the CD-ROM drive, just hold down the ‘C’ key when you hear the Mac boot chime to make the Mac boot from the Ubuntu CD. Like I said, I haven’t tested this, but it should work — please drop me a line if it works for you with a Mac.

Tagged with:  

25 Responses to How To Clone Your Failing TiVo Drive With ddrescue

  1. dave says:

    i am new to this back up stuff. what i would like to do is copy/whatever it’s called, a tivo 160 gig sata drive to a 160 gig sata drive i tried clonzilla and it says target drive is to small.
    i don’t understand this because they are the same size drive.
    i want to do this because i replaced the 160 gig drive in the tivo and need a good test drive for when the tivo acts up. i want to be able to make sure tivo fault is drive and not mboard or bad software on drive. i have no way of telling what tivo does when it connects and upgrades, so having a known good drive will tell me. thank you for any help you can give me…..dave

    • Justin says:

      Are your 160GB drives the same model from the same manufacturer? Drive capacities are not exact, when it says 160GB it could be 159.9GB or 160.5GB or whatnot. My guess is that your destination drive is a few kb or mb smaller than the original TiVo drive, and since the software can’t copy every bit and byte the software says the target drive is too small (just a guess, I haven’t tried clonezilla).

      My recommendation is to head over to the TiVo community forums for help with that. I can’t help with clonezilla, I’ve only used ddrescue. Good luck with it!

  2. A couple of shows on my Series 3 had a couple of seconds of garbage in them. I still had the initial 750G installed so I figured it to be time to retire it. Read your article, found gddrescue to be preinstalled in ubuntu 12.04, so I hooked-up the tivo’s disk and a spare I’d bought for this purpose years ago and gave it a shot. Sure was slow.

    Power went out after 500G. When it came back on I started ddrescue again and it magically picked-up where it left-off. Cool.

    It finished, I installed the new drive, assembled the box and hooked it up. Nothing. Red light on the box, black screen. I wonder…

    Disassembled box, hooked-up the disk(!), reassembled, and… Magic. It worked.

    This is a hacked tivo. Software updates are a little stressful. This was not. Your instructions were straightforward and just what I needed, right when I needed it. Thank you.

  3. dean says:

    Can this be done with USB enclosures for the drives instead of connecting them via SATA? I understand the drives in the machine need to be disconnected to ensure no boot from them — but can the TIVO and new drive be USB?

    • Justin says:

      Not sure, I wish I could say for sure. As long as your Linux tools disk has USB drivers I supposed it would theoretically work, but it would undoubtedly be MUCH slower than SATA (which already takes a long time).

  4. Colin says:

    Glad I read to the bottom to see your paragraph for Mac owners! I replaced a failing 1TB drive with another 1TB in my Premiere XL. WIth my MacPro I downloaded the Ubuntu iso file and burned it to disk without any problem. Since ddrescue sees only the first two installed hard drives it’s necessary to open the Mac case and remove all the drives currently installed. The old Tivo drive and the new one must then be fixed to trays and inserted – the old drive in the position nearest the front of the machine, and the new one next to it. I left positions 3 & 4 empty but that may not be necessary. ddRescue copied flawlessly with no errors in about 4 hours, and, after installing the new drive, the Tivo powered up like it didn’t notice the change. Everything is there including all my recorded shows. Thanks for your great instructions. Might be a good idea to put something at the top of the page to let Mac owners know that this page is for them.

    • Justin says:

      Glad it worked for you, Colin! It seemed reasonable that the steps would work for Mac owners, but I didn’t have a Mac Pro to confirm it. It’s good to hear it did. :)

      I’ll make a note at the top of the article mentioning that it’s confirmed this works with Macs.

      • HWR says:

        Justin, I ran into a problem — perhaps you can shed some light on it. I confirmed that I have the correct source and destination drives as you outlined, but I get the following error message after I type:

        drescue -f -n /dev/sda /dev/sdb tivo-rescue.log

        ddrescue: invalid option –f

        I googled this and there are only a couple hits and they are not helpful. I’m stuck at the moment. Any help would be greatly appreciated.

        • Justin says:

          Hi, not sure what’s wrong. It’s possible you have an “em dash” or “en dash” instead of a regular dash. You should have “-f” not “–f” for example (note the regular dash in the first case, and the longer incorrect dash in the second case).

          • HWR says:

            Thanks for the quick reply. I think I am using the correct dash. It’s the same short dash I use for other variables which are correctly interpreted by the program (like fsck -l). I am definitely stumped. Do I need the -f or is there a different set of commands to achieve the same end? Thanks for any thoughts you may have!

  5. James Northcutt says:

    If I read this article right, I should be able to copy the data from 1 TB hard drive to a 2TB hard drive? What I would like to do is upsize an external hard drive to larger one that is almost full. That way my wife can add more shows to it. She had shows that she does not want to lose.

    The external drive is the Western Digital DVR Extender. Will this work? Thanks

  6. Chris says:

    I grabbed GNU ddrescue and compiled it from their source on my Macbook, so I’ll report back how it works on a MacBook Pro running Mac OS X 10.8.4. I’ll make sure and use df to identify the source and targets.

    when i run it though, say I use my (possibly flakey) 1TB TiVo drive as the Source and a 2TB drive as the Destination, will the result be a 2TB TiVo drive (TiVo sees 2TB)?

    thanks.

    • Justin says:

      Hi Chris, it’s been a long time since I’ve done this, but if the target drive is bigger than the source, and you want to use all the space on the target drive, then I think you have to “expand” the target drive after you’ve copied over the source data. Sorry, I’m not sure if there’s a way to expand it to 1.16TB–a size that’s smaller than the full 2TB (never tried). That’d be a good question for the folks over at TivoCommunity.com. Good luck with it!

    • Chris, any advice on how you figured out what device the old TiVo drive was mapped to? It’s easy to see for mounted drives using “df” but the TiVo drive is obviously not mounted by OS X.

      Any other advice you have based on your experiences on a MacBook Pro with USB drive docks would be greatly appreciated.

  7. Chris says:

    …and turns out my TiVo HD (TCD652160) can only see 1.16TB internally, so I will just put an identically sized drive in. But still curious.

  8. Kirk says:

    I followed the directions closely. I am still stuck as the TiVO Series 3 keeps telling me Wrong External Storage Device! Originally I had the 250GB drive and it was failing along with a 1 TB WD external drive….so I cloned the 250GB original drive to a WD EURX 1 TB drive. I did not use any expand functions so it should have cloned the partition exactly, Right? I have tried to get the TiVO S3 up and going with the external drive unplugged, AND with it plugged in and running…….all scenarios tell me WRONG EXTERNAL STORAGE DEVICE! I also cannot run Kickstart 57 as it obviously searches the external drive routine before it gets to that loop? Everytime I try it ignores the commands from the remote…..HELP!

  9. Craig McCoy says:

    I had a Premiere XL that was stuck at the ‘Welcome! Please Wait…’ screen. Pulled the 1 TB disc out and tested it with the Western Digital Data Lifeguard Tool which reported ‘Too Many Bad Sectors’. My options were to spend $349 for a refurbished unit from Tivo or replace the disc with a preloaded one from Weaknees for $149. In either case I was going to lose the live local newscast I had recorded which featured my son doing charity work with his school. But then I found this website, bought a new WD EURS 2 TB disc from Amazon for $91 (only a couple bucks more than the 1 TB), followed the instructions from here and although it took close to 32 hours to complete, I have the non-replaceable recording back (along with all me previous settings) and twice the recording time. Thank you so much for posting this information.

  10. Ted B says:

    Just used these instructions to recover a bunch of recordings from a failing 1 TB hard drive on my Tivo HD. My kids & wife were glad to recover some of their favorite recordings. Sadly though I’ve lost my excuse to upgrade to a Roamio for now. Seriously though, I am very grateful for the step-by-step instructions. For about $70 I got a replacement WD10EURX at Amazon and after about an hour of set up, and 5 hrs to copy. We’re right back where we left off a few days ago w/ our Tivo. Thanks again!!!

  11. Cory S says:

    For Mac owners: you really do not have to burn and boot from a Linux ISO or swap out your hard disks. I successfully used my MacBook Pro to clone the 1TB disk of my TiVo HD XL this way:

    1) Downloaded the source code for “ddrescue” from the GNU site.
    2) Compiled it (if you don’t have Xcode then download it from Apple’s site).

    3) Attach, but don’t mount, the source and destination disks using your available external interfaces (in my case I used a new USB 3.0 dock and a older FW800 dock). When you power attach the original disk you’ll see a message “The disk you inserted was not readable by this computer”, then buttons for “Initialize…”, “Ignore”, “Eject”. DO NOT PRESS INITIALIZE! Press “Ignore”.

    4) Mac OS will not mount the disk, but the Unix system underneath will allocate a device in the /dev directory. Open a Terminal window and from the command line run the command “diskutil list”, which shows every disk in the system. Running it before and after attaching your disk will show you which disk number was assigned. It will be something like “/dev/disk3″, “/dev/disk4″, etc. You’ll also see numbers like “/dev/disk3s0″. The “s” numbers are partitions, but we’re only concerned with the entire disk, which is the “/dev/diskN” device.

    5) Attach your destination disk and note which disk number it was assigned. If you’re unsure, you can detach and reattach and see what changes before and after, or you can run “diskutil info /dev/diskN” (where N is your disk number) to get more info about the disk.

    6) Once you’re sure which disk is which, run the command as shown previously:

    ddrescue -f -n /dev/disk3 /dev/disk2 tivo-rescue.log

    (/dev/disk3 is the source disk, /dev/disk2 is the destination).

    7) Let it chunk away for a while. You’re free to use your Mac for other things while it’s copying. In fact, it’s best to remove the focus from that terminal window so a stray keystroke doesn’t kill ddrescue.

    8) When done, use diskutil (I used the regular GUI app) to unmount each disk cleanly.

    My TiVo is up and running great!

  12. Thomas Smith says:

    Hi Justin,

    I was able to recover my failing hard drive by using these instructions, thanks a bunch. You saved me $ so I’d like to make a donation. How would I do it?

    It was so easy, next I’m going to upgrade my drive.

    Thanks,
    Tom

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>