web-dev-qa-db-fra.com

Est-il possible de convertir des machines virtuelles en environnements physiques?

Il est possible de convertir un fichier .vdi en un .iso qui peut être gravé sur un cd ou un dvd et en faire un installateur. Ou est-il possible de convertir des machines virtuelles en environnements physiques?

76
Wern Ancheta

Oui et non.

Vous can convertissez un VDI en une image disque avec l'outil VBoxManage. Cette commande clone une image de disque virtuel enregistrée dans un autre fichier image. Si vous souhaitez convertir votre disque virtuel dans un autre format, il s'agit de l'outil officiel VirtualBox à utiliser [*].

VBoxManage clonehd file.vdi output.img --format RAW
  • Si vous utilisez un VDI dynamique et que vous avez une version plus ancienne de VirtualBox, il est possible que clonehd _ ne fonctionne pas correctement. L'outil internalcommands de VBoxManage inclut converttoraw, qui peut convertir un VDI dynamique en une image disque brute ( source ) [+].
VBoxManage internalcommands converttoraw file.vdi output.img

Mais... ce fichier IMG de sortie n'est pas une image ISO et le système d'exploitation installé ne sera pas configuré pour s'exécuter à partir d'un CD/DVD amorçable. Vous pouvez "graver" (écrire) l'IMG sur un disque dur et ce dernier peut démarrer sur du matériel nu (par exemple, pas sur une machine virtuelle). Mais ce n’est peut-être pas le cas, car le système d’exploitation installé sur cet IMG s’attend à voir le matériel virtuel fourni par VirtualBox, et vous le démarrez sur du matériel réel qu’il n’attend pas.

Certaines versions de Windows ne gèrent pas bien cette situation; certaines distributions Linux le font. Il est parfois possible de configurer un système d'exploitation (avant ou après) pour le migrer d'un environnement à l'autre, mais des étapes spécifiques dépendent totalement du système d'exploitation migré.


Sous Windows, vous devrez peut-être spécifier le chemin complet du programme:

"C:\Program Files\Sun\VirtualBox\VBoxManage.exe" [...]

Ajoutez C:\Program Files\Sun\VirtualBox à votre CHEMIN pour utiliser la version courte.


[*] Je suppose que l'option "--format RAW" sera convertie en une image disque standard, comme si vous aviez utilisé la commande dd sur un disque dur physique. Mais franchement, je n'ai trouvé aucune documentation qui sauvegarde cela, alors sachez que cela peut ne pas être correct.

[+] Je viens de tester les deux commandes sous VirtualBox 3.1.2. Les deux fichiers de sortie sont identiques selon md5sum, mais je n'ai pas complètement testé les fichiers de sortie.

Voir aussi le "Tout sur les VDI" tutorial sur les forums de VirtualBox.

62
quack quixote

Si votre fichier vdi contient des partitions et que vous souhaitez en extraire une, utilisez les éléments suivants:

Tout d’abord, comme l’a dit quack quixote précédemment, convertissez le fichier vdi en un fichier image brut:

# VBoxManage clonehd file.vdi file.raw --format RAW

Ensuite, configurez un périphérique de boucle pour l’image:

# loopdev=$(losetup --show -r -f file.raw)

Utilisez kpartx pour créer des périphériques pour chaque partition du fichier brut:

# apt-get install kpartx
# kpartx -a $loopdev

Voir quels appareils nous avons maintenant. Dans cet exemple, il n'y a qu'un seul périphérique car il n'y a qu'une seule partition dans l'image brute:

# ls /dev/mapper/loop*
/dev/mapper/loop0p1

Maintenant montez-le pour vérifier que tout fonctionne correctement:

# mkdir /mnt/part1
# mount /dev/mapper/loop0p1 /mnt/part1
# ls /mnt/part1
# umount /mnt/part1

Utilisez dd pour copier le contenu de la partition sur une autre partition cible:

# dd if=/dev/mapper/loop0p1 of=/dev/sda2 bs=1M

Une fois que vous avez terminé, supprimez à nouveau les mappages de périphériques:

# kpartx -d file.raw
20
dmoebius

La réponse est oui, dans le cas où votre système hôte et invité est Linux. C'est fait avec les paquets qemu et TKLPatch. Vous pouvez utiliser les fichiers VDI ou VMDK.

Lire la suite:

12
Alon Swartz

J'ai essayé le VBoxManage clonehd file.vdi output.img --format RAW de la réponse acceptée mais sans grand succès.

Voici ce qui a fonctionné pour moi avec une machine virtuelle Windows 8.1 sur un hôte Windows 7:

  1. Créez une machine Windows 8.1 dans VirtualBox, installez-la et utilisez-la comme vous le feriez normalement avec une machine virtuelle.
  2. Convertissez le disque dur Virtual Box .vdi en Windows VHD avec VBoxManage clonehd source.vdi target.vhd --format vhd
  3. Montez le disque dur virtuel sur la machine Windows hôte en tant que lecteur (vous pouvez monter un disque dur virtuel dans le gestionnaire de disques de Computer Management.
  4. Clonez le disque dur virtuel (monté en tant que lecteur) sur un autre nouveau disque dur (dans mon cas, un ordinateur portable connecté à un port USB) DriveImage XML ou un outil de clonage de disque similaire. Vous avez maintenant essentiellement cloné le disque dur virtuel .vdi en mode nu.
  5. Installez le nouveau disque dur sur une machine. (dans mon cas, échangez le disque dur du portable)
  6. Insérez une installation USB/CD Windows 8.1, démarrez à partir de celle-ci, choisissez Options avancées et Réparation automatique. La réparation automatique rendra le nouveau disque dur amorçable.
  7. Démarrez à partir du nouveau disque dur avec Windows 8.1 cloné et exécutez Windows Update. Cela téléchargera des pilotes pour le matériel de votre ordinateur qui n'étaient pas connus lorsque vous avez exécuté Windows dans VirtualBox. Vous devrez installer manuellement les pilotes manquants, le cas échéant.
  8. Désinstallez les ajouts d'invité VirtualBox. Installez éventuellement VirtualBox afin que votre Windows 8 "nu" puisse être un hôte VirtualBox.
5
Jan H

Je fais ce processus très rapidement, avec seulement deux lignes de commande sous Linux:

#VBoxManage internalcommands converttoraw your_disk_virtual.vmdk your_disk_virtual.img

OR

#VBoxManage internalcommands converttoraw your_disk_virtual.vdi your_disk_virtual.img

# mv your_disk_virtual.img your_disk_virtual.iso

Mon article complet: http://www.previsioni.com.br/jailsonjan/?p=389

3
JailsonJan

Utilisez la commande suivante pour convertir:

VBoxManage clonehd CactiEZ-disk1.vmdk output.iso --format VMDK

Voici la sortie:

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VMDK'. UUID: 7f297ac6-95eb-4814-9237-1acfd6be976c
0
Anupam