How to move an existing Windows 98 installation to a VM

How to do things, solutions, recipes, tutorials
Post Reply
Message
Author
User avatar
vtpup
Posts: 1420
Joined: Thu 16 Oct 2008, 01:42
Location: Republic of Vermont
Contact:

How to move an existing Windows 98 installation to a VM

#1 Post by vtpup »

(Note: I originally wrote this How-To for Ubuntu -- I've now switched over to Puppy, but the process is essentially the same. I've updated it here. Also, it may be possible to do this without the PartedMagic CD -- possibly from the Puppy LiveCD -- I don't know -- anyway it works with PartedMagic CD. So here goes)

Creating new virtual machines with fresh installs of other operating systems is fairly straightforward, However, I wanted to move an existing old Windows 98SE installation into Vmware player virtual machine, without having to reinstall all of the software I've collected over the years.

In many cases this saves having to contact software providers for new installation keys, and saves hours of installation work. The VMWare conversion It's not a piece of cake, but the result is a system that looks and acts exactly like my old one did.

Please note that this is a new virtual machine, not a redirection of VMware to a dual boot partition. There are Internet explanations dealing with that redirection process, It has several serious drawbacks which I won't go into.

The method I used has many advantages -- portability, the ability to back up your entire install by copying one file, complete separation and protection of my old dual-bootable Windows partition, no constant changes of Windows hardware profile (and possible overuse of the coa key), etc. And easy installation of the same machine on multiple computers . My laptop has the same Win virtual machine as my desktop, with identical appearance, programs settings and data. It is in fact my ten year old Windows 98SE installation.

Because I was originally unable to find a single location which outlined the steps needed to copy a functioning partition into a virtual machine for VMWare Player, I've created this How-To.

The overall process:

1.) Install VMWare Player.
2.) Install Partimage
3.) Download and burn a CD of the ISO of PartedMagic ( http://partedmagic.com )
4.) Follow these instructions for extracting a copy of VMWare Tools:
http://www.brandonhutchinson.com/Instal ... layer.html

Note: VMWare Tools allows you to usw VMWare Player with full resolution and speed -- otherwise your virtual machines will only appear in a reduced size screen and performance won't be very good. Unfortunately the free VMWare Player doesn't come with VMWare Tools. However they may be extracted from a non-functional VMWare Workstation, freely downloaded from VMWare's site. The instructions at the referneced URL show how to do this.

5.) Create an empty virtual machine (in my case named Windows98SE.vmx) by using the tool at: http://www.easyvmx.com Set the VM's memory figure to a maximum of half of your total memory - Win98 will run well in 128 Megs

Also decide how large you want to make your virtual machine (in gigabytes). Think about your needs. I decided that since I would mainly be using Puppy from here on out, and the Windows machine was only for "must-use" occasions, I was going to give myself 5 gigabytes on one of my machines and 20 gigabytes on another heavily programmed one.

6.) You will need an external hard drive or DVD drive or a memory stick to hold an image of your Windows installation while you transfer it to the .vmdk file. It needs to be large enough in capacity to hold your windows installation.

If you first de-fragment your windows partition (using windows defragmenter) it may be possible to shrink it using a proprietary windows partition manager, Ranish PM, or Gparted -- be careful if you do this and know what you are doing. Always back up first before operating on any partition.

If your partition is larger than the capacity of a DVD drive, Partimage can span disks to create a multi disk image. You could even use a CD burner for this, though it may result in many disks for a large system. An external hard drive is ideal, as it is likely to be big enough to easily handle a partiton image.

7.) In a terminal open partimage

Code: Select all

partimage 
Suggestions while generating an image file in Partimage:

-- use the <tab> key to move between lines, <space> to check a check box, F5 to move to next page
-- highlight the Windows partition you want to copy to an image file
-- make sure you are saving a partition to an image file
-- save as something like sdb1/Windows98SE.partimg (if your external hard drive is mounted as sdb1)
-- I suggest saving the image uncompressed if you have the space -- why? Because Partimage choked for me when restoring a zipped file over 4 Gigs in size. Subsequent web searches revealed it's a bug. You may be able to zip a file under 2 gigs and have it restore however.
-- if you don't need to span multiple CD or DVD disks with a very large file, set the spanning size to automatic

8.) Close partimage. When the image file is finished, it will probably have an extension like ".000" added. That isn't a problem unless you compressed the file, in which case you should change the name to have an appropriate zip extension (like .gz) for the zip type you used.

9.) Put the Parted Magic CD in your internal cdrom drive.

10.) Double click on the Windows98SE.vmx file. This should start VMWare player, and should also start it booting from the Parted Magic CD.

11.) Once in Parted Magic click on the Partition Manager (left icon at bottom of screen).

12.) Partition the new virtual drive as FAT 32. You will have to do this in 2 steps as you will first need to set a volume label -- say yes to the default. Close partiton manager when done

13.) In the right fly-up menu select the Mount Manager and mount your external drive.

14.) Open the terminal and type

Code: Select all

partimage 
15.) Restore your saved image file to the new virtual machine partition.

16.) Open Partition manager again and set the flags for the new partition to boot and LBA

17.) Your new partition will almost certainly be larger than your Win98 image was -- so we need to correct the disk partition data for Windows to recognize the new larger size. Run the Check process in Partition Manager to correct the size of the partition.

