Como posso alterar o número de série do BIOS no VirtualBox?


17

VirtualBox define o número de série do BIOS de cada instância de VM para 0. Parece ser possível alterar algumas configurações do BIOS, mas eu não vi nada que referencia diretamente o número de série.

Alguém pode sugerir uma maneira de fazer isso?


1
Alguma razão particular que você quer fazer isso?
— Jared Harley

1
Sim. Eu tenho uma ferramenta de software de inventário de PC que usa o número de série do BIOS para identificar exclusivamente computadores. Ele funciona bem para hardware físico e para VMs de outros fornecedores, mas não sabe como lidar com várias VMs do VirtualBox.
— 47017 Roger

editei minha resposta para refletir o erro que você pegou.
— 4171

Você tem alguma novidade sobre isso, Roger? Adoraria saber como aconteceu.
— 319 Um anão

Eu nunca determinei como fazer isso. Eu recebi algumas respostas nos fóruns do VirtualBox, mas não encontrei nada que funcionasse. Se eu encontrar a resposta, adicionarei uma atualização aqui.
— 460 Roger Roger

Respostas:


21

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

Realmente tem resposta detalhada para isso.

Você pode definir o número de série da bios fazendo o seguinte:

VBoxManage setextradata "VM name" 
"VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial" "System Serial"

O erro que você está recebendo é causado pela serial não sendo definida como um valor de string, se você tem um número puro, você deve prefixar com ele da seguinte string:forma:

VBoxManage setextradata "VM name" 
"VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial" "string:1234"

Nota: Caso sua VM esteja configurada para usar o firmware EFI, você precisa substituir o pcbios por efi nas chaves.


3
Observe que essas instruções são para sistemas que usam o BIOS . Se o seu sistema usa EFI - controlado por "Configurações -> Sistema -> Placa Mãe -> Ativar EFI" - então você precisa substituir "pcbios" por "efi" nos comandos acima.
— ntc2

8

Não de qualquer configuração externa. Mas você pode a partir do código e depois construir você mesmo:

Arquivo de origem: DevPcBios.cpp
Linha: 1014READCFGSTR("DmiSystemSerial", pszDmiSystemSerial, "0");

Mude "0" para qualquer valor que você precise.


EDIT: aparentemente, você pode usar VBoxManage setextradata . Eu usei isso no passado para outro tipo de configurações (não relacionadas a bios) e não testei essa configuração específica. Dê uma chance:

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

Caso contrário ... reverta para edição e construção do código-fonte.

Boa sorte.


1
Hmm. Obrigado - tão perto, mas ainda não chegou. Eu tentei isso: "c: \ Arquivos de programas \ Sun \ VirtualBox \ VBoxManage.exe" setextradata "Servidor Demo" VBoxInternal / Dispositivos / pcbios / 0 / Config / DmiSerial "123" Parecia funcionar, mas quando lancei a VM I Recebi esta mensagem de erro: Falha ao iniciar o servidor de demonstração da máquina virtual. Configuração inválida para dispositivo de dispositivo pcbios (VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES). Erro desconhecido ao criar a VM (VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES). A exclusão e recriação da definição da máquina corrigiu-a, portanto, nenhum dano foi causado. Eu acho que você está realmente perto - alguma outra sugestão?
— 47067 Roger Roger

hmm ... você fez uma cópia / colagem textual do seu comando para a caixa de comentários? Porque não há spave entre / Config e / DmiSerial. Independentemente disso, vou explorar isso mais. Acho que vou ter que instalar o VirtualBox. Até agora estava confiando apenas em minhas anotações :)
— um anão

Bah! Esta minha cabeça. Eu posto a linha de código relevante e nem mesmo checo minhas anotações muito antigas. Não é / DmiSerial. Foi renomeado em algum momento entre a versão 1.5 e agora. É agora / DmiSystemSerial
— um anão

Obrigado, um anão, por toda sua ajuda. Eu tentei substituir DmiSerial com DmiSystemSerial, reran a linha de comando (sem o espaço, que era um erro de digitação) e recebi o mesmo erro.
— 4606 Roger Roger

Até onde sei, isso só pode significar que isso ainda não está totalmente implementado e você não pode fazer isso dessa maneira. Neste ponto, tenho medo de deixar de ser útil. Você deve ir para os fóruns do VirtualBox e tentar de lá. Eles são excelentes pessoas e você terá uma resposta mais informada. No entanto, gostaria de saber o resultado final, se você fosse gentil e postar uma resposta à sua própria pergunta, quando isso acontecer. Muito bem sucedida.
— Um anão

3

Se você executar esse comando e obter o erro referenciado por Roger, será necessário fazer o backup do comando executando o comando sem o último parâmetro (VALUE).

Isso remove a entrada causando o erro.

Se você não tiver certeza de qual foi o último comando incorreto, abra o arquivo ~~~ .vbox (XML) na raiz da pasta VirtualMachines da VM específica e revise a seção EXTRADATA.

Executar a chamada da linha de comandos para o vboxmanage é a melhor maneira de modificá-los. Editar o arquivo xml não fica 100% do tempo.


2

A resposta aceita não atualizou o número de série corretamente para mim; Em vez disso, segui estas etapas para atualizar com êxito o número de série. Observe que o sistema operacional convidado era macOS e o host era janelas.

NOTA: Você deve fechar o VirtualBox antes de executar este comando para que ele seja salvo.

  1. Abra o prompt de comando do Windows como administrador
  2. cd "C:\Program Files\Oracle\VirtualBox\"
  3. VBoxManage.exe setextradata "VM NAME" "VBoxInternal/Devices/efi/0/Config/DmiSystemSerial" "SERIAL_HERE" veja a fonte . *
    Não tenho certeza porque o comando pcbios não funcionou mas efi fez.

LINKS ÚTEIS

  • Se você tiver problemas para encontrar uma série válida, siga as instruções aqui .
  • Se você não tem certeza do nome do vm que está sendo executado VBoxManage.exe list vms.

1
Você está precisando de "efi" e aceitou responder usando "pcbios", isso é provavelmente porque você está usando (U) EFI e essa pessoa estava usando o BIOS tradicional. Se você está usando EFI ou BIOS é determinado pela caixa de seleção "Configurações -> Sistema -> Placa Mãe -> Ativar EFI" no VirtualBox.
— ntc2

Ah faz sentido! Obrigado @ ntc2
— josh7weaver

1

Tente usar um número de série que contenha uma cadeia hexadecimal de 20 bytes:

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

( Referência )

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.