Page 1 of 3

N00b question about Windows activation

Posted: 12. Aug 2008, 04:19
by jspaceman
I'm running Virtualbox (non-OSE version) on an Ubuntu Hardy Heron host, and running a Windows XP SP3 guest which already existed on my hard drive before I started using Virtualbox (I was dual booting Ubuntu and WinXP before I discovered Virtualbox).

After I booted WinXP up in Virtualbox it started asking me to enter my product key. If I enter the product key and then later on boot directly into WinXP, it asks for the product key again. Is there a way around this, or am I obligated to purchase another product key and use one when I'm running XP directly, and the other when I'm running XP through Virtualbox?

I created two hardware profiles in XP, one called "Physical" and the other called "Virtual", which I use when I run XP in Virtualbox.

Posted: 12. Aug 2008, 14:46
by TerryE
The XP OS licensing is that you are only allowed to run your OS on a single machine. Now you may feel that a dual boot of the same code on the same disks on the same H/W constitutes the same machine. However the OS remembers some basic data about the H/W config and the VBox virtualised machine looks very different to the underlying bare H/W; enough to trigger reactivation.

However if you read sec 9.13 of the User Guide, this explains how you can configure your Virtual BIOS to look enough like your real BIOS to avoid reactivation.

Posted: 12. Aug 2008, 23:45
by jspaceman
When I run 'dmidecode -t0' I get the following:

Code: Select all

SMBIOS 2.4 present.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
        Vendor: Phoenix Technologies LTD
        Version: NAPA0001.86C.00
        Release Date: 05/18/06
        Address: 0xE75C0
        Runtime Size: 100928 bytes
        ROM Size: 512 kB
        Characteristics:
                ISA is supported
                PCI is supported
                PC Card (PCMCIA) is supported
                PNP is supported
                APM is supported
                BIOS is upgradeable
                BIOS shadowing is allowed
                ESCD support is available
                Boot from CD is supported
                ACPI is supported
                USB legacy is supported
                AGP is supported
                BIOS boot specification is supported
How do I enter this information using the commands in section 9.13?

For example, would I type:
VBoxManage setextradata "Windows XP" \
"VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVendor" \
"Phoenix Technologies LTD"

Posted: 13. Aug 2008, 00:58
by TerryE
Yup, or use a few variables to make life easier

Code: Select all

SED="VBoxManage setextradata \"Windows XP\""
CFG=VBoxInternal/Devices/pcbios/0/Config

$SED "$CFG/DmiBIOSVendor" "Phoenix Technologies LTD"
# Etc.

Posted: 13. Aug 2008, 01:33
by jspaceman
I seem to get errors when I try to enter those commands. When I enter:
snozzy@loonix:~$ VBoxManage setextradata "WinXP" \
> "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVendor" \
> "Phoenix Technologies LTD"
I get the following:
VirtualBox Command Line Management Interface Version 1.6.4
(C) 2005-2008 Sun Microsystems, Inc.
All rights reserved.

[!] FAILED calling virtualBox->FindMachine(Bstr(argv[0]), machine.asOutParam()) at line 6768!
[!] Primary RC = NS_ERROR_INVALID_ARG (0x80070057) - Invalid argument value
[!] Full error info present: true , basic error info present: true
[!] Result Code = NS_ERROR_INVALID_ARG (0x80070057) - Invalid argument value
[!] Text = Could not find a registered machine named 'WinXP'
[!] Component = VirtualBox, Interface: IVirtualBox, {2d3b9ea7-25f5-4f07-a8e1-7dd7e0dcf667}
[!] Callee = IVirtualBox, {2d3b9ea7-25f5-4f07-a8e1-7dd7e0dcf667}
It says "Could not find a registered machine named 'WinXP'", yet that is the name of my virtual machine. What am I doing wrong?

Posted: 13. Aug 2008, 18:39
by TerryE
Could you post a VBoxManage list vms | egrep '^Name:' and you can always use the VMs UUID instead.

