Wie kann ich die BIOS-Seriennummer in VirtualBox ändern?

17

VirtualBox setzt die BIOS-Seriennummer jeder VM-Instanz auf 0. Es scheint möglich zu sein, einige BIOS-Einstellungen zu ändern, aber ich habe nichts gesehen, das direkt auf die Seriennummer verweist.

Kann jemand einen Weg vorschlagen, dies zu tun?

Roger
quelle
1
Gibt es einen bestimmten Grund, warum Sie dies tun möchten?
Jared Harley
1
Ja. Ich habe ein PC-Inventarisierungssoftware-Tool, das die BIOS-Seriennummer verwendet, um Computer eindeutig zu identifizieren. Es funktioniert problemlos für physische Hardware und für VMs anderer Hersteller, kann jedoch nicht mit mehreren VirtualBox-VMs umgehen.
Roger
Meine Antwort wurde bearbeitet, um den von Ihnen festgestellten Fehler wiederzugeben.
Ein Zwerg
Hast du Neuigkeiten dazu, Roger? Würde gerne wissen, wie es ausgegangen ist.
Ein Zwerg
Ich habe nie festgestellt, wie es geht. Ich habe ein paar Antworten in den VirtualBox-Foren erhalten, aber nichts gefunden, was funktioniert hat. Wenn ich auf die Antwort stoße, werde ich hier ein Update hinzufügen.
Roger

Antworten:

22

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

Hat wirklich ausführliche Antwort darauf.

Sie können die BIOS-Seriennummer folgendermaßen einstellen:

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

Der Fehler, den Sie erhalten haben, wird dadurch verursacht, dass die Seriennummer nicht als Zeichenfolgenwert festgelegt wurde. Wenn Sie eine reine Zahl haben, müssen Sie ihr Folgendes voranstellen string::

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

Hinweis: Wenn Ihre VM für die Verwendung der EFI-Firmware konfiguriert ist, müssen Sie die Platinen in den Schlüsseln durch efi ersetzen.

Alex R
quelle
3
Beachten Sie, dass diese Anweisungen für Systeme gelten, die BIOS verwenden . Wenn Ihr System EFI verwendet - gesteuert von "Einstellungen -> System -> Motherboard -> EFI aktivieren" -, müssen Sie in den obigen Befehlen "pcbios" durch "efi" ersetzen.
NTC2
8

Nicht von externen Einstellungen. Aber Sie können aus dem Code und dann selbst erstellen:

Quelldatei : DevPcBios.cpp
Zeile: 1014READCFGSTR("DmiSystemSerial", pszDmiSystemSerial, "0");

Ändern Sie "0" auf den gewünschten Wert.


BEARBEITEN: Sie können offenbar VBoxManage setextradata verwenden . Ich habe es in der Vergangenheit für andere Arten von Konfigurationen (nicht BIOS-bezogen) verwendet und diese spezielle Einstellung nicht getestet. Probieren Sie es aus:

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

Andernfalls ... kehren Sie zum Bearbeiten und Erstellen des Quellcodes zurück.

Viel Glück.

