Page 1 of 1

Lots of Physical->VirtualBox migrations

Posted: 9. Feb 2009, 04:18
by wayne47
We have a LOT of physical machines that are kept for the sole reason that they need to run a few apps that can not be reinstalled. Everything from Win95 on up. No commonality, some use RAID, some are notebooks, some IDE. some SCSI, etc. What I'm really, really hoping for is some method to boot a working, random, windows box and image it's drive over to Virtualbox, while making no changes on the original box. I doubt that I'll be able to get any form of Unix/Linux to be able to read some of these so a dd solution is not viable, even if Windows would boot it (which, apparently, it will not since the VM is totally different hardware).

I can not find ANY information on how to do this. I'm presuming that there exists a pair of client/server programs where one fires up the server on the host machine and the client on the ancient box, plug in IP addresses and let things gronk overnight, resulting in a properly converted bootable VM on the host. But, if so, Google isn't finding it.

Pointers?

Posted: 9. Feb 2009, 13:30
by TerryE
Wayne, Welcome to our forum. You might want to scan the Forum Posting Guide. This contains some useful tips on how to search for VBox knowledge, etc..
What I'm really, really hoping for is some method to boot a working, random, windows box and image it's drive over to Virtualbox, while making no changes on the original box.
If you don't want to change your HDD then you need to boot an OS which will not require write access to the HDD. There are some proprietary tools that will do this for the windows market or most Linux LiveCDs will do likewise. The modern Linux LiveCD will happily boot from CDROM and understand both FAT and NFTS formats. The can image the HDD and copy a compressed version over the network or (in the case of a PC newer than perhaps 5 -8 years, to a USB HDD). These images can then be converted into VDI format. This takes care of the physical issue of cloning the media. Getting the OS to run is a completely different issue. This process is known as physical-to-virtual or P2V, and the main difficulty here is that Windows is specifically designed to be installed on a single fixed hardware configuration, and if you move it to another configuration such as a virtual one then you need to start patching the driver chains which on W9x OSs involves loading new driver sets and changing the ini files. On NT class OSs you need to get into loading (OS specific) drivers and patching registries. All a bit of black magic. An addition issue on XP and later OSs is the MS activation software that can detect hardware changes and disable the OS on most non-enterprise versions.

Hence this whole issue is an art more than a science. There is no single simple approach. Unfortunately enabling business continuity for legacy applications does not appear to be a priority for Microsoft. Take one example that I know where a major manufacturer had a $2M precision PNC machine that was controlled by a Win3.11 PC running the PNC software. The supplier did not have a new version of the PNC control application that ran on current H/W. A bit of a problem, eh?

Zenith infotech

Posted: 10. Feb 2009, 20:54
by zinetwin
Zenith Infotech has an approach that uses storagecraft to take full and incremental backups and then migrates them to virtualbox using a custom harddrive in virtualbox that's an .xml script. I have tried to reverse engineer it and haven't gotten far. It seems like a proprietary process but it does work very well, provided the backup images are solid. From what I have seen it takes the .spi images and uses that .xml script to direct virtualbox to those backup chains and somehow gets it to work.
http://www.storagecraft.com/products/Sh ... ectServer/
http://www.zenithinfotech.com/
Here's an example of one of those .xml scripts that acts as the hdd.

Code: Select all

<SBHardDisk xmlns="http://www.innotek.de/VirtualBox-SBHardDisk" version="1.4" Signature="58a42e28" InitializePartitionTableFromXml="true" InitializeWithStandardMBR="true" SectorSize="512" SectorsPerTrack="63" Heads="255">
  <Volume  PasswordType="None" VolumeOffset="32256" VolumeLength="52526605824" MakeActive="true">
    <SparseFile filePath="C:\Sparse\guestmachine\Real\guestmachine_C_{d2002f5b-2935-4d4c-bd1c-ad82185dadd1}.SPWB" useExistingFile="true" deleteOnClose="false" makeSPIOnClose="false"/>
    <SPFImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001.SPF"/>
    <SPIImages>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I493-CD-CW.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I525-CD.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I620-CD.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I715-CD.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I810-CD.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I905-CD.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I906.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I907.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I908.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I909.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I910.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I911.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I912.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I913.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I914.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I915.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I916.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I917.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I918.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I919.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I920.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I921.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I922.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I923.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I924.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I925.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I926.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I927.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I928.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I929.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I930.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I931.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I932.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I933.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I934.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I935.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I936.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I937.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I938.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I939.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I940.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I941.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I942.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I943.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I944.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I945.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I946.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I947.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I948.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I949.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I950.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I951.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I952.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I953.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I954.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I955.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\C_VOL-B001-I955_Migration_{97e0ce74-7c24-4412-8321-b539a9665d5b}.spi"/>
    </SPIImages>
  </Volume>
  <Volume  PasswordType="None" VolumeOffset="52526638080" VolumeLength="239791587840" MakeActive="false">
    <SparseFile filePath="C:\Sparse\guestmachine\Real\guestmachine_D_{22c490f4-f7a9-4dbb-abf4-0e60d0a9ee27}.SPWB" useExistingFile="true" deleteOnClose="false" makeSPIOnClose="false"/>
    <SPFImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001.SPF"/>
    <SPIImages>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I493-CD-CW.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I525-CD.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I620-CD.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I715-CD.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I810-CD.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I905-CD.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I906.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I907.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I908.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I909.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I910.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I911.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I912.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I913.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I914.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I915.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I916.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I917.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I918.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I919.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I920.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I921.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I922.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I923.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I924.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I925.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I926.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I927.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I928.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I929.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I930.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I931.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I932.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I933.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I934.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I935.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I936.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I937.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I938.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I939.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I940.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I941.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I942.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I943.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I944.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I945.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I946.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I947.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I948.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I949.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I950.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I951.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I952.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I953.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I954.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I955.SPI"/>
      <SPIImage filePath="D:\BACKUP\46E232C5A2AC43E6-guestmachine\D_VOL-B001-I955_Migration_{97e0ce74-7c24-4412-8321-b539a9665d5b}.spi"/>
    </SPIImages>
  </Volume>
</SBHardDisk>
Like I said, I can't figure it out.

Re: Lots of Physical->VirtualBox migrations

Posted: 25. May 2011, 10:46
by alini76
Hi !

Please ! What documentation are you referring to?
I want to implement something to be able to start a SPFImage on VirtualBox from code.
Where is this XML?

Thank you,
Alin