Posted: 14. Aug 2008, 01:41
by jspaceman
VBoxManage list vms | egrep '^Name:' gives me:
Name: Windows XP
Name: Polar Electro Polar USB Interface [0117]
Name: 'FAT32', Host path: '/media/sda5' (machine mapping), writable
I tried running VBoxManage setextradata again, this time with "Windows XP" as my machine name, and it seems to work now; I don't get any error messages.

I am a bit stumped though when it comes to entering in my BIOS and firmware major and minor version numbers. Running dmidecode -t0 gives me:
# dmidecode 2.9
SMBIOS 2.4 present.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
Vendor: Phoenix Technologies LTD
Version: NAPA0001.86C.00
Release Date: 05/18/06
Address: 0xE75C0
Runtime Size: 100928 bytes
ROM Size: 512 kB
Characteristics:
ISA is supported
PCI is supported
PC Card (PCMCIA) is supported
PNP is supported
APM is supported
BIOS is upgradeable
BIOS shadowing is allowed
ESCD support is available
Boot from CD is supported
ACPI is supported
USB legacy is supported
AGP is supported
BIOS boot specification is supported
And running dmidecode -t1 gives me:
SMBIOS 2.4 present.

Handle 0x0001, DMI type 1, 27 bytes
System Information
Manufacturer: Clevo Co.
Product Name: M570U
Version: Not Applicable
Serial Number: Not Applicable
UUID: 0090F54F-F81A-0000-0000-000000000000
Wake-up Type: Power Switch
SKU Number: Not Specified
Family: Not Specified
I don't see any information there regarding my BIOS and firmware major and minor version numbers. When I boot into my laptop's BIOS it lists a BIOS Rev. number: 5.71.22.26.12, but I'm not sure if that is the same thing.

Posted: 14. Aug 2008, 04:45
by TerryE
I got they rest of mine by running msinfo32 on the raw machine. Unfortunately in my case because I built my system from scratch a couple of the fields (e.g. the machine vendor) were blank. If you set one of these extradata to blanks then VBox treats this as "default" which is in some cases os not blank e.g. the machine Vendor becomes an Innotek entry and so different and so I still got forced reactivation.

Posted: 14. Aug 2008, 23:38
by jspaceman
I ran msinfo32 and it lists the following for my BIOS information:
BIOS Version/Date Phoenix Technologies LTD NAPA0001.86C.00, 5/18/2006
But I'm not sure if that is what VirtualBox is looking for with regards to bios and firmware major/minor versions though. Does anybody know?

Posted: 15. Aug 2008, 00:04
by TerryE
Phoenix Technologies LTD
NAPA0001.86C.00
5/18/2006

But what about the System Name, System Manufacturer, System Model and SMBIOS version which are also there?

Posted: 15. Aug 2008, 05:01
by jspaceman
Here is everything listed under System Summary:
OS Name Microsoft Windows XP Professional
Version 5.1.2600 Service Pack 3 Build 2600
OS Manufacturer Microsoft Corporation
Activation Status Activation Pending (2 days remaining)
System Name LAPTOP
System Manufacturer Clevo Co.
System Model M570U
System Type X86-based PC
Processor x86 Family 6 Model 14 Stepping 8 GenuineIntel ~2161 Mhz
BIOS Version/Date Phoenix Technologies LTD NAPA0001.86C.00, 5/18/2006
SMBIOS Version 2.4
Windows Directory C:\WINDOWS
System Directory C:\WINDOWS\system32
Boot Device \Device\HarddiskVolume1
Locale United States
Hardware Abstraction Layer Version = "5.1.2600.5512 (xpsp.080413-2111)"
User Name LAPTOP\Jason
Time Zone Eastern Daylight Time
Total Physical Memory 2,048.00 MB
Available Physical Memory 1.27 GB
Total Virtual Memory 2.00 GB
Available Virtual Memory 1.96 GB
Page File Space 3.85 GB
Page File C:\pagefile.sys

Posted: 15. Aug 2008, 10:34
by TerryE
As far as I can see your parameter setting should be:

Code: Select all

UUID=<You find this out by doing a list vms>
SED="VBoxManage setextradata $UUID" 
CFG=VBoxInternal/Devices/pcbios/0/Config

$SED "$CFG/DmiBIOSVendor"       "Phoenix Technologies LTD"
$SED "$CFG/DmiBIOSVersion"      "NAPA0001.86C.00"
$SED "$CFG/DmiBIOSReleaseDate"  "5/18/2006 "
$SED "$CFG/DmiBIOSReleaseMajor" "2"
$SED "$CFG/DmiBIOSReleaseMinor" "4"
$SED "$CFG/DmiBIOSFirmwareMajor" "2"
$SED "$CFG/DmiBIOSFirmwareMinor" "4"
$SED "$CFG/DmiSystemFamily"     "X86-based PC"
$SED "$CFG/DmiSystemProduct"     "M570U"
$SED "$CFG/DmiSystemUuid"       "0090F54F-F81A-0000-0000-000000000000"
$SED "$CFG/DmiSystemVendor"     "Clevo Co."
You can check that this is correct because the msinfo32 view from the VM and the bare metal should be identical. Because you are running your VM using a raw partition, the XP are using a common installation and registry. That means that once you get this right reactivation should work for both.

Posted: 13. Sep 2008, 23:31
by gecko3940
Hi I'm another noob in same situation – dual booting XP SP3 and Ubuntu Hardy Heron. I would like to run the existing XP partition both directly from disk as well as through Ubuntu using VirtualBox 2.0 (non-OSE version). But am having difficulties. When I run sudo dmidecode -t0 I get:

Code: Select all

# dmidecode 2.9
SMBIOS 2.3 present.
Handle 0x0000, DMI type 0, 20 bytes
BIOS Information
	Vendor: Intel Corp.
	Version: SV84510A.86A.0013.P08.0303171920
	Release Date: 03/17/2003
	Address: 0xF0000
	Runtime Size: 64 kB
	ROM Size: 512 kB
	Characteristics:
		PCI is supported etc etc

Sudo dmidecode -t1 yields:

Code: Select all

 # dmidecode 2.9
SMBIOS 2.3 present.
Handle 0x0001, DMI type 1, 25 bytes
System Information
	Manufacturer:                                
	Product Name:                                
	Version:                        
	Serial Number:                                
	UUID: <numbers/letters provided>
	Wake-up Type: Power Switch
Windows System Information:

Code: Select all

OS Name	Microsoft Windows XP Home Edition
Version	5.1.2600 Service Pack 3 Build 2600
OS Manufacturer	Microsoft Corporation
System Name	<provided>
System Manufacturer	INTEL_
System Model	D845PESV
System Type	X86-based PC
Processor	x86 Family 15 Model 2 Stepping 9 GenuineIntel ~2799 Mhz
BIOS Version/Date	Intel Corp. SV84510A.86A.0013.P08.0303171920, 17/03/2003
SMBIOS Version	2.3
Windows Directory	C:\WINDOWS
System Directory	C:\WINDOWS\system32
Boot Device	\Device\HarddiskVolume1
Locale	Australia
Hardware Abstraction Layer	Version = "5.1.2600.5512 (xpsp.080413-2111)"
User Name	<provided>
Time Zone	AUS Eastern Standard Time
Total Physical Memory	768.00 MB
Available Physical Memory	414.89 MB
Total Virtual Memory	2.00 GB
Available Virtual Memory	1.96 GB
Page File Space	1.83 GB
Page File	C:\pagefile.sys
I have carried out the instructions on this page: http://www.virtualbox.org/wiki/Migrate_Windows. That is, I have enabled IO APIC support in Vbox, used MergeIDE in windows partition, and renamed agp440.sys and intelppm.sys inside the C:\Windows\SYSTEM32\drivers directory.

