VirtualBox将每个VM实例的BIOS序列号设置为0。似乎可以更改某些BIOS设置,但是我没有看到任何直接引用该序列号的东西。
有人可以建议一种方法吗?
VirtualBox将每个VM实例的BIOS序列号设置为0。似乎可以更改某些BIOS设置,但是我没有看到任何直接引用该序列号的东西。
有人可以建议一种方法吗?
Answers:
http://www.virtualbox.org/manual/ch09.html#changedmi
对此确实有详细的答案。
您可以通过以下操作设置BIOS序列号:
VBoxManage setextradata "VM name"
"VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial" "System Serial"
您收到的错误是由于未将序列号设置为字符串值引起的,如果您使用的是纯数字,则应在其前面加上string:
如下代码:
VBoxManage setextradata "VM name"
"VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial" "string:1234"
注意:如果您的VM配置为使用EFI固件,则需要在密钥中用efi替换pcbios。
并非来自任何外部设置。但是您可以从代码中自己构建:
源文件: DevPcBios.cpp
行: 1014READCFGSTR("DmiSystemSerial", pszDmiSystemSerial, "0");
将“ 0”更改为所需的任何值。
编辑:您显然可以使用VBoxManage setextradata。过去,我曾将它用于其他类型的配置(与BIOS无关),并且未测试此特定设置。搏一搏:
VBoxManage setextradata *YourVMName* VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial "*yourserial*"
否则...恢复为源代码编辑和构建。
祝你好运。
接受的答案没有为我正确更新序列号;相反,我按照以下步骤成功更新了序列号。请注意,来宾操作系统为macOS,主机为Windows。
注意:您必须在运行此命令之前关闭virtualbox才能保存它。
cd "C:\Program Files\Oracle\VirtualBox\"
VBoxManage.exe setextradata "VM NAME" "VBoxInternal/Devices/efi/0/Config/DmiSystemSerial" "SERIAL_HERE"
请参阅源代码。* 有用的网址
VBoxManage.exe list vms
。尝试使用包含20字节十六进制字符串的序列号:
VBoxManage setextradata "VM name" "VBoxInternal/Devices/ahci/0/Config/Port0/SerialNumber" "serial"
(参考)