VirtualBox 将每个 VM 实例的 BIOS 序列号设置为 0。似乎可以更改某些 BIOS 设置,但我还没有看到直接引用序列号的任何内容。
有人可以建议一种方法来做到这一点吗?
答案1
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 固件,则需要在密钥中将 pcbios 替换为 efi。
答案2
不是通过任何外部设置。但你可以从代码中自己构建它:
源文件: DevPcBios.cpp
线:1014READCFGSTR("DmiSystemSerial", pszDmiSystemSerial, "0");
将“0”更改为您需要的任何值。
编辑:你显然可以使用VBoxManage 设置额外数据。我过去曾将其用于其他类型的配置(与 bios 无关),并且没有测试此特定设置。试一试:
VBoxManage setextradata *YourVMName* VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial "*yourserial*"
否则...恢复到源代码编辑和构建。
祝你好运。
答案3
如果您运行该命令并收到 Roger 引用的错误,则需要通过运行不带最后一个参数(VALUE)的命令来撤消该命令。
这将删除导致错误的条目。
如果您不确定最后一个有问题的命令是什么,请打开特定虚拟机的 VirtualMachines 文件夹根目录中的 ~~~.vbox(XML)文件并查看 EXTRADATA 部分。
运行命令行调用 vboxmanage 是修改这些内容的最佳方法。编辑 xml 文件并非 100% 有效。
答案4
尝试使用包含 20 字节十六进制字符串的序列号:
VBoxManage setextradata "VM name" "VBoxInternal/Devices/ahci/0/Config/Port0/SerialNumber" "serial"
(参考)