Skip to main content

Use Virtualbox to mount drives and transfer data for Tivo Disk Upgrades

I have a Linux-based workstation that is already configured for my needs, but I also needed to replace the disk drive on my Tivo Series 3 (Model TCD652160) using MFSTools 3.2, which is a Linux-based OS designed to copy/create the new Tivo drive. The OS of the Tivo3/HD limits the maximum size of the drive to 2TB. It appears that the Romio has a 6TB limit.

Details and download links for MSFTools 3.2 can be found at this link to the MFSTools discussion at The images were created with OpenSUSE Leap 42.1 and the available images there are:
MFSTools 3.2 ISO Live ISO
MFSTools 3.2USB/HD Use dd in Linux or something like HDD Raw Copy Tool in Windows to copy the uncompressed file to a USB or hard drive.
MFSTools 3.2 VHD For use in Hyper-V
.MFSTools 3.2 VMX For use in VMware/VirtualBox.
This method is pretty simple if you have a dedicated machine. Just install the disk drives as hda/sda and hdb/sdb and use your CD drive at hdc/sdc, but I don't have that luxury.

The MFSTools commands and options are detailed on this page. When I find some examples of how to use them, I'll link to them here.

If you just wish to make a bit-for-bit copy of your drive with updated status:
$ dd if=source_drive of=target_drive status=progress

Since a VirtualBox *.vmdk image is provided, I tried to use that image with VirtualBox, which is already installed on my workstation, creating a new VM named MFSTools_3.2.  I had issues with the MSFTools vmdk file not being able to load it's initrd image. No problem, I just configured the VM to boot from the ISO image.

The problem was how to make the source and target disk drives available to MFSTools and keep MFSTools away from the workstation's disk drives.  I can connect the source and target drives as USB devices, but I need them to be accessible as a raw disk device to allow MFSTools to work its magic. The solution is to make *.vmdk files that link to each drive in raw mode.

But before I do that, I added myself to the disk group in /etc/groups, logged out and then logged back in. This is necessary to use the following VBoxManage commands as a regular user. Otherwise, you will need to be the super user and run VirtualBox as the superuser which is not considered a good idea at all.

I used two USB drive adapters to connect the disk drives to my workstation. Watching the output of dmesg as I connected first the source drive and then the target drive revealed that they were seen on my system as /dev/sdk and /dev/sdl  respectively. Your results will vary.

The *.vmdk files pointing to the raw disks are created as follows:

$ VBoxManage internalcommands createrawvmdk -filename  /path/to/source_sdk.vmdk -rawdisk /dev/sdk

$ VBoxManage internalcommands createrawvmdk -filename /path/to/target_sdl.vmdk -rawdisk /dev/sdl

The path I used was the path to the MFSTools virtual machine I had created in VirtualBox using the downloaded MFSTools_3.2_openSUSE_Leap_42.1_JeOS.x86_64-1.0.4.vmdk (actually, I had to use the ISO image instead).

In the VirtualBox details, add source_sdk.vmdk and target_sdl.vmdk as hard drives.

Then start the VM which prompts you for a login and password, which will be root and tivo, respectively.

Your source disk will display partition information and other details if queried with

# mfsinfo /dev/sda

Your target drive, which is likely unformatted, will not display this information. This process will make certain that you have correctly identified which disk is the source and which disk is the target.

The current version of MSFTools will copy and expand all in one operation, so enter (in my case)

# mfstool copy -a /dev/sda /dev/sdb

and wait patiently as the process unfolds; it takes a while.

If you run into trouble, search the many posts about MFSTools at

As always, your comments are welcomed.


Backup, Upgrade, Add, or Replace TiVo drive using MFSTools

Hinsdale How-to TiVo Upgrade - MSFTools 2.0

VirtualBox Tips and Tricks

Boot your USB Drive in VirtualBox


Tivo 2/3 Bad Power Supply Capacitors

WinMFS Quickstart Guide

How to Upgrade the HDD in your TiVo Series 3 with WinMFS

Reformat large (4TB - 6TB) Roamio drives


Popular posts from this blog

Unreal Tournament GOTY/UT99 for Modern Linux

Released on November 16, 1999, Unreal Tournament (also known as UT99) is an arena first-person shooter for Multiplayer on-line competition or you cam play against bots off-line. It features several game types, with more details provided at Wikipedia. The game was re-released on February 25, 2000 as Unreal Tournament Game of the Year Edition (GOTY) which included the three bonus packs released previously and additional mods, or game modifiers that had become popular. It is the GOTY version that is available from STEAM or

The GOG version for Windows installs in Linux and plays well using WINE, PlayOnLinux or Codeweaver's Crossover.

There is a Linux binary available in two versions, one for the original game and one for the GOTY edition. Also provided at that site is the Official Bonus Pack with a Linux installer. All these Linux installers are created with makeself.

There are some issues using such a crusty old Linux binary. Let's see why getting a Linux binary up and …

DOS4GW.EXE Version 2.01a and Alternative DOS Extenders

The TenberryDOS extender DOS4GW.EXE was used by many early DOS games. I still enjoy playing many of these games and DOS4GW.EXE is usable with DOSBox, so they can be played on Linux.

However, the version of DOS4GW.EXE that was included with the game was whatever was current at the time. The most recent version that includes many bugfixes that possibly affected the games when used with DOSBox have been fixed in the latest version, 2.01a.

It's not free at US$49, but you can downloaded it here. Simply substitute it for whatever version of DOS4GW.EXE your game provided and enjoy the bug-fixed goodness. Tenberry also makes a "high-performance" "pro" version of DOS4GW.EXE, but it costs $300. I think that they could sell quite a few of these to hobby users (since, you know, DOS is dead) for US$5.

Open Souce to the Rescue
There are better performing, free and Open Source alternatives available and worth a look.

DPMI Explained
Let's understand what DPMI, o…

Unpack those .EXE game files from (Plus other un-packers)

I just came upon innoextract today. I have many of the wonderful games from, some of which have native Linux Clients. Before now, I've had to use PlayOnLinux or Crossover to install these for use with WINE, then add the Linux client.

InnoSetup as a way to create an installer to install the games on Windows. Daniel Scharrer has created innoextract to allow the unpacking of those archives on a non-Windows platform.

The website provides information on using innoextract, but this information from the page is very useful: installers with a 2.x.x version number on the download page or in the filename use InnoSetup 5.5.0 and cannot be extracted by innoextract 1.2 and older. Older installers use InnoSetup 5.2.3 and usually have no version in the filename.Some multi-part installers with version 2.1.x or higher use RAR archives (renamed to .bin) to store the game data. These files are not part of the InnoSetup installer and require unrar or unar to b…