4

Here at work, we have one user with some specialized legacy software, the developer of which has gone "belly up"* a long time ago.

When trying to copy the program to other systems (trying to check if it works in compatibility mode), we get a stern warning from the program telling us that if we use defrag or compactation tools the software may lose its "serial". I understand that the software is trying to do some checks in the contents of the hard disk (probably in which sectors the program is stored) in order to check if it is a legal copy.

The user says us that there she loves that program and that modern alternatives are not interesting (not to mention that there is no budget for it).

So, the only solution that I see possible is virtualization, but I do not know how it works about low level disk access. Does the virtualization process create a verbatim copy of the disk? Must I use a specific tool/setting?

So far, our virtual PCs have been setup with VMWare (ESXi and Player), but we are open to Virtuabox if it would work better.

*Given how old the software is, perhaps the entire devolpment team is now "belly up", literally.

Bryan
  • 7,538
  • 15
  • 68
  • 92
SJuan76
  • 232
  • 4
  • 16
  • Try making a binary copy of the disk and virtualize that? – Lucas Kauffman Jan 25 '12 at 13:00
  • 5
    Have you considered firing her? – Chopper3 Jan 25 '12 at 13:32
  • Perhaps if you told your employer how many of your billable hours are being devoted to copying discs, setting up a virtual machine, and trying to defeat the copy protection/registration on an old MS-DOS software; the company might reëvaluate exactly what it is that it doesn't have the budget for. ☺ – JdeBP Jan 25 '12 at 13:54

2 Answers2

2

Before anything else, I would boot up a Linux CD and use "dd" to copy the entire hard drive off somewhere else, preferably a file on a different, bigger drive (e.g., "dd if=/dev/hda of=/path/to/mounted/usb/drive/filename"). That way, if something stupid happens, you have recourse.

If it's MS-DOS, have you looked at a light-weight solution like DOSBox? It exists mainly to play old DOS games on modern hardware. I can't tell from glancing at the documentation, but you may be able to mount the disk image file you create from dd in DOSBox. If you can't do it directly, there should be a way to convert the image file.

Ah, it looks like there are tools to convert dd output for VirtualBox, so if DOSBox doesn't work out, there is that route. I'm sure VMWare will have a similar tool (search term might be something like "covert raw image to" (whatever the VMWare virtual hard drive format is called).

Update:

Here's the tool for DOSbox: http://www.dosbox.com/wiki/IMGMOUNT but I haven't tried it, and the whole thing about specifying disk geometry makes me think it might be annoying.

cjc
  • 24,533
  • 2
  • 49
  • 69
  • Ok, didn't think about DosBox seriously (too much time with vmwares and the likes) and did not know about dd. I also found about Bochs, which looks interesting too. It will take me some time to try it, so I'll give the solution as correct now and I'll update how it ends later. Thanks. – SJuan76 Jan 25 '12 at 13:57
2

I agree with CJC's idea of creating a disk image, but you might be in trouble regardless.

A) If this is an older drive, it'll have a particular disk geometry (cylinder, sectors, heads) that I wonder if a disk image would work transcribed to a new hard disk. If the program is really that old and it's searching particular sectors (terrible DRM, by the way...) the drive won't necessarily work when you place the image back to the new disk.

I.e., if your drive fails and you don't replace it with the same model drive or something really really similar, you're up a creek.

B) If you emulate and create an exact copy, your OS that is being used had better be pretty generic; your network card, your drive controller, your other drivers will be for the emulated environment, not the physical PC. If I make an image of an HP computer and place that image in a Dell, it won't work; the new system will be looking for drivers matching the HP. Unless the OS is flexible...Linux distros today rarely need additional drivers due to boot time probes of your system, and Windows can get some things changed, but if it's a low-level driver that gets screwy you might have some problems.

If you're lucky you'll get the OS to boot into a state where you can install the "proper" drivers for the emulated environment. If you're unlucky, it'll crash or blue screen.

If you still want to try it, create your backup first so you can restore the disk if it gets screwed up and use a Linux disk to dd the drive to a raw disk image, then use Virtualbox's utilities to transform the raw disk into a vhd image that it can read and attach it to a new VM. That will tell you if it'll work with Virtualbox; that's the first step I'd attempt. Make sure you have a second disk installed that can hold the entire disk you're imaging.

Depending on your job responsibilities and value of your time, you may end up having to drag your user kicking and screaming into using a program that is supported and was released in the last decade. Otherwise you'll be spending days trying to get this pet project working when the real solution may be, "Don't do that."

Bart Silverstrim
  • 31,092
  • 9
  • 65
  • 87
  • 1
    "drivers matching the HP"? "blue screen"? You've not (recently) used MS-DOS, have you? ☺ It doesn't do nice friendly crash screens, and it doesn't do installable device drivers for things that are provided by the real-mode firmware. Yes, these copy protection schemes are a disaster for customers. The world keeps reinventing them, though, despite the lessons of history such as this very case. – JdeBP Jan 25 '12 at 13:41
  • I didn't know if you were actually running plain-jane DOS (in which case you don't have quite so much of a problem) or if you're bending and twisting this ancient piece of horrible software into Win9x or XP. – Bart Silverstrim Jan 25 '12 at 13:47
  • But in the end, I'd still do what I initially said...DD the drive to a raw image, use virtualbox's tools to convert it to a usable drive image, then attach to a generic Virtualbox machine and boot. And encourage a migration path for this user while you still can. – Bart Silverstrim Jan 25 '12 at 13:48
  • Of course the user that this is a "best effort" attempt. This way, if I don't succeed and the PC finally dies, then I'll be able to just confirm that it is impossible to repair, instead of having to try the same with a more tight schedule. – SJuan76 Jan 25 '12 at 14:01