La mayoría de las guías para instalar Windows en VirtualBox para que actúen como una plantilla para trabajos rápidos de Windows le indican que siga algunos pasos para preparar la máquina virtual antes de instalar Windows (la mejor guía que encontré: grahamrhay.wordpress.com ; otra guía bastante buena: www .windowstablettv.com ). Desafortunadamente, no leí estas guías antes de instalar y activar Windows en la VM que quería usar como plantilla.
Quiero saber cómo clonar mi VM ya activa de tal manera que no requiera la reactivación de Windows.
Al buscar en el archivo de definición de VM de plantilla (el archivo VBOX o XML para la VM), el /VirtualBox/Machine/Hardware
nodo (ID de XPath) no tiene uuid
atributo. Pero, si intento usar VBoxManage modifyvm <uuid|name> --hardwareuuid <uuid>
para configurar un nuevo UUID para la plantilla VM, ¡la plantilla VM pierde su estado de activación! (Afortunadamente, hice una copia de seguridad de la plantilla). Entonces, para lograr mi objetivo, no puedo seguir esas guías pretendiendo que todavía no he instalado Windows.
VBoxManage modifyvm --hardwareuuid <uuid>
modifyvm
comando no establecerá el atributo de/VirtualBox/Machine/Hardware
nodouuid
si pasa un UUID con el mismo valor que el atributo de/VirtalBox/Machine
nodo de la VMuuid
. Debe editar el archivo VBOX directamente.Este script de PowerShell hace el trabajo:
Recuerde que los nombres de las máquinas virtuales distinguen entre mayúsculas y minúsculas.
fuente
Gracias a las sugerencias anteriores, he clonado con éxito una máquina con Win7 invitado que se ejecuta en un host Kubuntu para fines de prueba sin reactivación.
Mi máquina ya estaba activada y (como se describió anteriormente) en realidad no tenía UUID de hardware.
Para mí, parece que el UUID de MACHINE es solo para la administración de Virtualbox, mientras que el UUID de HARDWARE es utilizado por la lógica de activación de Windows. Si no hay UUID de hardware, Virtualbox proporciona el UUID de la máquina al invitado, es decir, Microsoft conoce el UUID de la máquina.
Así es como funcionó bien sin reactivación en mi caso: 1) Copie la máquina virtual (carpeta) con el explorador de archivos normal. 2) Abra el archivo .vbox en un editor de texto simple. 3) Como no había ningún atributo UUID para el "hardware", copie el atributo UUID de la máquina (por ejemplo, uuid = "{xxx11111-2222-3333-4444-xxxxxxxxxxxx}") a la entrada "hardware". 4) Genere un nuevo UUID para la máquina, por ejemplo, con uuidgenerator.net. 5) Sobrescriba el VALOR de la máquina UUID con el valor UUID generado. => Listo.
Para administrar ambas máquinas en paralelo en VB Manager, es más complicado:
1. Cambiar el nombre del archivo .vdi del disco duro de los clones.
2. En la línea de comandos, proporcione un nuevo UUID al disco duro mediante el comando "VBoxManage internalcommands sethduuid .vdi. VBManager establecerá un nuevo UUID y lo mostrará.
3. En VB Manager agregue la nueva máquina. Edite la máquina agregando el nuevo archivo de disco duro (y elimine el vdi original, si aún está presente).
Ahora tiene ID únicos para todas las máquinas virtuales y discos duros. Puede administrar ambas máquinas dentro del Administrador de VB en paralelo.
fuente
Clon completo de la máquina. No lo comiences.
Desde la línea de comando:
VBoxManage modifyvm "Nombre de máquina virtual clonada" - hardwareuuid xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Como UUID use la identificación de la máquina (o la identificación del hardware si está presente) de la máquina original.
Para obtener el uso de ese UUID:
VBoxManage showvminfo "Nombre de VM original"
Esto debería funcionar. Probado en Windows 10 invitado, ya activado.
fuente
/VirtalBox/Machine
nodo de la VMuuid
, como indican la pregunta y otro comentario .La respuesta anterior funciona! Lo probé en una plantilla de Windows 10.
"Clone por completo la máquina. No la inicie. Desde la línea de comandos: VBoxManage modifyvm" Nombre de máquina virtual clonada "--hardwareuuid xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Como UUID use la identificación de la máquina (o la identificación del hardware si está presente) del máquina original. Para obtener el uso de ese UUID: VBoxManage showvminfo "Nombre de VM original"
Esto debería funcionar. Probado en Windows 10 invitado, ya activado.
fuente