I have created 2 VMDK files using commands found in VBox help files:
1. sudo VBoxManage internalcommands createrawvmdk -filename /home/username/winxp1.vmdk -rawdisk /dev/sda -partitions 1 -relative (which gives me a GRUB: Error 17 message when I boot Vbox); and
2. sudo VBoxManage internalcommands createrawvmdk -filename /home/username/winxp.vmdk -rawdisk /dev/sda (which will boot windows to the “activate windows” screen but there is no keyboard or mouse function so I can't go any further).

I would much prefer to use 1. above, to avoid accidentally booting the wrong partition, but keep getting the GRUB error. I've had to use sudo prefix because I can't access Windows volume while using Ubuntu as a normal user. I can therefore only access the virtual machine in VBox as root.

I've created a second Hardware Profile directly through Windows partition.

My questions are:
1.I've read on this thread: [urll]http://forums.virtualbox.org/viewtopic.php?t=9193[/url] that the GRUB: Error 17 message may be solved by booting Win XP installation CD, choosing recovery console and running "fixmbr" command. If this is correct, do I do this through Vbox or natively? I don't want to ruin my normal boot up (which is the Ubuntu grub menu).

2.Do I need the second hardware profile?

3.Should following this thread enable my mouse and keyboard?

4.Should I be running this VM using root? If not, how could I run it in a normal account?

5.My SMBIOS is 2.3. Does this mean my Firmware Major and Release Major versions are "2", and the corresponding Minor versions are "3"?
System Version and System Serial I'm also stuck on.

6.Would this then be my parameters:

Code: Select all

VBoxManage setextradata "My VM" \
   "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVendor" \
   "Intel Corp."
VBoxManage setextradata "My VM" \
   "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVersion" \
   "SV84510A.86A.0013.P08.0303171920"
VBoxManage setextradata "My VM" \
   "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSReleaseDate" \
   "03/17/2003"
VBoxManage setextradata "My VM" \
   "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSReleaseMajor" \
   [b]2?[/b]
VBoxManage setextradata "My VM" \
   "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSReleaseMinor" \
   [b]3?[/b]
VBoxManage setextradata "My VM" \
   "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSFirmwareMajor" \
   [b]2?[/b]
VBoxManage setextradata "My VM" \
 "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSFirmwareMinor" \
   [b]3?[/b]
VBoxManage setextradata "My VM" \
   "VBoxInternal/Devices/pcbios/0/Config/DmiSystemVendor" \
   "INTEL_"
VBoxManage setextradata "My VM" \
   "VBoxInternal/Devices/pcbios/0/Config/DmiSystemProduct" \
   "D845PESV"
VBoxManage setextradata "My VM" \
   "VBoxInternal/Devices/pcbios/0/Config/DmiSystemVersion" \
   "[b]<What do I put here?>[/b]"
VBoxManage setextradata "My VM" \
   "VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial" \
   "[b]<What do I put here?>[/b]"
VBoxManage setextradata "My VM" \
   "VBoxInternal/Devices/pcbios/0/Config/DmiSystemUuid" \
   "<numbers/letters provided by dmidecode -t1>"
VBoxManage setextradata "My VM" \
   "VBoxInternal/Devices/pcbios/0/Config/DmiSystemFamily" \
   "X86-based PC"
Thanks for any help you can offer.

Posted: 14. Sep 2008, 13:41
by vkov_tinsky
gecko3940 wrote:I've had to use sudo prefix because I can't access Windows volume while using Ubuntu as a normal user
Do sudo chmod 666 /dev/sda beforehand so you have enough permissions to access the whole disk as a normal user, but this is not advisable (i.e. stick to -relative and just give access to /dev/sda1, see below)
gecko3940 wrote:[...] which gives me a GRUB: Error 17 message when I boot Vbox [...]
That must be because grub is trying to read menu.lst etc from another partition, but you're only allowing access to partition 1. Probabily the easiest thing to do is to use the the mbr parameter when you do createrawvmdk. To create the an mbr file you can use the mbr package in Ubuntu: mbr-install -f mbr.dat
gecko3940 wrote:Do I need the second hardware profile?
Yes, otherwise Windows will reinstate agp and intelppm drivers etc. when you boot natively each time (if I'm not mistaken). Once you've created the 2nd profile, boot it natively first and uninstall (without another reboot) video adapter and sound card (and others specific to your hardware, e.g. mouse/keyboard, but only if they still don't work, see below) via Device Manager (only!). After shutdown boot this profile in the VM.
gecko3940 wrote:[...] but there is no keyboard or mouse function so I can't go any further
Did you wait long enough? When I first booted XP natively which I had installed using VBox it took Windows a while (~30s) before it had loaded the drivers. (Granted this is the other way round but it might still apply.) If you've got some fancy media keyboard and mouse you might have to remove the drivers first in the 2nd hardware profile as I suggested above.

I've never tried to use the Dmi bios fields so that's for someone else to answer. But surely you'll know whether they're correct after you've booted if it doesn't ask you to activate again?

Regards,
VT

PS: If you ever decide to re-install Windows (and still plan to run it in a VM also) it might be easier to do it the other way round due to drivers, i.e. along the lines of this.

Posted: 14. Sep 2008, 19:57
by TerryE
Welcome to our forum gecko. It is worth having a look the Forum Posting Guide for help in framing Qs, etc., though your post rate 4/5 stars (You lose one for not using BBcodes to make it readable, so I've done that for you.). So just a few more comments in following VT's.
  • Always use the -partitions form. It is just too dangerous opening the full disk to the VM. You can trash your system this way.
  • When you use this switch the vmdk masks out the partitions that you don't access to so that writes are ignored and reads return zero content. This means that you can't trash them.
  • You vmdk has its own private MBR which by default is cloned from the MBR of the underlying disk -- unless you specify as VT says a non-default (std XP) MBR. Because this is private, you can tweak this as you need. You need a standard XP MBR and set your Windows system partition active. Then the bootstrap will load the NT kernel, HAL etc from your XP paritition.
  • As VT says you can set this partition to world:RW but I don't like this approach. It is a bit dangerous. I created a service account terrydisk which is a clone of my terry account and also has terry as its home group, and did a addgroup terrydisk disk to give it direct access to the disks. I then chmod g=u my .VirtualBox hierarchy to give it group:rw access, (and my ISOs, VDIs and Machines directories which I keep on LVM partitions, but that's a different story). Now terrydisk can access my VBox files and the disk. Lastly, I have aliases to use these; for example the vbraw is (I have moded sudoers to give me NOPASSWD)

    Code: Select all

    alias vbraw='sudo -u terrydisk XAUTHORITY=/home/terry/.Xauthority VBOX_USER_HOME=/home/terry/.VirtualBox VirtuaBox'
    This way I just type vbraw if I want to run VBox with access to a raw partition, and only I use this terrydisk account for raw disk access like this.
  • As VB says, using two profiles is pretty essential. You can either do it the way the VB say or create the second one (say VBoxVM) then boot into this and go into the H/W Device manage and "disable in this profile" all the devices which relate to your bare metal. Then shut it down. This will increase the chances of it coming up in VBox.
  • To be honest I am still fighting this DMI issue myself. I've got it so that the MSINFO32 from Bare Metal and VBox are pretty much identical apart from the RAM size. The number of CPUs is different of course. One bizarre thing that I have yet to figure out is that the CPU speed is coming up as 14.75GHz instead of the correct 2.5 GHz !! I've set up the DMI but this is still triggering reactivation.

    I don't bother to reactivate because I keep my C partition small (my D&S are on D:) and I have imaged it using nftsclone so I just restore it pre-activation. You don't want to go re-activating because there is a limit after which MS disable automatic reactivation. If I don't crack this soon, I'll just create an immutable copy of the C partition and use that for my experiments until I do sort this.
Sorry, that I don't have all the answers. To be honest, I suspect that most people who dual boot use an activation-disabled copy of Windows.