upgraded into a corner - how to (re)activate winXP in virtualbox, under ubuntu

Discussion in 'Windows XP / Older OS' started by downgrade2xp, Oct 1, 2013.

  1. downgrade2xp

    downgrade2xp MDL Novice

    Oct 4, 2010
    I upgraded my lenovo laptop (32-bit R60) to the latest ubuntu stable (pangolin - 12.04.3)

    I had vmware running on it, supporting my highly-configured pre-activated OEM winxp vm. That used the technique of referring to an external bios (bios440.filename = asus_314.rom) to pre-activate the windows (as an ASUS computer). This arrangement makes for a HIGHLY portable virtual machine.

    That door now seems to have been closed. The installed vmware won't run under this version of ubuntu (at least without a lot of time-consuming patching, repeated for every kernel update -- not a viable solution). The current version of vmware won't run on my 32-bit laptop because it now lacks some BIOS or CPU capability that vmware wants (forgot to make a note of it).

    Virtualbox will bring up the machine, but I'm having trouble activating it (I've already resigned myself to a less-portable winXP solution). If I run the OEMBIOS tool from the OEMBIOS Archive (sorry, I can't post the link) in virtualbox then I get a message "None of the 126 contained OEMBIOS sets will preactivate this system" (I posted a screen shot).

    I see there are Lenovo codes in the oembios archive, so I still have some hope, but I'm wondering what the best path is. I need to use this as a 'demonstration case' because I have clients with critical line-of business applications on WinXP, hosted on Ubuntu 10.04 (Lucid). Lucid has reached reached the end of its life, and I'd really rather not have to tell them that that they need to buy a new computer to allow us to upgrade ubuntu, which VMware doesn't like, etc. etc.

    In this particular situation, the activation code on the laptop won't work 'cause the license is for "refurbished" winXP, and the image I am using is from a template I made years ago from an I-don't-know-what-source OEM XP disk.

    So, is there a way to pre-activate my winXP VM under virtualbox (ubuntu host), given that the oembios tool does not report a known OEMBIOS? Please keep in mind I'm looking for a solution that can be generalized to a couple of other installs on differing hardware.

    And, should I be (cross-) posting this to any other forums?

    Thanks in advance!

    Attached Files:

  2. kelorgo

    kelorgo MDL Addicted

    Oct 29, 2012
    #3 kelorgo, Oct 2, 2013
    Last edited by a moderator: Apr 20, 2017
    First of all, it's important that you understand that the VirtualBox VM does not reflect the hardware (including manufacturer) of the computer it's installed on. It doesn't matter if you have a Lenovo, Dell or whatever laptop, that information is not visible inside the VM, so that's why the OEMBIOS tool is not coming up with any matches when run inside the VM.

    However, there is a very simple solution. VirtualBox allows you to configure the BIOS DMI information visible inside the VM. Have a look in the VirtualBox manual under "9.13. Configuring the BIOS DMI information". This is highly relevant for activating Windows XP inside a VM using SLP 1.0. For example, to modify the System Version field in DMI, you would use the command:
    VBoxManage setextradata "<VM name>" "VBoxInternal/Devices/pcbios/0/Config/DmiSystemVersion" "<System Version>"
    where <VM name> is the name of your VM, and <System Version> is an arbitrary string of your choice. (Don't include the < and >).

    In case you are not aware, the way SLP 1.0 works (i.e. OEM pre-activation in Windows XP) is that Windows XP checks for the presence of a simple string in the BIOS. In the case of many manufacturers, there is considerably flexibility in where the string is placed, and the DMI information area is sufficient for the purpose. So what this means is that you can use the above command in VirtualBox to insert a string in the DMI which Windows XP will then detect and provided that it has the correct OEMBIOS files, will pre-activate.

    You mentioned that your VMWare setup was pretending to be an Asus machine, so I assume that the OEMBIOS files in your WinXP setup is for Asus. As you can check in the The Windows XP OEMBIOS Archive, for an Asus machine to pre-activate, you need to have the string "ASUS_FLASH" present. So enter that in the DMI information (I recommend putting it in the System Version) and you should be good to go.

    1. Use the VBoxManage command from above to add a desired OEM string in the DMI System Version info to your VM.
    2. Run the OEMBIOS tool in the VM to verify.
    3. If necessary, make sure the WinXP in the VM has the matching OEMBIOS files.