Q: Win10Pro VM Guest install / "Bios" Activation key?

fortechitsolutions

Well-Known Member
Jun 4, 2008
384
35
48
Hi, a 'fun' question I wonder if anyone has experience with.

I'm setting up a small 'lenovo mid-level workstation' as a small on-prem server for a client. They need 2 x small VMs, one will be a linux ClearOS "NAS Fileserver" and the second will be Win10Pro for running Sage Simply Accounting. Whee. (lovely app, ha ha ha).

The Lenovo workstation I'm planning to use is a tower / i7 CPU / support for 32gb ram easily / decent solid system. With an add-in LSI Raid card it makes a decent little server (Pair of SSD drives for proxmox, and probably a pair of SATA drives for a 'bulk backup data mirror storage disk volume'). The system hardware -- comes out of box with a Win10Pro license bundled, which is 'burned into the bios' of the hardware / motherboard.

I am curious if anyone knows, is there any way I can make use of this Bios-embedded license key for my windows VM Guest install on proxmox? Or is that more or less impossible, because we're using a virtualized bios for Proxmox KVM Win10 guest, and no way to harvest/pass through this "Windows license key" from the underlying hardware. ie, just plan on spending the extra $200 or whatever for a vanilla Win10pro license key for install purpose for the VM... ?


Thanks,

Tim
 

LnxBil

Famous Member
Feb 21, 2015
5,484
614
133
Germany
I am curious if anyone knows, is there any way I can make use of this Bios-embedded license key for my windows VM Guest install on proxmox? Or is that more or less impossible, because we're using a virtualized bios for Proxmox KVM Win10 guest, and no way to harvest/pass through this "Windows license key" from the underlying hardware. ie, just plan on spending the extra $200 or whatever for a vanilla Win10pro license key for install purpose for the VM... ?

Technically yes, legally hmmm maybe, but most of the time no.

What you're looking for is the SLIC table inside of your BIOS, where the Windows key is stored. This SLIC table can be passed through to your VM and your Windows will recognise this. The process of getting this to work is cumbersome and takes a lot of time.

Best is to buy another license and just go with it. Unfortunately, this may also not be legally okay, but please contact your MS sales representative. Licensing issues has been discussed here:

https://forum.proxmox.com/threads/windows-10-licensing.47028/
 

fortechitsolutions

Well-Known Member
Jun 4, 2008
384
35
48
Thanks for the reply. If you can point me to any hints on how to do the SLIC Table pass through from physical to virtual, that would be great. I am slightly confused how such a process can be time intensive (a few config stanzas for pass through in the KVM VM Config file most likely? But maybe there is more song and dance?)

Strictly speaking I am not going to fret about win10 license 'validity' to the degree beyond this. (ie, a Win10 instance running on the hardware with which the license was sold) - Strictly speaking I am not sure Microsoft officially condone Win10 as a VM Guest OS (unless possibly you have lots of extra Enterprise / Software Assurance licenses involved - see thread link below) so attempting to stay on the good side of MS License restrictions with 100% strict adherence in such a scenario is - generally a lost cause. Or at least it feels this way to me.

