Comment puis-je changer le numéro de série du BIOS dans VirtualBox?

17

VirtualBox définit le numéro de série du BIOS de chaque instance de machine virtuelle sur 0. Il semble possible de modifier certains paramètres du BIOS, mais je n'ai rien vu qui fasse directement référence au numéro de série.

Quelqu'un peut-il suggérer un moyen de procéder?

Roger
la source
1
Une raison particulière pour laquelle vous souhaitez faire cela?
Jared Harley
1
Oui. J'ai un outil logiciel d'inventaire PC qui utilise le numéro de série du BIOS pour identifier de manière unique les ordinateurs. Cela fonctionne bien pour le matériel physique et pour les machines virtuelles d'autres fournisseurs, mais ne sait pas comment gérer plusieurs machines virtuelles VirtualBox.
Roger
modifié ma réponse pour refléter l'erreur que vous avez détectée.
Un nain
Vous avez des nouvelles à ce sujet, Roger? J'adorerais savoir comment cela s'est avéré.
Un nain
Je n'ai jamais déterminé comment le faire. J'ai reçu quelques réponses sur les forums VirtualBox, mais je n'ai rien trouvé qui fonctionnait. Si je rencontre la réponse, je suis sûr d'ajouter une mise à jour ici.
Roger

Réponses:

22

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

A vraiment une réponse détaillée à cela.

Vous pouvez définir le numéro de série du bios en procédant comme suit:

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

L'erreur que vous obteniez est due au fait que la série n'est pas définie comme une valeur de chaîne, si vous avez un nombre pur, vous devez le ajouter string:comme ceci:

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

Remarque: Si votre machine virtuelle est configurée pour utiliser le firmware EFI, vous devez remplacer pcbios par efi dans les clés.

Alex R
la source
3
Notez que ces instructions concernent les systèmes utilisant le BIOS . Si votre système utilise EFI - contrôlé par "Paramètres -> Système -> Carte mère -> Activer EFI" - alors vous devez remplacer "pcbios" par "efi" dans les commandes ci-dessus.
ntc2
8

Pas à partir de paramètres externes. Mais vous pouvez à partir du code puis le créer vous-même:

Fichier source: DevPcBios.cpp
Ligne: 1014READCFGSTR("DmiSystemSerial", pszDmiSystemSerial, "0");

Remplacez «0» par la valeur dont vous avez besoin.


EDIT: Vous pouvez apparemment utiliser VBoxManage setextradata . Je l'ai utilisé dans le passé pour d'autres types de configurations (non liées au bios) et je n'ai pas testé ce paramètre particulier. Essayez:

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

Sinon ... revenez à l'édition et à la construction du code source.

Bonne chance.

Un nain
la source
1
Hmm. Merci - si près, mais pas encore là. J'ai essayé ceci: "c: \ Program Files \ Sun \ VirtualBox \ VBoxManage.exe" setextradata "Demo Server" VBoxInternal / Devices / pcbios / 0 / Config / DmiSerial "123" Cela semblait fonctionner, mais quand j'ai lancé la machine virtuelle, j'ai a obtenu ce message d'erreur: Impossible de démarrer le serveur de démonstration de la machine virtuelle. Configuration non valide pour le périphérique pcbios du périphérique (VERR_PDM_DEVINS_UNknown_CFG_VALUES). Erreur inconnue lors de la création de la machine virtuelle (VERR_PDM_DEVINS_UNknown_CFG_VALUES). La suppression et la recréation de la définition de la machine l'ont corrigée, donc aucun mal n'a été fait. Je pense que vous êtes vraiment proche - d'autres suggestions?
Roger
hmm ... avez-vous fait un copier / coller textuel de votre commande dans la zone de commentaire? Parce qu'il n'y a pas d'intervalle entre / Config et / DmiSerial. Quoi qu'il en soit, j'explorerai cela plus avant. Je suppose que je vais devoir installer VirtualBox. Jusqu'à présent, je ne comptais que sur mes notes :)
Un nain
Bah! Cette tête à moi. Je poste la ligne de code pertinente et je ne la compare même pas à mes notes beaucoup plus anciennes. Ce n'est pas / DmiSerial. Il a été renommé entre la version 1.5 et maintenant. Il est maintenant / DmiSystemSerial
A Dwarf
Merci, un nain, pour toute votre aide. J'ai essayé de remplacer DmiSerial par DmiSystemSerial, de relancer la ligne de commande (sans l'espace, qui était une faute de frappe), et j'ai eu la même erreur.
Roger
À ma connaissance, cela ne peut que signifier que ce n'est pas encore complètement implémenté et vous ne pouvez pas le faire de cette façon. À ce stade, je crains de ne plus être utile. Vous devriez aller sur les forums VirtualBox et essayer à partir de là. Ils sont excellents et vous obtiendrez une réponse plus éclairée. J'aimerais cependant connaître le résultat final, si vous voulez être si gentil et poster une réponse à votre propre question lorsque cela se produit. Bonne chance.
Un nain
3

Si vous exécutez cette commande et obtenez l'erreur référencée par Roger, vous devez annuler la commande en exécutant la commande sans le dernier paramètre (VALUE).

Cela supprime l'entrée à l'origine de l'erreur.

Si vous n'êtes pas sûr de la dernière commande incriminée, ouvrez le fichier ~~~ .vbox (XML) à la racine du dossier VirtualMachines de la machine virtuelle spécifique et consultez la section EXTRADATA.

L'exécution de l'appel de ligne de commande vers vboxmanage est le meilleur moyen de les modifier. La modification du fichier xml ne colle pas à 100% du temps.

Alex
la source
2

La réponse acceptée n'a pas mis à jour le numéro de série correctement pour moi; à la place, j'ai suivi ces étapes pour réussir la mise à jour du numéro de série. Notez que le système d'exploitation invité était macOS et que l'hôte était Windows.

REMARQUE: vous devez fermer virtualbox avant d'exécuter cette commande pour qu'elle soit enregistrée.

  1. Ouvrez l'invite de commande Windows en tant qu'administrateur
  2. cd "C:\Program Files\Oracle\VirtualBox\"
  3. VBoxManage.exe setextradata "VM NAME" "VBoxInternal/Devices/efi/0/Config/DmiSystemSerial" "SERIAL_HERE" voir la source . *
    Je ne sais pas pourquoi la commande pcbios n'a pas fonctionné mais efi l'a fait.

LIENS UTILES

  • Si vous avez du mal à trouver une série valide, suivez les instructions ici .
  • Si vous n'êtes pas sûr du nom de votre vm VBoxManage.exe list vms.
josh7weaver
la source
1
Si vous avez besoin de "efi" et d'une réponse acceptée en utilisant "pcbios", c'est probablement parce que vous utilisez (U) EFI et que cette personne utilisait le BIOS traditionnel. Que vous utilisiez EFI ou BIOS est déterminé par la case "Paramètres -> Système -> Carte mère -> Activer EFI" dans VirtualBox.
ntc2
Ah c'est logique! Merci @ ntc2
josh7weaver
1

Essayez d'utiliser un numéro de série qui contient une chaîne hexadécimale de 20 octets:

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

( Référence )

Ricardo Kiyoshi Batori
la source