¿Cómo puedo cambiar el número de serie del BIOS en VirtualBox?

17

VirtualBox establece el número de serie del BIOS de cada instancia de VM en 0. Parece que es posible cambiar algunas configuraciones del BIOS, pero no he visto nada que haga referencia directa al número de serie.

¿Alguien puede sugerir una forma de hacer esto?

Roger
fuente
1
¿Alguna razón particular por la que quieres hacer esto?
Jared Harley el
1
Si. Tengo una herramienta de software de inventario de PC que usa el número de serie del BIOS para identificar de manera única las computadoras. Funciona bien para hardware físico y máquinas virtuales de otros proveedores, pero no sabe cómo manejar varias máquinas virtuales de VirtualBox.
Roger
edité mi respuesta para reflejar el error que captó.
Un enano el
¿Tienes alguna noticia sobre esto, Roger? Me encantaría saber cómo resultó.
Un enano el
Nunca determiné cómo hacerlo. Recibí algunas respuestas en los foros de VirtualBox, pero no encontré nada que funcionara. Si me encuentro con la respuesta, me aseguraré de agregar una actualización aquí.
Roger el

Respuestas:

22

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

Realmente tiene una respuesta detallada para esto.

Puede configurar el número de serie de la BIOS haciendo esto:

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

El error que estaba obteniendo se debe a que el número de serie no se establece como un valor de cadena, si tiene un número puro, debe anteponerlo de la siguiente string:manera:

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

Nota: En caso de que su VM esté configurada para usar el firmware EFI, debe reemplazar pcbios por efi en las teclas.

Alex R
fuente
3
Tenga en cuenta que estas instrucciones son para sistemas que utilizan BIOS . Si su sistema usa EFI - controlado por "Configuración -> Sistema -> Placa base -> Habilitar EFI" - entonces necesita reemplazar "pcbios" con "efi" en los comandos anteriores.
ntc2
8

No de ninguna configuración externa. Pero puede hacerlo desde el código y luego compilarlo usted mismo:

Archivo de origen: DevPcBios.cpp
Línea: 1014READCFGSTR("DmiSystemSerial", pszDmiSystemSerial, "0");

Cambie "0" a cualquier valor que necesite.


EDITAR: aparentemente puede usar VBoxManage setextradata . Lo he usado en el pasado para otro tipo de configuraciones (no relacionadas con la BIOS) y no probé esta configuración en particular. Darle una oportunidad:

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

De lo contrario ... regrese a la edición y construcción del código fuente.

La mejor de las suertes.

Un enano
fuente
1
Hmm Gracias, muy cerca, pero todavía no. Intenté esto: "c: \ Archivos de programa \ Sun \ VirtualBox \ VBoxManage.exe" setextradata "Demo Server" VBoxInternal / Devices / pcbios / 0 / Config / DmiSerial "123" Parecía funcionar, pero cuando lancé la VM I recibió este mensaje de error: no se pudo iniciar el servidor de demostración de la máquina virtual. Configuración no válida para dispositivo dispositivo pcbios (VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES). Error desconocido al crear VM (VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES). Eliminar y volver a crear la definición de la máquina lo arregló, por lo que no se hizo daño. Creo que estás muy cerca, ¿alguna otra sugerencia?
Roger, el
hmm ... ¿Hiciste una copia / pegado literal de tu comando en el cuadro de comentarios? Porque no hay separación entre / Config y / DmiSerial. Independientemente, exploraré esto más a fondo. Supongo que tendré que instalar VirtualBox. Hasta ahora solo confiaba en mis notas :)
Un enano el
¡Bah! Esta cabeza mía. Publico la línea de código relevante y luego ni siquiera la comparo con mis notas mucho más antiguas. No es / DmiSerial. Ha sido renombrado en algún momento entre la versión 1.5 y ahora. Ahora es / DmiSystemSerial
un enano el
Gracias, un enano, por toda su ayuda. Intenté reemplazar DmiSerial con DmiSystemSerial, volví a ejecutar la línea de comando (sin el espacio, que era un error tipográfico) y obtuve el mismo error.
Roger
Que yo sepa, solo puede significar que esto aún no está completamente implementado y que no puede hacerlo de esta manera. En este punto, me temo que dejo de ser útil. Debería ir a los foros de VirtualBox e intentar desde allí. Son excelentes personas y obtendrás una respuesta más informada. Sin embargo, me encantaría saber el resultado final, si fuera tan amable y publicara una respuesta a su propia pregunta cuando eso suceda. Todo lo mejor.
Un enano el
3

Si ejecuta ese comando y obtiene el error al que hace referencia Roger, debe retroceder el comando ejecutando el comando sin el último parámetro (VALOR).

Esto elimina la entrada que causa el error.

Si no está seguro de cuál fue el último comando infractor, abra el archivo ~~~ .vbox (XML) en la raíz de la carpeta VirtualMachines de la VM específica y revise la sección EXTRADATA.

Ejecutar la llamada de línea de comandos a vboxmanage es la mejor manera de modificarlos. La edición del archivo xml no se pega el 100% del tiempo.

Alex
fuente
2

La respuesta aceptada no actualizó el número de serie correctamente para mí; en cambio, seguí estos pasos para actualizar con éxito el número de serie. Tenga en cuenta que el sistema operativo invitado era macOS y el host era Windows.

NOTA: Debe cerrar virtualbox antes de ejecutar este comando para que se guarde.

  1. Abra el símbolo del sistema de Windows como administrador
  2. cd "C:\Program Files\Oracle\VirtualBox\"
  3. VBoxManage.exe setextradata "VM NAME" "VBoxInternal/Devices/efi/0/Config/DmiSystemSerial" "SERIAL_HERE" ver fuente . *
    No estoy seguro de por qué el comando pcbios no funcionó, pero efi sí.

ENLACES ÚTILES

  • Si tiene problemas para encontrar una serie válida, siga las instrucciones aquí .
  • Si no está seguro de cuál es su nombre vm se ejecuta VBoxManage.exe list vms.
josh7weaver
fuente
1
Si necesita "efi" y ha aceptado la respuesta con "pcbios", probablemente se deba a que está usando (U) EFI y esa persona estaba usando BIOS tradicional. La casilla de verificación "Configuración -> Sistema -> Placa base -> Habilitar EFI" en VirtualBox determina si está utilizando EFI o BIOS.
ntc2
Ah tiene sentido! Gracias @ ntc2
josh7weaver
1

Intente usar un número de serie que contenga una cadena hexadecimal de 20 bytes:

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

( Referencia )

Ricardo Kiyoshi Batori
fuente