web-dev-qa-db-fra.com

Faites un clone de la machine VirtualBox qui ne provoque pas la réactivation de Windows après l'installation de Windows.

La plupart des guides pour l'installation de Windows sur VirtualBox pour servir de modèle pour les travaux de Windows rapides vous disent de prendre quelques étapes pour préparer la machine virtuelle avant Installation de Windows (le meilleur guide que j'ai trouvé: grahamrhay.wordpress.com ; un autre guide assez bon: www.windowstablettv.com ). Malheureusement, je n'ai pas lu ces guides avant d'installer et d'activer Windows sur le VM Je voulais utiliser comme modèle.

Je veux savoir comment cloner mon déjà actif =VM de telle manière qui ne nécessiterait pas la réactivation de Windows.

Regardant dans le modèle VM fichier de définition (le fichier Vbox ou XML pour la machine virtuelle), le /VirtualBox/Machine/Hardware (ID XPath) Node n'a n ° uuid attribut. Mais si j'essaie d'utiliser VBoxManage modifyvm <uuid|name> --hardwareuuid <uuid> Pour définir une nouvelle UUID pour le modèle VM, alors le modèle VM perd son statut d'activation! (Heureusement, j'avais fait une sauvegarde du modèle.) Alors, pour accomplir mon objectif, Je ne peux pas simplement suivre ces guides prétendant que je n'ai pas encore installé Windows.

14
palswim

Ce script PowerShell fait le travail:

  1. cloner la machine déjà activée.
  2. fermer les précasses VirtualBox à partir du gestionnaire de tâches.
  3. exécutez ce script, modifiant les variables à vos valeurs.

N'oubliez pas que les noms de machines virtuelles sont sensibles à la casse.

$ORIGVirtualMachineName="BaseDevWin7"
$clonedVirtualMachineName="DevWin7a"
$vboxDir="c:\Program Files\Oracle\VirtualBox"
cd $vboxDir
$uid=$($($(.\VBoxManage.exe showvminfo $ORIGVirtualMachineName|select-string "Hardware UUID:").ToString()).Split())[4]
.\VBoxManage modifyvm $clonedVirtualMachineName --hardwareuuid $uid
3
Marcelo Saied

Grâce aux indices ci-dessus, j'ai cloné avec succès une machine avec Win7 Guest en cours d'exécution sur un hôte Kubuntu à des fins de test sans réactivation.

Ma machine a déjà été activée et (comme décrit ci-dessus) n'avait en réalité aucun matériel uuid.

Pour moi, il semble que la machine uuid est uniquement pour la gestion de la VirtualBox, alors que le matériel UUID est utilisé par la logique d'activation Windows. S'il n'y a pas de matériel UUID, la VirtualBox fournit la machine Uuid à l'invité, c'est-à-dire que Microsoft connaît la machine UUID.

C'est ainsi que cela a bien fonctionné sans réactivation dans mon cas: 1) Copiez la machine virtuelle (dossier) avec le navigateur de fichiers normal. 2) Ouvrez le fichier .vbox dans un simple éditeur de texte. 3) Comme il n'y avait pas d'attribut UUID pour le "matériel", copiez l'attribut UUID de la machine (E.G. UUID = "{xxx11111-22222-3333-4444-xxxxxxxxxxxxx}") à l'entrée "Matériel". 4) Générez une nouvelle UUID pour la machine, par exemple avec uuidgenerator.net. 5) écrasez la valeur de la machine UUID avec la valeur UUID générée. => Fait.

Afin de gérer les deux machines en parallèle dans VB gestionnaire, il est plus délicat:
1. Renommez le fichier HardDis de clones .vdi .vdi.
[.____] 2. Dans la ligne de commande fournit une nouvelle UUID au disque dur via la commande "VboxManage interneCommands Sethduduid .vdi. VBManager définira une nouvelle UUID et l'affichera.
3. In VB Manager ajoutez la nouvelle machine. Modifiez la machine en ajoutant le nouveau fichier HardDisk (et enlevez l'original VDI, si toujours présent).

Maintenant, vous avez des identifiants uniques pour toutes les machines virtuelles et HardDisks. Vous pouvez gérer les deux machines dans le fichier VB Manager en parallèle.

2
Dieter Schlueter

La réponse ci-dessus fonctionne! Je l'ai testé sur un modèle Windows 10.

"CLONE complet de la machine. Ne démarrez pas. À partir de la ligne de commande: VboxManage Modifyvm" Cloned VM "--hardwareuuid xxxx-xxxxx-xxxxx-xxxxxxxxxxxxx comme UUID Utilisez l'identifiant de la machine (ou ID de matériel si présent) de la machine d'origine. Pour obtenir l'uuid Utilisation de l'UUID: vboxmanage showvminfo "original VM nom"

Cela devrait fonctionner. Testé sur Windows 10 invité, déjà activé.

0
Mags