Migrer d'une machine virtuelle vers un système physique

124

Aka: Comment puis-je convertir un fichier .vdi ou .vmdk en une installation réelle sur un disque physique?

Est-il possible / réalisable de migrer une installation de machine virtuelle d'Ubuntu sur une machine physique? Si possible, dans quelle mesure cela serait-il difficile et quelles mesures devrais-je prendre pour préparer la migration?

J'aimerais effectuer des tests sur une machine virtuelle et, le cas échéant, migrer ce système sur du matériel physique au lieu de tout réinstaller. Est-ce possible?

dting
la source

Réponses:

98

Oui c'est possible. Ce n'est même pas si difficile, cela prend juste un peu de temps, un LiveCD Ubuntu, un plastique collant et un disque USB externe (si vous n'avez pas plus d'un disque interne).

Étape préliminaire: convertissez le disque en quelque chose d'utile

VMWare et VirtualBox (entre autres) utilisent des formats de disque qui ne se prêtent pas bien à une écriture directe sur disque. Vous pouvez le faire, mais j'estime personnellement qu'il est plus pratique de l'écrire d'abord sur une image intermédiaire. Vous pouvez le faire depuis votre système actuel sans avoir à démarrer sur un LiveCD.

  • Charger un terminal et tirer dans:

    cd /media/wherever-the-image-is/
    
    # for VMWare
    sudo apt-get install qemu-kvm
    qemu-img convert your-vmware-disk.vmdk -O raw disk.img
    
    # For VirtualBox
    VBoxManage clonehd your-virtualbox-disk.vdi disk.img --format RAW
    
  • Déplacer /media/wherever-the-image-is/disk.imgquelque part que vous n'êtes pas sur le point d'écrire. Si vous envisagez de l'écrire sur le disque sur lequel il se trouve, vous devrez le coller sur un disque interne séparé ou, pire, sur un disque externe.

  • Les instructions suivantes supposent que vous l'avez déplacé /media/dave/disk.img(il daves'agit d'un disque USB externe)

  • Avant d’écrire sérieusement, assurez-vous d’avoir des sauvegardes . C'est un cliché à dire, mais une faute de frappe et il y a une possibilité très réelle que votre système fonctionne. Supposons que les choses vont mal tourner et soyez prêt. CloneZilla peut vous aider à faire des sauvegardes de disques entiers si vous avez un endroit où stocker ces données.

Écrivez l'image sur un disque qui lui est propre

Vous voudrez faire quelque chose comme ça. Cela suppose que vous allez écraser tout un disque. Si vous souhaitez effectuer une installation parallèle à Windows, ne suivez pas ces instructions! Passer à après les balles.

  • Démarrez dans un Live CD Ubuntu et cliquez sur Try Ubuntu.

  • Montez l'emplacement où votre image vmdk est stockée (par exemple, le disque USB externe en tant que /media/dave). Ne montez pas l'endroit où vous voulez écrire.

  • Ensuite nous allons au travail:

    sudo dd if=/media/dave/disk.img of=/dev/sdX
    

    Vous souhaitez remplacer sdXpar le chemin correct vers votre disque de destination. Le sudomot de passe est vide, appuyez simplement sur Entrée.

  • Vous pouvez ensuite ouvrir gpartedou autre chose et vous devriez voir votre partition Ubuntu sur le disque. Vous devriez pouvoir l'élargir.

Écrire l'image sur un disque à côté d'un autre système d'exploitation