(I did find a thread on this topic, at https://community.spiceworks.com/ho...ws-10-with-virtualization-technologies-how-to and the level of complexity involved makes me just shake my head. )

(This kind of 'license hell' is part of why I love Linux stack environments / with open source license products. You don't end up spending a lot of time and effort going to agonizing trouble trying to determine what is suitable / and then attempting to adhere to extreme license complications).

Anyhoo. Many thanks for the reply; and if you could point me in correct direction WRT the SLIC Table Pass Through, that would be great.


Tim
 

fortechitsolutions

Well-Known Member
Jun 4, 2008
384
35
48
Footnote, with your keywords and a bit of google digging, I located this thread,

https://lists.gnu.org/archive/html/qemu-devel/2011-03/msg03080.html

and I think I start to see why this is an exercise in "not quite futility, but only for the enthusiast'

ie, much simpler to just purchase a Win10Pro COA which can be typed in. Or make sure you purchase a machine which has such a COA affixed on the chassis. Ironically I know that "Win10Pro for recertified PC" hardware tends to be sold with such a physical sticker affixed, ie, simple and easy way to be sure I have a key available that works with no drama.

Lots of fun!
 
Last edited:

LnxBil

Famous Member
Feb 21, 2015
5,484
614
133
Germany
We used this:

Code:
$ cat /sys/firmware/acpi/tables/SLIC > slic_table
$ dmidecode | grep -A8 'System Information'

and put it in the vm.conf

Code:
args: -acpitable file=/path/to/slic_table
smbios1: uuid=<UUID>,manufacturer=<manufacturer>,product=<prodcut>,serial=<serial>
 

fortechitsolutions

Well-Known Member
Jun 4, 2008
384
35
48
Thanks very much for this info. That looks pretty straight forward to try. If I end up getting this machine / doing this setup for the client (project is not a 'go' yet) - I will followup on this thread to confirm how this worked. Worst case I will just buy a suitable Win10Pro license after the fact.

Thanks,
Tim
 
  • Like
Reactions: AlexLup

fortechitsolutions

Well-Known Member
Jun 4, 2008
384
35
48
Footnote on this thread, in case of any interest. I just was setting up another box today, and managed to get this working for the first time.
Process was slightly different than in the thread above, but general process is the same.

Precise steps used, which were a success:

setup the VM in proxmox
don't boot it yet
in root SSH session on proxmox, harvest the required info. This meant, more or less,

Code:
Get Info needed PART ONE:

root@proxmox:/data/images/100# dmidecode | grep -A8 'System Information'
System Information
        Manufacturer: LENOVO
        Product Name: 11DA001UUS
        Version: ThinkCentre M70t
        Serial Number: AB0EGVXE
        UUID: 1ab23c4f-8842-11eb-b3a5-c45526114300
        Wake-up Type: Power Switch
        SKU Number: LENOVO_MT_11DA_BU_Think_FM_ThinkCentre M70t
        Family: ThinkCentre M70t
       
        (NOTE VALUES ABOVE ARE SLIGHTLY TWEAKED FOR -privacy-)
root@proxmox:/data/images/100#


GET INFO NEEDED PART TWO:

THIS IS WHAT IT LOOKS LIKE IF YOU JUST CAT THE THING:
root@proxmox:/data/images/100# cat /sys/firmware/acpi/tables/MSDM
MSDMU▒LENOVOTC-M2T ABCD NHJ7Y-ABCD4-A2B4C-ABCD4-AB3CProot@proxmox:/data/images/100#

NOTE IN ABOVE I HAVE CHANGED ALPHA LETTERS TO HIDE MY ACTUAL VALUE. JUST TO ILLUSTRATE
THE STRING YOU EXPECT TO SEE HERE.

THEN HARVEST THE INFO INTO A FILE YOU WILL NEED TO REFER TO IN YOUR VM CONFIG:
root@proxmox:/data/images/100#
root@proxmox:/data/images/100# cat /sys/firmware/acpi/tables/MSDM > slic_table


FINALLY: WITH THIS ALL IN PLACE MANUALLY EDIT THE VM CONFIG FILE, APPROX THUS IS ENDGAME:

HINTS:

SLIC_TABLE FILE NOW EXIST:
root@proxmox:/data/images/100# ls -la /data/images/100/slic_table
-rw-r--r-- 1 root root 85 May 26 05:37 /data/images/100/slic_table

EDIT MY CONFIG FILE
root@proxmox:/data/images/100# vi /etc/pve/qemu-server/100.conf

GENERAL GOAL:

$ dmidecode | grep -A8 'System Information'

and put it in the vm.conf

Code:
args: -acpitable file=/path/to/slic_table
smbios1: uuid=<UUID>,manufacturer=<manufacturer>,product=<prodcut>,serial=<serial>


CONTENT THERE FOR REF HINT:
root@proxmox:/data/images/100# cat /etc/pve/qemu-server/100.conf

agent: 1
args: -acpitable file=/data/images/100/slic_table
boot: order=virtio0
cores: 12
ide2: data:iso/virtio-win-0.1.190.iso,media=cdrom,size=489986K
machine: pc-i440fx-5.2
memory: 6144
name: win10
net0: virtio=B2:B4:97:EE:B7:46,bridge=vmbr0,firewall=1
numa: 0
ostype: win10
scsihw: virtio-scsi-pci
smbios1: uuid=1ab23c4f-8842-11eb-b3a5-c45526114300,manufacturer=LENOVO,product=11DA001UUS,serial=AB0EGVXE
sockets: 1
virtio0: data:100/vm-100-disk-0.qcow2,size=500G
vmgenid: f5ce9f25-8ae1-443c-9652-4c2beccbecbc




root@proxmox:/data/images/100#

Once I did all this.

Boot the VM from my vanilla Win10 ISO. As I might have hoped, it did NOT ask me what flavour of win10 I was trying to install (Home, Pro, etc) during install process - ie - first hint that the new config was doing what I wanted, ie, it already knew what license was available so did not ask.

after install windows, get network connected / installed VirtIO drivers.

check status of windows 10 activation in settings - bingo - it shows a happy "windows is activated with digital license" message as per norm

so no intervention was required to get it to self-activate, it 'just worked'. so yay for things that work.

I will leave it to the philosophers or others who have more time than me, to debate if this is legit use of license for win10.
arguably last time I looked, it is hard to get a straight answer from MS on licensing, other than generally if you ask, they tell you that whatever you want is not valid and you must pay them more, to do what you want. For example running win10 as a VM Guest. On a non HyperV physical virtualizing host. Or goodness knows. So. I shall just wave my hands and say, this is purely for educational and testing use only, your mile may vary, this may work horribly for you, etc etc etc.

at very least I can find this info in future if I go looking for it again.


Tim
 
Last edited:
  • Like
Reactions: DarkM and 36grad

36grad

New Member
May 31, 2021
2
1
1
39
@tim, thank you, your instructions worked perfectly, and it was definitely less effort than buying a new license at eBay :cool:
 

fortechitsolutions

Well-Known Member
Jun 4, 2008
384
35
48
Great news .. glad to hear the instructions work for someone else! :) thanks for confirming.

I also agree - it had bugged me (nothing serious, just 'annoyance') that I had trouble getting this working in the past :) So definitely cool :)

