16

VirtualBox устанавливает 0 для серийного номера BIOS каждого экземпляра виртуальной машины. Кажется, возможно изменить некоторые настройки BIOS, но я не видел ничего, что напрямую ссылается на серийный номер.

Кто-нибудь может предложить способ сделать это?

5 ответов5

19

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"

Примечание. Если ваша виртуальная машина настроена на использование прошивки EFI, вам необходимо заменить pcbios на efi в ключах.

8

Не из каких-либо внешних настроек. Но вы можете из кода, а затем построить его самостоятельно:

Исходный файл: DevPcBios.cpp
Строка: 1014 READCFGSTR("DmiSystemSerial", pszDmiSystemSerial, "0");

Измените "0" на любое значение, которое вам нужно.


РЕДАКТИРОВАТЬ: Вы, очевидно, можете использовать VBoxManage setextradata. Я использовал его в прошлом для других типов конфигураций (не связанных с BIOS) и не тестировал этот конкретный параметр. Попробуй:

VBoxManage setextradata *YourVMName* VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial "*yourserial*"

В противном случае ... вернуться к редактированию и созданию исходного кода.

Удачи.

3

Если вы запустите эту команду и получите сообщение об ошибке, на которое ссылается Роджер, вам нужно отменить команду, выполнив команду без последнего параметра (VALUE).

Это удаляет запись, вызвавшую ошибку.

Если вы не уверены, какой была последняя нарушающая команда, откройте файл ~~~ .vbox (XML) в корне папки VirtualMachines конкретной виртуальной машины и просмотрите раздел EXTRADATA.

Выполнение вызова vboxmanage из командной строки - лучший способ их изменить. Редактирование XML-файла не занимает 100% времени.

2

Принятый ответ не обновил серийный номер для меня правильно; вместо этого я выполнил эти шаги, чтобы успешно обновить серийный номер. Обратите внимание, что гостевая ОС была macOS, а хост - Windows.

ПРИМЕЧАНИЕ. Перед запуском этой команды необходимо закрыть виртуальный ящик, чтобы сохранить его.

  1. Откройте командную строку Windows от имени администратора
  2. cd "C:\Program Files\Oracle\VirtualBox\"
  3. VBoxManage.exe setextradata "VM NAME" "VBoxInternal/Devices/efi/0/Config/DmiSystemSerial" "SERIAL_HERE" см. Источник.*
    Не уверен, почему команда pcbios не работает, но efi работает.

ПОЛЕЗНЫЕ ССЫЛКИ

  • Если у вас возникли проблемы с поиском действующего серийного номера, следуйте инструкциям здесь.
  • Если вы не уверены, какое у вас имя vm, запустите VBoxManage.exe list vms .
1

Попробуйте использовать серийный номер, который содержит 20-байтовую шестнадцатеричную строку:

VBoxManage setextradata "VM name" "VBoxInternal/Devices/ahci/0/Config/Port0/SerialNumber" "serial"

(Ссылка)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .