Puis-je migrer un invité VirtualBox Ubuntu vers une * vraie * Hardware Box?


13

Je veux transférer Ubuntu d'une «appliance» VirtualBox Guest vers un véritable ordinateur (métal et puces)?

Cela peut-il être fait et quelles étapes sont impliquées?

Réponses:


7

Je l'essayerais avec dd(n'oubliez pas de remplacer les noms des appareils comme sdapar votre nom d'appareil):

  1. Remplacez tous les uuids dans votre /etc/fstabpar des choses comme /dev/sda1( sda= numéro HD de destination!)
  2. update-grub2 && grub-install /dev/sda
  3. Enregistrez votre disque dur virtuel dans VBox dans un fichier: dd if=/dev/sda /home/user/sda.img
  4. Copiez l'image sur un disque (disque dur externe, partage réseau, dvd, ...)
  5. Restaurez l'image sur le lecteur de destination: dd if=/media/drive/sda.img of=/dev/sda

Le plus gros problème pourrait être le chargeur de démarrage (mais il existe des tutoriels pour cela même dans ce forum). J'ai une fois réinstallé un chargeur de démarrage en faisant une nouvelle installation d'Ubuntu (de préférence la même que celle que vous aviez faite), puis ddl'ancienne partition sur la nouvelle installation (dans ce cas, vous ne le feriez que dd /dev/sda1, non /dev/sda, ce qui inclut également le chargeur de démarrage et toutes les partitions)


Je peux gérer dd. Je l'ai déjà utilisé et je sais que ce n'est pas le début d'une déclaration conditionnelle :) ... Pour une raison quelconque, les uuids et les grub me déroutent .. Ils sont probablement assez simples, mais là encore je pourrais l'être aussi ... I 'utiliserai probablement le MBR à partir d'une nouvelle installation (factice). Le plus gros obstacle pour moi est de réellement dd les partitions de la VM .. Comment puis-je dd d'une partition VM à l'hôte?
Peter.O

... un peu plus (j'ai essayé de le modifier dans mon commentaire précédent, mais la modification a été refusée!? .. un autre mystère mineur):. . . Les dossiers partagés de VirtualBox semblent s'appuyer sur les modules complémentaires qui ne sont pas présents dans une exécution de Live-CD, car cela nécessite un redémarrage.
Peter.O

vous pourriez dd dans un dossier réseau, je l'ai fait la semaine dernière et c'était comme 30 Mo / s. Si vous définissez un dossier partagé dans votre environnement live-cd / windows / linux et activez le réseau ponté pour la machine virtuelle, cela devrait fonctionner.
sBlatt

btw: il est possible de copier une partition Linux entière avec cp (+ quelques arguments pour garder les permissoins! Très important! Je pense que c'était -p ou --preserve = all). J'ai fait cela une fois pour recopier une image après avoir redimensionné une partition (j'ai donc monté le fichier dd-Image et fait cp)
sBlatt

Désolé d'être si stupide à ce sujet, mais je dois manquer un point incroyablement simple ... Tout ce que je lis semble impliquer que NAT permet à l'invité d'accéder à l'hôte par défaut (une connexion dans l'autre sens nécessite un pont) .. D'accord J'ai eu mes trois suppositions (plus comme trente!). J'ai réussi à accéder aux dossiers partagés de VBox uniquement lorsque les compléments invités sont installés. Je ne peux pas installer ces addons dans une exécution LiveCD, donc je suis à nouveau bloqué. Comment puis-je accéder au système de fichiers de l'hôte connecté NAT à partir de l'invité (pas d'extensions)? Je suppose que je dois faire quelque chose sur l'hôte, mais je ne sais pas ce que c'est?
Peter.O

1

Je n'ai pas essayé cela moi - même, mais la description semble assez réaliste pour essayer.


L'article que vous mentionnez est sur un chemin similaire à celui où je veux aller. Si j'ignore ses problèmes avec Fedora LVM, cela résout presque l' un de mes problèmes: comment obtenir la partition VM dans l'environnement Host. Il mentionne un outil VirualBox VBoxManage qui permet de monter une image de disque VM brute sur l'hôte. Cependant, il y a un problème avec cet article dans la mesure où il concerne un hôte Windows. Le nom de la commande est correct, mais aucun des arguments n'est reconnu ... mais je suppose que le même est disponible pour Linux ... Quelqu'un connaît-il la syntaxe?
Peter.O

Essayez d'exécuter "VBoxManage internalcommands" - il imprime certaines informations d'utilisation. Cela pourrait sembler suffisant.
Serge Broslavsky

1

1> faites un tar de votre système d'exploitation virtualBox

2> commencez par une distribution en direct

3> décompressez votre OS virtualBox dans la / les partition (s) cible (/ dev / sda1 par exemple)

4> rendre la partition amorçable (fdisk peut vous aider): # fdisk / dev / sda Commande (m pour l'aide): a (a = activer / désactiver un indicateur amorçable) Numéro de partition (1-4): 1 (1 = / dev / sda1) Commande (m pour l'aide): q (q = exit)

5> installez grub dans mbr (https://wiki.ubuntu.com/Grub2) # mount / dev / sda1 / mnt / # mount --bind / dev / mnt / dev # mount --bind / proc / mnt / proc # mount --bind / sys / mnt / sys # cd / mnt && chroot. # (chroot) update-grub # (chroot) grub-install / dev / sda (NOT / dev / sda1!) # (chroot) grub-install --recheck / dev / sdX

6> Profitez ...


1
Pour goudron mon VirtualBox OS semble si facile ... mais pas pour moi ... Par exemple; Où dois-je le tarer? Je suppose que la manière appropriée de tarer un système de fichiers est de ne pas l'utiliser ... alors j'ai démarré la VM via un LiveCD ... Cela m'a donné accès au lecteur de la VM via le LiveCD / media .... mais comment puis-je obtenir les données de la machine virtuelle. Les dossiers partagés de VirtualBox nécessitent les GuestAddons, qui nécessitent un redémarrage, qui redémarre le Live CD à son état sans addons ... Ou ai-je oublié quelque chose à propos des dossiers partagés de VirtualBox /
Peter .O

Vous pouvez tar (rsync également) le système directement même s'il est en cours d'exécution (c'est Linux ...):
daniele

Vous pouvez tarer le système directement même s'il est en cours d'exécution. C'est Linux ;-). Installez d'abord ces packages: sshfs ( fuse.sourceforge.net/sshfs.htm ) et montez un vrai répertoire dans virtualbox. Par exemple, vous pouvez utiliser, dans virtualbox comme je l'ai dit, une clé USB (montée, laissez-moi dire, dans / media / pendrive) de cette manière: # sshfs root@10.0.2.2: / media / pendrive / mnt After tar directement depuis votre EXÉCUTION de la boîte virtuelle à la clé USB (canette Linux): # cd / # tar -cvpzf /mnt/backup.tgz --exclude = / proc / --exclude = / lost + found / --exclude = / mnt / --exclude = / sys / /
daniele

1

Que voulez-vous exactement migrer de l'installation? Si vous ne vous souciez que des données et des préférences des utilisateurs, vous pouvez probablement tout copier de votre répertoire personnel sur la machine virtuelle vers un système de fichiers en dehors de la machine virtuelle (un lecteur de clé, par exemple), copier ces fichiers vers une nouvelle installation Ubuntu, puis réinstallez tous les programmes que vous aviez installés sur la machine virtuelle. Cela dépend de la façon dont vous avez personnalisé l'installation de la machine virtuelle, par rapport au niveau de difficulté que présenteraient les autres solutions ici.


J'utilise Ubuntu (premier utilisateur Linux) sur du vrai matériel. J'ai beaucoup appris , mais mon système a accumulé beaucoup d'encombrement. J'ai modifié un paramètre et oublié où je l'ai défini, etc. Mon idée est d'utiliser l'expérience (minimale) que j'ai maintenant et de créer un système de machine virtuelle parallèle, sans les erreurs, puis de le mélanger au matériel principal . Je peux prendre mon temps à ce sujet et encore expérimenter sur l'actuel. C'est aussi un bon projet "d'apprentissage" ... mais j'ai l'impression d'avoir mordu un peu plus que je ne peux mâcher :) ... y aller lentement ...
Peter.O

1

J'aime utiliser rsync pour sauvegarder mon système. C'est bon pour un répertoire home directroy ou ect mais ce n'est peut-être pas ce que vous recherchez en termes de migration complète du système. Pour utiliser rsync, vous devrez installer ubuntu sur les deux systèmes. Mettez à jour les deux afin que les packages soient les mêmes et soient au même niveau (ce n'est pas obligatoire mais cela facilite les choses). Ensuite, pour copier votre répertoire personnel de server1 vers server2, vous pouvez exécuter ce qui suit sur server1:

$rsync -avz /home/username/ username@server2:/home/username/

Ce que j'aime à ce sujet, c'est que rsync calculera les différences entre les répertoires et transférera les modifications plutôt que tout. De cette façon, vous pouvez garder votre sauvegarde à jour en exécutant sur le serveur2 (pour sauvegarder sur le serveur1):

$rsync -avz /home/username/ username@server1:/home/username/

hth


Merci, j'ai utilisé rsync pour sauvegarder mes partitions non-OS (c'est-à-dire .. les données, comme la musique, etc.). J'aime aussi la façon dont rsync fonctionne; très efficace. Mon principal "problème" est que je ne sais pas si une simple copie de fichier de la VM vers des partitions équivalentes fonctionnera. Par exemple. Comment Ubuntu gérera-t-il les différents MATÉRIELS? Le détecte-t-il automatiquement et s'ajuste-t-il au démarrage? Windows ne le ferait certainement pas! et je ne sais pas encore comment gérer les points de montage: je ne veux pas resynchroniser mon disque TeraByte sur la partition OS; et GRUB me fait tourner. Ce sont les petites choses amusantes que je ne connais pas encore assez ..
Peter.O
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.