18.) Click Quit in the upper left of the VMPlayer window.

19.) Put your original MS Windows 98SE Installation CD in your internal CDRom drive -- Why? -- You will need it to install many drivers to support the new virtual machine. You won't be installing Windows 98, it's already there, but your VMWare virtual machine has some new virtual devices and they require drivers found on the Win98SE CD.

20.) Again start Your VMPlayer by double clicking on the Windows98SE.vmx file in your VMWare folder. This will boot the Win98 CD, which in turn will give you 2 choices in a menu. Boot from HD or from CD. Choose HD -- if not highlighted already.

(Note: If you want to type a choice 1 or 2 you have to first click on the VMPlayer window to enter the window, and you have to be very quick about it in a fast processor machine! It goes by quick!)

21.) Once your machine boots in HD mode windows will prompt you for driver locations. Most of these will be on the Windows 98 CD (D:\Win98). I found I had to locate a few after the initial install (which were not on the CD) by doing a search in Windows for the filenames, then re-installing the particular devices drivers with that information (Settings>System>Device Manager> disabled devices). You can also look on the net for a driver file if you can't find it elsewhere. You may need to re-boot the virtual machine a few times when instructed to do so, in order to install various drivers.

22.) VMPlayer Windows 98 virtual machine should be working now, but only with 640 x 480 resolution --and in a shaky manner at that. Have no fear. Now move VMWare Tools into the virtual machine, unzip them into a folder and run the setup program. This will install an SVGA virtual graphics card as well as speed up and smooth out the entire machine so that it feels like it is working in native mode.

You're done, enjoy your new capability.
Also: a nice VMX File reference: http://sanbarrow.com/vmx.html
Last edited by vtpup on Fri 12 Dec 2008, 03:24, edited 1 time in total.

User avatar
vtpup
Posts: 1420
Joined: Thu 16 Oct 2008, 01:42
Location: Republic of Vermont
Contact:

#2 Post by vtpup »

Windows XP

I've tried this procedure with three different Win98SE machines and they all made viable Virtual Machines.

However an attempt with an existing Windows XP installation (with very little additional software installed) did not work.

Windows 98 is a lot more robust about things like taking an existing hard drive installation and putting that hard drive in a different computer. That's effectively what you do by creating a virtual machine from an existing installation image.

Win98SE will generally protest a lot (Found New Hardware messages) but will allow you to load whatever new drivers it needs from the Win98SE disk. to readjust to its new environment.

Not so XP.. It just shuts down immediately -- for your protection apparently -- in case the altered environment represents a virus situation. There may be ways of disabling this behavior -- I don't know. But I was unable to get an XP VM transplant to work.

I'd be glad to hear from anyone who does.

User avatar
vtpup
Posts: 1420
Joined: Thu 16 Oct 2008, 01:42
Location: Republic of Vermont
Contact:

#3 Post by vtpup »

Using the Puppy disk rather than PartedMagic CD

Yes you can do this and probably better than with the PartedMagic CD.

You use Pudd in Puppy to make the image from your existing Windows partition, and to restore it to your new Virtual Machine. You use Gparted to format the Virtual Machine and set the volume label, as well as the boot flag. You also use it at the end of the process, after the image has been transferred to the VM to check the disk -- which causes Gparted to expand the image to fill the available space so windows can see the whole partition.

One caution:

In trying this out, I used the 4.1.1 Puppy CD because it had Pudd and Gparted on it. However my base frugally installed system was 3.01. Since I didn't specify pfix=ram when booting off the 4.1.1 CD I did an inadvertent version upgrade of my installed system.

So if you want to try to use a later Puppy version disk than your installed base, be sure to specify pfix=ram when booting -- unless you don't mind upgrading at the same time!

User avatar
mikeb
Posts: 11297
Joined: Thu 23 Nov 2006, 13:56

#4 Post by mikeb »

Xp is an awkward beastie..I've never moved it sucessfully..totally stitched up.....

For Nt, nt4 and 2000 are pretty portable, only fix that may be needed is using generic ide driver before transpanting...performance in a virtual machine is much better too.

mike

User avatar
vtpup
Posts: 1420
Joined: Thu 16 Oct 2008, 01:42
Location: Republic of Vermont
Contact:

#5 Post by vtpup »

Good to hear about 2000, MikeB, though I don't have any existing installs in that one to test out. I do have an original install disk, so I can create a new install, and then transfer it over. But that's more work than just installing it directly to a new virtual machine, if needed.

Aitch was enquiring whether 2000 could be moved and I'm sure he'll be glad to read that it probably can.

I bet that someone clever will work out what it takes to move XP as well. I have a feeling the REAL reason it stops functioning is a sofware rights booby trap.

Seems like that would be a direct challenge, issued to brighter minds than my own.

User avatar
mikeb
Posts: 11297
Joined: Thu 23 Nov 2006, 13:56

#6 Post by mikeb »

I have a feeling the REAL reason it stops functioning is a sofware rights booby trap.
Yes that is the real reason..it's not a hardware issue otherwise that would be easily solvable.

For a very fast installing windows 2000 see here...

mike

User avatar
vtpup
Posts: 1420
Joined: Thu 16 Oct 2008, 01:42
Location: Republic of Vermont
Contact:

#7 Post by vtpup »

That 2000 lipo-suction site. Very cool.

Post Reply