From: Kelly Leavitt <kelly@catcorner.org>
Good afternoon all, This is Kelly from the vcfed. I was wondering if anyone had experience in converting physical machines to run in a virtual environment. It just seems like a skill I can find in this group.
I'm trying to help a friend convert an old XP machine that runs custom USB hardware into a virtual environment so he can keep using his equipment.
I have it running under VMWare, but it's not 100% stable. I get BSOD on shutdown about 50% of the time and about 10% of the time on system startup. I've removed all drivers for old non-needed equipment, did a repair XP install, installed the guest applications for XP and disabled sound and graphics acceleration already.
I've been using VirtualBox to host an XP machine for some time, including some limited USB pass-through (serial ports, but actually passing the USB through to the XP and installing the FTDI driver there). It has been unconditionally stable, and I find that the performance is fine also. In fact, when my ancient (2003) version of SolidWorks stopped working on Win-10 after a recent update, I installed it on the Virtual XP machine, and not only does it run fine there, it's also about 50% faster! So, you might give VirtualBox a try (install the "Guest Additions CD" too), and I'd definitely try to figure out how to do a clean install of XP. Perhaps you could run the current flawed version enough to extract the user's software and various drivers; here's a little batch file that should grab the drivers: %homedrive% cd “%homepath%\my documents” md DriverBackUp cd DriverBackUp xcopy %windir%\system32\Drivers /r /y xcopy %windir%\system32\DriverStore /r /y xcopy %windir%\inf /r /y pause In some cases drivers may need some registry tweaks or other dlls, and must be installed using the manufacturer's original installer, but very often just pointing Windows to the DriverBackUp (or whatever you called it) directory when installing the hardware on the new machine will work just fine. You can use Dependency Walker (dependencywalker.com) to find any referenced dlls; if you find any, you'll need to manually copy them to the right place on the new system, then use regsvr32 to register them so that XP can resolve any references to them. As far as moving the (presumably custom) software application to a new machine, that can range from easy (copy the executable) to impossible (the creator put things in non-standard places, and/or has a zillion widely scattered registry entries). I've had some success copying the executable and its whole directory (C:\Program Files\<whatever>), then using Dependency Walker to find dlls, ocxs, etc. it may have stashed in other places (like Windows\System32). Hopefully a search of the registry using the applications name (or a substring of it) will reveal at least some of the registry entries, and perhaps provide clues to where other might be lurking. Note that you'll need to register ocxs as well as dlls, if you find any. You mentioned that the budget didn't extend to a "new" XP machine; consider that you could easily spend a day tinkering with this, and how much your time is worth... ~~ Mark Moulding