C'est peut-être une façon tout à fait plus sûre de faire les choses. L'idée est très similaire sauf que vous devez installer correctement Ubuntu, puis synchroniser les fichiers à partir de disk.img.

  • Votre LiveCD devra cette fois-ci être la même version d'Ubuntu que votre installation virtuelle. Démarrez dans le Live CD et cliquez à nouveau sur Installer.

  • Suivez l'installateur jusqu'à ce que vous répartissiez les tâches à votre guise. Environ 10 minutes plus tard, vous serez installé et il vous demandera de redémarrer. Ne redémarre pas. Peu importe si vous le faites accidentellement, assurez-vous de revenir dans le LiveCD pour les instructions suivantes.

  • Montez la partition de votre nouvelle installation et votre disque externe dans lequel vous avez disk.imgprécédemment stocké (double-cliquez dessus dans Nautilus).

  • Montez votre ISO disk.img dans un terminal:

    sudo mkdir /media/oldinstall
    sudo mount -o loop /media/dave/disk.img /media/oldinstall
    

    -Note - Après avoir créé le fichier .img souhaité, parfois, lorsque vous essayez de le monter en tant que périphérique en boucle, vous risquez d'obtenir l'erreur suivante

    "La signature NTFS est manquante. Échec de montage de '/ dev / loop0': argument invalide Le périphérique '/ dev / loop0' ne semble pas posséder de NTFS valide."

    Un fichier .img contient parfois un enregistrement de démarrage principal et une table de partition avant la partition que vous souhaitez peut-être monter. Par conséquent, vous devez connaître le décalage de la partition requise. Pour cela, on peut utiliser l' outil Parted . Pour un exemple, regardez la réponse de sisco311 dans ce lien http://ubuntuforums.org/archive/index.php/t-1576011.html

    Donc, si vous avez déterminé que votre offset est 'xxx', vous pouvez monter votre partition en utilisant

    sudo mount -o loop,offset=xxx /media/dave/disk.img /media/oldinstall
    
  • À partir de là, vous pouvez sélectionner des fichiers ou tout simplement copier le contenu de votre nouvelle installation Ubuntu à l'aide de quelque chose comme:

    sudo rsync /media/oldinstall/ /media/my-new-install/
    
  • Redémarrez et vous devriez être accueilli avec votre ancienne installation VMWare, mais sur du métal nu. Si vous rencontrez des problèmes désagréables, vous pouvez y remédier en retournant à Live CD, en chrootant et en corrigeant les problèmes .

Oli
la source
7
Êtes-vous au courant d'un outil qui le fait automatiquement?
the_drow
1
Pour les configurations sur Windows / VirtualBox, la VBoxManage internalcommands converttoraw your-virtualbox-disk.vdi /dev/sdXcommande fonctionnera toujours. Tout ce dont vous avez besoin est de vous connecter Program Files\Oracle\VirtualBoxavant d'exécuter la première commande.
Aust
2
@ Je doute que ce /dev/sdXsoit une cible valide dans Windows. Autant que je sache ce sera \\Device\Harddisk0ou quelque chose comme ça.
Danatela
3
VBoxManage internalcommands converttoraw your-virtualbox-disk.vdi /dev/sdXne fonctionne pas. Dans Linux , il donne l'erreur: VBoxManage: error: Cannot create destination file "/dev/sdX": VERR_ALREADY_EXISTS. Il est nécessaire d'utiliser la VBoxManagecommande pour l'envoyer d'abord à une image. Utilisez ensuite DD pour placer l’image sur le disque physique.
LD James
8

Peut-être que ce n'est pas exactement ce que vous demandez, mais cela peut accomplir ce que vous voulez faire.

Tous vos paramètres étant stockés dans votre répertoire de base, vous pouvez simplement en faire une copie de sauvegarde sur une autre partition d'un disque réel. Après avoir installé une nouvelle Ubuntu sur un disque réel, exécutez à nouveau le programme de sauvegarde pour restaurer votre répertoire personnel avec tous les paramètres intacts.

Vous pouvez utiliser un programme de sauvegarde très soigné appelé Déjà Dup .

Informations du centre logiciel Ubuntu:

Déjà Dup est un simple outil de sauvegarde. Il cache la complexité de la sauvegarde de la bonne manière (cryptée, hors site et régulière) et utilise la duplicité comme base.

Fonctionnalités:

  • Prise en charge d'emplacements de sauvegarde locaux, distants ou dans le cloud, tels que Amazon S3 ou Rackspace Cloud Files

  • Crypte et compresse vos données en toute sécurité

  • Sauvegarde incrémentielle, vous permettant de restaurer à partir d'une sauvegarde particulière

  • Planifie des sauvegardes régulières

  • S'intègre bien dans votre bureau GNOME

entrez la description de l'image ici

Vous aurez terminé en moins de deux heures!

bonne chance!

danizmax
la source
1
Cela semble facile. Peut-on confirmer que cela fonctionne vraiment de cette façon?
Mateng
entre autres ... l'UID (numéros d'utilisateur) peut-être différent à ce moment-là.
Tomachi
5

Essayez UDPCast

L'idée est de diffuser l'intégralité de votre vmdk de sa machine virtuelle sur une machine physique, où il est écrit sur le disque dur physique.

La procédure est décrite ci-dessous.

Puisque vous avez un fichier vmdk, vous pouvez avoir un poste de travail VMWare à votre disposition, même une machine virtuelle complète à laquelle ce vmdk est attaché. Exécutez votre machine virtuelle avec ce vmdk connecté, mais au lieu du démarrage ordinaire, utilisez PartedMagic liveCD pour démarrer.