Tim
 

36grad

New Member
May 31, 2021
2
1
1
39
After re-installing Windows a few more times yesterday I can report that it seems to be sufficient to add the args for the slic-table - at least when using OVMF (UEFI). It could be that it is needed for SeaBIOS but my understanding of proxmox is yet limited.
On my HP Pavilion machine, Windows 10 installs without asking for a Key.
 
  • Like
Reactions: DarkM

DarkM

New Member
Oct 13, 2021
1
0
1
29
Footnote on this thread, in case of any interest. I just was setting up another box today, and managed to get this working for the first time.
Process was slightly different than in the thread above, but general process is the same.

Precise steps used, which were a success:

setup the VM in proxmox
don't boot it yet
in root SSH session on proxmox, harvest the required info. This meant, more or less,

Code:
Get Info needed PART ONE:

root@proxmox:/data/images/100# dmidecode | grep -A8 'System Information'
System Information
        Manufacturer: LENOVO
        Product Name: 11DA001UUS
        Version: ThinkCentre M70t
        Serial Number: AB0EGVXE
        UUID: 1ab23c4f-8842-11eb-b3a5-c45526114300
        Wake-up Type: Power Switch
        SKU Number: LENOVO_MT_11DA_BU_Think_FM_ThinkCentre M70t
        Family: ThinkCentre M70t
      
        (NOTE VALUES ABOVE ARE SLIGHTLY TWEAKED FOR -privacy-)
root@proxmox:/data/images/100#


GET INFO NEEDED PART TWO:

THIS IS WHAT IT LOOKS LIKE IF YOU JUST CAT THE THING:
root@proxmox:/data/images/100# cat /sys/firmware/acpi/tables/MSDM
MSDMU▒LENOVOTC-M2T ABCD NHJ7Y-ABCD4-A2B4C-ABCD4-AB3CProot@proxmox:/data/images/100#

NOTE IN ABOVE I HAVE CHANGED ALPHA LETTERS TO HIDE MY ACTUAL VALUE. JUST TO ILLUSTRATE
THE STRING YOU EXPECT TO SEE HERE.

THEN HARVEST THE INFO INTO A FILE YOU WILL NEED TO REFER TO IN YOUR VM CONFIG:
root@proxmox:/data/images/100#
root@proxmox:/data/images/100# cat /sys/firmware/acpi/tables/MSDM > slic_table


