Install Windows 10 from an unbooted OEM drive into Virtualbox?
Solution 1:
You can activate Windows 10 using the product key for your hardware which is embedded in the BIOS in an ACPI table called MSDM (Microsoft Data Management). You can get it like this (from Linux, of course!):
$ sudo tail -c +56 /sys/firmware/acpi/tables/MSDM
ABA2D-TEFJ4-D97PT-9B42Y-H3U5E
You can apply the OEM Windows license to a VirtualBox guest like this (from the Linux host - assuming VM is called win10
):
$ sudo cat /sys/firmware/acpi/tables/MSDM > ~/VirtualBox\ VMs/win10/msdm.bin
$ VBoxManage setextradata win10 \
"VBoxInternal/Devices/acpi/0/Config/CustomTable" \
~/VirtualBox\ VMs/win10/msdm.bin
With that in place, Windows will not ask for a product key during installation, it will activate automatically. If you want to verify that it does indeed use the correct key you can use a tool like ShowKeyPlus to check it. You can read about ShowKeyPlus on TenForums or download it here.
This method of activation works fine with the official download ISO that you can download for free from Microsoft. Because you can use your OEM license with a clean install, I wonder whether migrating is worth the bother.
The other way to do it which also works is to get the key as shown above and then type it in when Windows asks for it. I used this method with KVM/QEMU because I haven't (yet) worked out how to apply the MSDM table to it.
On the subject of licensing... The Windows OEM license (which, as I write, was last updated July 2017) suggests that it is allowed:
Applicability. This agreement applies to the Windows software that is preinstalled on your device...
and, in particular, section 2.d.iv:
Use in a virtualized environment. This license allows you to install only one instance of the software for use on one device, whether that device is physical or virtual. If you want to use the software on more than one virtual device, you must obtain a separate license for each instance.
So you can install one instance of the Windows software that is preinstalled on your device for use on one device, whether that device is physical or virtual .
Also see this Microsoft community question which explains how to activate.
I will update this answer with further information when I have any
PS. There is another similar question here on SuperUser, and another one over on ServerFault.
The product key in the example is not real!