Come posso modificare il numero seriale del BIOS in VirtualBox?


17

VirtualBox imposta il numero seriale del BIOS di ogni istanza di VM su 0. Sembra che sia possibile modificare alcune impostazioni del BIOS, ma non ho visto nulla che faccia riferimento direttamente al numero seriale.

Qualcuno può suggerire un modo per farlo?


1
Qualche motivo particolare che vuoi fare?
Jared Harley,

1
Sì. Ho uno strumento software di inventario per PC che utilizza il numero seriale del BIOS per identificare in modo univoco i computer. Funziona bene per l'hardware fisico e per le macchine virtuali di altri fornitori, ma non sa come gestire più macchine virtuali VirtualBox.
Roger,

modificato la mia risposta per riflettere l'errore che hai riscontrato.
Un nano,

Hai qualche notizia al riguardo, Roger? Mi piacerebbe sapere come è venuto fuori.
Un nano,

Non ho mai deciso come farlo. Ho ricevuto alcune risposte sui forum di VirtualBox, ma non ho trovato nulla che funzionasse. Se mi imbatto nella risposta, sarò sicuro di aggiungere un aggiornamento qui.
Roger,

Risposte:


22

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

Ha davvero una risposta dettagliata per questo.

È possibile impostare il numero di serie del BIOS in questo modo:

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

L'errore che stavi riscontrando è causato dal fatto che il seriale non è impostato come valore di stringa, se hai un numero puro dovresti anteporre in questo string:modo:

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

Nota: nel caso in cui la VM sia configurata per l'utilizzo del firmware EFI, è necessario sostituire pcbios con efi nelle chiavi.


3
Si noti che queste istruzioni sono per sistemi che utilizzano BIOS . Se il tuo sistema utilizza EFI , controllato da "Impostazioni -> Sistema -> Scheda madre -> Abilita EFI", devi sostituire "pcbios" con "efi" nei comandi precedenti.
ntc2,

8

Non da alcuna impostazione esterna. Ma puoi dal codice e poi costruirlo tu stesso:

File di origine: DevPcBios.cpp
Riga: 1014READCFGSTR("DmiSystemSerial", pszDmiSystemSerial, "0");

Cambia "0" in qualunque valore tu abbia bisogno.


EDIT: apparentemente puoi usare VBoxManage setextradata . L'ho usato in passato per altri tipi di configurazioni (non relative al BIOS) e non ho testato questa particolare impostazione. Provaci:

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

Altrimenti ... ripristina l'editing e l'editing del codice sorgente.

Buona fortuna.


1
Hmm. Grazie - così vicino, ma non ancora. Ho provato questo: "c: \ Programmi \ Sun \ VirtualBox \ VBoxManage.exe" setextradata "Demo Server" VBoxInternal / Devices / pcbios / 0 / Config / DmiSerial "123" Sembrava funzionare, ma quando ho lanciato la VM I è stato visualizzato questo messaggio di errore: Impossibile avviare il server dimostrativo della macchina virtuale. Configurazione non valida per il dispositivo pcbios dispositivo (VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES). Errore sconosciuto nella creazione della macchina virtuale (VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES). L'eliminazione e la ricostruzione della definizione della macchina lo hanno riparato, quindi nessun danno fatto. Penso che tu sia davvero vicino - altri suggerimenti?
Roger,

hmm ... hai fatto una copia / incolla testuale del tuo comando nella casella dei commenti? Perché non c'è un distacco tra / Config e / DmiSerial. Indipendentemente da ciò, esplorerò ulteriormente. Immagino che dovrò installare VirtualBox. Finora si basava solo sui miei appunti :)
A Dwarf,

Bah! Questa mia testa. Pubblico la riga di codice pertinente e quindi non la controllo nemmeno con le mie note molto più vecchie. Non è / DmiSerial. È stato rinominato qualche volta tra la versione 1.5 e ora. Ora è / DmiSystemSerial
A Dwarf

Grazie, A Dwarf, per tutto il tuo aiuto. Ho provato a sostituire DmiSerial con DmiSystemSerial, ripetere la riga di comando (senza lo spazio, che era un errore di battitura) e ho ottenuto lo stesso errore.
Roger,

Per quanto ne so, può solo significare che questo non è ancora completamente implementato e non puoi farlo in questo modo. A questo punto temo di smettere di essere utile. Dovresti andare ai forum di VirtualBox e provare da lì. Sono persone eccellenti e otterrai una risposta più informata. Mi piacerebbe comunque sapere il risultato finale, se tu fossi così gentile e pubblicare una risposta alla tua domanda quando ciò accade. Ti auguro il meglio.
Un nano,

3

Se si esegue quel comando e si ottiene l'errore a cui fa riferimento Roger, è necessario eseguire il backout del comando eseguendo il comando senza l'ultimo parametro (VALUE).

Ciò rimuove la voce che causa l'errore.

Se non si è sicuri di quale sia stato l'ultimo comando offensivo, aprire il file ~~~ .vbox (XML) nella radice della cartella VirtualMachines della VM specifica ed esaminare la sezione EXTRADATA.

L'esecuzione della chiamata della riga di comando su vboxmanage è il modo migliore per modificarli. La modifica del file xml non si attacca al 100% delle volte.


2

La risposta accettata non ha aggiornato il numero seriale correttamente per me; invece, ho seguito questi passaggi per aggiornare con successo il numero seriale. Nota che il SO guest era macOS e l'host era windows.

NOTA: è necessario chiudere virtualbox prima di eseguire questo comando per salvarlo.

  1. Apri il prompt dei comandi di Windows come amministratore
  2. cd "C:\Program Files\Oracle\VirtualBox\"
  3. VBoxManage.exe setextradata "VM NAME" "VBoxInternal/Devices/efi/0/Config/DmiSystemSerial" "SERIAL_HERE" vedi sorgente . *
    Non so perché il comando pcbios non ha funzionato ma efi ha funzionato.

COLLEGAMENTI UTILI

  • Se hai problemi a trovare un seriale valido, segui le istruzioni qui .
  • Se non sei sicuro di come viene eseguito il tuo nome VM VBoxManage.exe list vms.

1
Se hai bisogno di "efi" e di una risposta accettata usando "pcbios", questo è probabilmente perché stai usando (U) EFI e quella persona stava usando il BIOS tradizionale. Se si utilizza EFI o BIOS è determinato dalla casella di controllo "Impostazioni -> Sistema -> Scheda madre -> Abilita EFI" in VirtualBox.
ntc2,

Ah ha senso! Grazie @ ntc2
josh7weaver,

1

Prova a utilizzare un numero seriale che contiene una stringa esadecimale da 20 byte:

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

( Riferimento )

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.