如何在 VirtualBox 中更改 BIOS 序列号?

Rog*_*ger 17 bios virtualbox

VirtualBox 将每个 VM 实例的 BIOS 序列号设置为 0。似乎可以更改某些 BIOS 设置,但我还没有看到任何直接引用序列号的内容。

谁能建议一种方法来做到这一点?

Ale*_*x R 22

http://www.virtualbox.org/manual/ch09.html#changedmi

真的有详细的答案。

您可以通过执行以下操作来设置 bios 序列号:

VBoxManage setextradata "VM name" 
"VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial" "System Serial"
Run Code Online (Sandbox Code Playgroud)

你得到的错误是由于序列号没有被设置为字符串值引起的,如果你有一个纯数字,你应该string:像这样在它前面加上:

VBoxManage setextradata "VM name" 
"VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial" "string:1234"
Run Code Online (Sandbox Code Playgroud)

注意:如果您的 VM 配置为使用 EFI 固件,您需要在密钥中将 pcbios 替换为 efi。

  • 请注意,这些说明适用于使用 **BIOS** 的系统。如果您的系统使用 **EFI** -- 由“设置 -> 系统 -> 主板 -> 启用 EFI”控制 - 那么您需要将上述命令中的“pcbios”替换为“efi”。 (3认同)

A D*_*arf 8

不是来自任何外部设置。但是你可以从代码中,然后自己构建它:

源文件: DevPcBios.cpp
行: 1014READCFGSTR("DmiSystemSerial", pszDmiSystemSerial, "0");

将“0”更改为您需要的任何值。


编辑:您显然可以使用VBoxManage setextradata。我过去曾将它用于其他类型的配置(与 bios 无关)并且没有测试此特定设置。搏一搏:

VBoxManage setextradata *YourVMName* VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial "*yourserial*"
Run Code Online (Sandbox Code Playgroud)

否则......恢复到源代码编辑和构建。

祝你好运。