Lorsque liveCD est démarré, accédez au menu principal et recherchez le fichier UDPCast Disk Cloning. Ses dialogues sont explicites (voir la capture d'écran) Écran de démarrage du clonage de disque UDPCast

Après avoir sélectionné cette machine virtuelle sender, vous devez sélectionner le lecteur que vous souhaitez diffuser (en utilisant la notation Unix, comme / dev / sda).

Une fois que vous avez commencé le sender, vous devez également commencer receiver. Étant donné que vous avez un disque dur physique, je suppose, vous avez également un PC complet auquel ce disque dur est attaché. Même chose ici: vous devez démarrer liveCD en UDPCast Disk Cloningsélectionnant receivercette heure ainsi que le disque dur physique approprié.

Il est à noter que vous devez prendre toutes les dispositions nécessaires pour assurer la connectivité réseau entre votre machine virtuelle et le matériel physique. Vous devez prendre les précautions nécessaires si votre vmdk contient des données privées, car leur contenu serait effectivement diffusé en continu sur votre réseau. Une autre chose est que votre disque dur cible ne devrait pas avoir moins de capacité de stockage que la capacité de votre vmdk. Il est évident, mais il convient également de noter que votre image est affichée individuellement sur votre disque dur cible et que vous devez effectuer des opérations appropriées avec gparted ou similaire pour utiliser davantage la capacité de votre nouveau disque dur.

PF4Public
la source
J'aimerais noter que cette méthode est vraiment simple et relativement facile à utiliser. À savoir, la seule étape de préparation à effectuer est de préparer votre LiveCD avec UDPCast sur celui-ci ou sur tout autre LiveCD, ce qui est suffisant pour télécharger et exécuter UDPCast. Si vous avez des images hd virtuelles, vous les avez certainement utilisées dans une machine virtuelle déjà configurée et prête. Par contre, vous avez préparé votre système physique et il est également prêt pour la tâche.
PF4Public
Il y a plus: UDPCast pourrait être exécuté directement à partir de PXE. udpcast.linux.lu/bootloader.html#pxe
PF4Public le 17/02/16
4

Si VirtualBox est installé, vous pouvez convertir le fichier VDI (image de lecteur VirtualBox) au format IMG à l’aide de la VBoxManagecommande, puis le copier sur le disque physique, par exemple:

VBoxManage clonehd --format RAW file.vdi file.img

Ensuite, vous pouvez utiliser la ddcommande pour copier le fichier dans la partition physique:

dd if=./file.img of=/dev/<partition_here>

Remarque: utilisez sudo si nécessaire. Faites attention lorsque vous spécifiez le bon périphérique dans / dev.

Kenorb
la source
0

Si le disque virtuel de la machine virtuelle est connecté au nouveau disque physique connecté à la machine, vous pouvez convertir VDI en disque physique sans conversion intermédiaire, ce qui vous permettra probablement de gagner beaucoup de temps et d'espace disque. Cela suppose que votre disque physique est égal ou supérieur à la taille maximale du disque virtuel. Dans mon cas, l'objectif était de convertir un VDI en ZFS zvol, mais l'approche devrait être la même avec n'importe quel périphérique en mode bloc.

Commencez par créer un fichier VMDK pointant sur votre périphérique bloc:

VBoxManage internalcommands createrawvmdk -filename physical.vmdk -rawdisk /dev/sdX

Ensuite (avec l’arrêt de la VM!), Vous pouvez cloner le VDI sur le VMDK:

VBoxManage clonemedium --existing virtual.vdi physical.vmdk

Cela prendra un certain temps ... Une fois que vous avez terminé, vous pouvez supprimer le fichier VMDK, car il n’était utilisé que comme pointeur pour que VirtualBox recherche le périphérique physique.

Dans mon cas, le nouveau zvol avait exactement la même taille que le disque virtuel. Étant donné que votre disque physique est probablement différent, vous devez utiliser un mécanisme de redimensionnement de partition pour remplir le disque en entier. Gparted ou quelque chose peut-être. Vous devriez pouvoir pointer cela sur le périphérique physique / dev / sdX tout en restant connecté à la machine virtuelle afin que vous n'ayez pas à recourir à l'initialisation du CD sur l'hôte physique.

Une fois le redimensionnement terminé, insérez le lecteur dans votre machine physique, croisez les doigts et allumez votre ordinateur.

Si vous souhaitez continuer à utiliser le lecteur physique avec VirtualBox, conservez le VMDK et utilisez-le VBoxManage storageattachpour le connecter à la machine virtuelle.

pendeur
la source
Il semble que cela fonctionne, mais les données sont corrompues d'une manière ou d'une autre et le système d'exploitation ne démarre pas correctement.
Sarge Borsch