Ein Zwerg
quelle
1
Hmm. Danke - so nah, aber noch nicht da. Ich habe Folgendes versucht: "c: \ Programme \ Sun \ VirtualBox \ VBoxManage.exe" setextradata "Demoserver" VBoxInternal / Devices / pcbios / 0 / Config / DmiSerial "123" Es schien zu funktionieren, aber als ich die VM I startete Diese Fehlermeldung wurde angezeigt: Der Demo-Server der virtuellen Maschine konnte nicht gestartet werden. Ungültige Konfiguration für Gerät pcbios Gerät (VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES). Unbekannter Fehler beim Erstellen der VM (VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES). Durch Löschen und Neuerstellen der Maschinendefinition wurde das Problem behoben, sodass kein Schaden entstanden ist. Ich denke, Sie stehen sich sehr nahe - gibt es noch andere Vorschläge?
Roger
hmm ... hast du deinen Befehl wörtlich in das Kommentarfeld kopiert / eingefügt? Weil es keinen Speicher zwischen / Config und / DmiSerial gibt. Egal, ich werde dies weiter untersuchen. Ich denke, ich muss VirtualBox installieren. Bisher habe ich mich nur auf meine Notizen verlassen :)
Ein Zwerg
Bah! Dieser Kopf von mir. Ich poste die entsprechende Codezeile und vergleiche sie dann nicht einmal mit meinen viel älteren Notizen. Es ist nicht / DmiSerial. Es wurde irgendwann zwischen Version 1.5 und jetzt umbenannt. Es ist jetzt / DmiSystemSerial
Ein Zwerg
Danke, Ein Zwerg, für all deine Hilfe. Ich habe versucht, DmiSerial durch DmiSystemSerial zu ersetzen, habe die Befehlszeile erneut ausgeführt (ohne das Leerzeichen, das ein Tippfehler war) und habe den gleichen Fehler erhalten.
Roger
Meines Wissens kann es nur bedeuten, dass dies noch nicht vollständig implementiert ist und Sie es nicht auf diese Weise tun können. An diesem Punkt fürchte ich, dass ich nicht mehr nützlich bin. Sie sollten zu den VirtualBox-Foren gehen und von dort aus versuchen. Sie sind ausgezeichnete Leute und Sie werden eine fundiertere Antwort bekommen. Ich würde jedoch gerne das Endergebnis erfahren, wenn Sie so freundlich wären und eine Antwort auf Ihre eigene Frage posten würden, wenn dies geschieht. Alles Gute.
Ein Zwerg
3

Wenn Sie diesen Befehl ausführen und den Fehler erhalten, auf den Roger verweist, müssen Sie den Befehl zurücksetzen, indem Sie den Befehl ohne den letzten Parameter (VALUE) ausführen.

Das entfernt den Eintrag, der den Fehler verursacht.

Wenn Sie sich nicht sicher sind, was der letzte fehlerhafte Befehl war, öffnen Sie die Datei ~~~ .vbox (XML) im Stammverzeichnis des VirtualMachines-Ordners der jeweiligen VM und lesen Sie den Abschnitt EXTRADATA.

Das Ausführen des Befehlszeilenaufrufs an vboxmanage ist die beste Möglichkeit, diese zu ändern. Das Bearbeiten der XML-Datei dauert nicht 100% der Zeit an.

Alex
quelle
2

Die akzeptierte Antwort hat die Seriennummer für mich nicht korrekt aktualisiert. Stattdessen habe ich diese Schritte ausgeführt, um die Seriennummer erfolgreich zu aktualisieren. Beachten Sie, dass das Gastbetriebssystem macOS und der Host Windows war.

HINWEIS: Sie müssen virtualbox schließen, bevor Sie diesen Befehl ausführen, damit er gespeichert wird.

  1. Öffnen Sie die Windows-Eingabeaufforderung als Administrator
  2. cd "C:\Program Files\Oracle\VirtualBox\"
  3. VBoxManage.exe setextradata "VM NAME" "VBoxInternal/Devices/efi/0/Config/DmiSystemSerial" "SERIAL_HERE" Siehe Quelle . *
    Ich bin nicht sicher, warum der pcbios-Befehl nicht funktioniert hat, aber efi.

HILFREICHE LINKS

  • Wenn Sie Probleme haben, eine gültige Seriennummer zu finden, befolgen Sie die Anweisungen hier .
  • Wenn Sie sich nicht sicher sind, wie Ihr VM-Name lautet VBoxManage.exe list vms.
josh7weaver
quelle
1
Wenn Sie "efi" und eine akzeptierte Antwort mit "pcbios" benötigen, liegt dies wahrscheinlich daran, dass Sie (U) EFI verwenden und diese Person das traditionelle BIOS verwendet hat. Ob Sie EFI oder BIOS verwenden, wird durch das Kontrollkästchen "Einstellungen -> System -> Hauptplatine -> EFI aktivieren" in VirtualBox bestimmt.
NTC2
Ah macht Sinn! Thanks @ ntc2
josh7weaver
1

Versuchen Sie es mit einer Seriennummer, die eine 20-Byte-Hexadezimalzeichenfolge enthält:

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

( Referenz )

Ricardo Kiyoshi Batori
quelle