FINALLY: WITH THIS ALL IN PLACE MANUALLY EDIT THE VM CONFIG FILE, APPROX THUS IS ENDGAME:

HINTS:

SLIC_TABLE FILE NOW EXIST:
root@proxmox:/data/images/100# ls -la /data/images/100/slic_table
-rw-r--r-- 1 root root 85 May 26 05:37 /data/images/100/slic_table

EDIT MY CONFIG FILE
root@proxmox:/data/images/100# vi /etc/pve/qemu-server/100.conf

GENERAL GOAL:

$ dmidecode | grep -A8 'System Information'

and put it in the vm.conf

Code:
args: -acpitable file=/path/to/slic_table
smbios1: uuid=<UUID>,manufacturer=<manufacturer>,product=<prodcut>,serial=<serial>


CONTENT THERE FOR REF HINT:
root@proxmox:/data/images/100# cat /etc/pve/qemu-server/100.conf

agent: 1
args: -acpitable file=/data/images/100/slic_table
boot: order=virtio0
cores: 12
ide2: data:iso/virtio-win-0.1.190.iso,media=cdrom,size=489986K
machine: pc-i440fx-5.2
memory: 6144
name: win10
net0: virtio=B2:B4:97:EE:B7:46,bridge=vmbr0,firewall=1
numa: 0
ostype: win10
scsihw: virtio-scsi-pci
smbios1: uuid=1ab23c4f-8842-11eb-b3a5-c45526114300,manufacturer=LENOVO,product=11DA001UUS,serial=AB0EGVXE
sockets: 1
virtio0: data:100/vm-100-disk-0.qcow2,size=500G
vmgenid: f5ce9f25-8ae1-443c-9652-4c2beccbecbc




root@proxmox:/data/images/100#

Once I did all this.

Boot the VM from my vanilla Win10 ISO. As I might have hoped, it did NOT ask me what flavour of win10 I was trying to install (Home, Pro, etc) during install process - ie - first hint that the new config was doing what I wanted, ie, it already knew what license was available so did not ask.

after install windows, get network connected / installed VirtIO drivers.

check status of windows 10 activation in settings - bingo - it shows a happy "windows is activated with digital license" message as per norm

so no intervention was required to get it to self-activate, it 'just worked'. so yay for things that work.

I will leave it to the philosophers or others who have more time than me, to debate if this is legit use of license for win10.
arguably last time I looked, it is hard to get a straight answer from MS on licensing, other than generally if you ask, they tell you that whatever you want is not valid and you must pay them more, to do what you want. For example running win10 as a VM Guest. On a non HyperV physical virtualizing host. Or goodness knows. So. I shall just wave my hands and say, this is purely for educational and testing use only, your mile may vary, this may work horribly for you, etc etc etc.

at very least I can find this info in future if I go looking for it again.


Tim
Thanks Tim. Worked for me. Here is what i did using your reference. another point of view with same results for those looking.

1-get host system info. on proxmox PVE Shell run:

dmidecode | grep -A8 'System Information'

output:
System Information
Manufacturer: LENOVO
Product Name: 11DA001UUS
Version: ThinkCentre M70t
Serial Number: AB0EGVXE
UUID: 1ab23c4f-8842-11eb-b3a5-c45526114300
Wake-up Type: Power Switch
SKU Number: LENOVO_MT_11DA_BU_Think_FM_ThinkCentre M70t
Family: ThinkCentre M70t

2- create slic_table cat file:
Note: I used SLIC instead of MSDM. Should work either way I think.

cat /sys/firmware/acpi/tables/SLIC > /YOUR-PATH-TO-SAVE-FILE/slic_table

slic_table file should now be at:
/YOUR-PATH-TO-FILE/slic_table

3- edit VM (XXX.CONF) file
nano /etc/pve/qemu-server/<XXX>.conf

add the following to the ACTIVE configuration and edit PATH-TO-FILE & FILL smbios1 with info from step 1.

args: -acpitable file=/PATH-TO-FILE/slic_table
smbios1: uuid=<UUID>,manufacturer=<manufacturer>,product=<prodcut>,serial=<serial>

SAVE FILE
RESTART VM.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get your own in 60 seconds.

Buy now!