web-dev-qa-db-fra.com

Récupérer des fichiers depuis une machine virtuelle Virtualbox endommagée .vdi

Mon Ubuntu 12.04.1 fonctionnant sur virtualbox a manqué d’espace lors de l’installation du logiciel, et il est maintenant pas de redémarrage . J'ai des fichiers à récupérer. J'ai le fichier ubuntu64.vdi sur mon ordinateur portable Windows 7 (hôte) et je me demandais s'il était possible de récupérer les fichiers à partir du fichier vdi.

En parallèle, j'ai généré une nouvelle machine 12.04.1 sur une virtualbox dans le même ordinateur portable, et j'utiliserai celle-ci à la place de celle borkée.

Je peux ajouter le borked vdi à la liste des disques du disque de travail. Ensuite, j'ai utilisé gnome nautilus pour monter le disque bouché.

Je peux trouver les fichiers ici, mais ils ont environ 2 mois. Je pense que cela coïncide avec la dernière fois que j'ai créé un instantané de la machine sur une boîte virtuelle, mais pas la dernière fois que j'ai eu une machine en état de marche, qui était hier. Existe-t-il un moyen de monter le vdi hier, juste avant son crash?

ÉDITÉ:

Voici ce que Virtual Media Manager me dit à propos de mon fichier ubuntu64.vdienter image description here

EDITED2:

J'ai copié mon ubuntu.vdi sur une clé USB externe avec beaucoup d'espace disque. J'ai essayé d'utiliser Windows pour le cloner, mais j'ai eu une erreur:

enter image description here

J'ai essayé la même chose du VM en cours de fonctionnement via un dossier partagé du lecteur USB et le clonage a commencé. Pris un bon moment, mais fini avec succès:

root@precise64:/media/sf_E_DRIVE/copy_of_ubuntu64_vm_folder_20140224/ubuntu64# 
VBoxManage clonehd ubuntu64.vdi ubuntu64.raw --format RAW
0%...

10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'RAW'. UUID: 90f99198-18e1-40ee-85fe-c083dcbb1ac3

EDITED3:

Après avoir créé le fichier raw, j'exécute testdisk avec Deeper Search, je reçois une liste comme celle-ci: enter image description here

Après Deeper Search terminé, je reçois une liste comme celle-ci:

enter image description here

Mais je ne sais pas lequel est quel instantané ... Des idées?

23
719016

De la ligne de commande

Si nous utilisons Ubuntu en tant qu'hôte, nous pouvons convertir notre disque .vdi en un disque brut avec la commande suivante:

VBoxManage clonehd <sourcename> <clone.raw> --format RAW

Nous pouvons alors ouvrir testdiskInstall testdisk avec ce fichier pour récupérer des fichiers sur l’image du lecteur virtuel (voir aussi ci-dessous):

testdisk <clone.raw>

D'une machine virtuelle

Si l'image de lecteur VDI cassé est toujours enregistrée avec Virtual Box, nous pourrons peut-être ajouter cette image en tant que lecteur à notre nouvelle machine virtuelle:

enter image description here

Lancez votre Ubuntu virtuel auquel nous avons ajouté le .vdi cassé mais ne montez pas le lecteur .

  1. Créez un répertoire sur une partition montée pour stocker les données collectées (par exemple, ~/rescued),

  2. Installer testdiskInstall testdisk sur la machine virtuelle.

  3. Lancez testdisk depuis un terminal à cet endroit:

    Sudo testdisk
    
  4. Choisissez le lecteur approprié pour la collecte des données (affiché ici pour /sdb) et sélectionnez [Proceed]

    enter image description here

  5. Choisissez la structure de partition appropriée (généralement Intelname__)

  6. Sélectionnez [Analyse] - [Quick Search]

  7. Sélectionnez la partition contenant les données à récupérer (ici, une seule partition NTFS était présente):

    enter image description here

  8. Presse P pour lister les fichiers sur cette partition.

  9. Accédez au répertoire contenant les données. Affichez les noms de fichiers pour vous assurer que vous avez choisi les bons.

  10. Sélectionnez les répertoires ou les fichiers à récupérer à l'aide de : . Tous les fichiers/répertoires sélectionnés seront marqués en vert:

    enter image description here

  11. Appuyez sur les majuscules C copier tous les répertoires/fichiers sélectionnés dans le répertoire de secours qui sera sélectionné à l’étape suivante.

  12. Choisissez un répertoire sur la ou les partitions montées de votre machine virtuelle Ubuntu pour stocker les données récupérées:

    enter image description here

  13. Presse c pour commencer à copier les données du fichier .vdi cassé vers notre répertoire de secours dans votre VM saine.

Remarques:

  • Si nous ne pouvons pas voir nos fichiers avec l’option [Quick Search] dans 6. , il se peut que nous devions effectuer un [Deeper Search]. Cela listera également les partitions précédemment supprimées et écrasées. Nous devons donc nous assurer de sélectionner les partitions appropriées où résident nos données.

  • Si nous avions pris des instantanés du .vdi, nous pourrions les trouver dans ~/.VirtualBox/Machines/<Name of Machine>/Snapshots/{###}.vmdk mais chaque fois que nous aurions utilisé la fonctionnalité d'instantané de Virtual Box, tout changement d'un instantané sera écrit dans un fichier différentiel.

    Pour fusionner le fichier différentiel avec le disque dur, nous devons supprimer tous les instantanés (ce qui n'est probablement pas ce que nous souhaitons, car nous pourrions simplement restaurer un instantané précédent plutôt que d'appeler pour récupérer les données), ou nous devons cloner le lecteur de la machine en utilisant:

    VBoxManage clonehd <name_of_source> <clone>
    

    Ensuite, nous lions le clone à notre secours VM comme indiqué ci-dessus.

  • L'écriture sur le fichier .vdi endommagé ne doit être effectuée qu'une fois les données sauvegardées, car cela pourrait endommager davantage le système de fichiers.

  • Si notre secours Ubuntu est trop petit pour contenir les données sauvées, nous pouvons créer un autre nouveau lecteur virtuel à lier à la machine virtuelle. Ce lecteur doit ensuite être monté dans le VM pour pouvoir y enregistrer des données à partir du disque de test.

21
Takkat

1) Essayez de récupérer l’instantané par l’UUID, utilisez le hack suivant:

  • choisissez UUID de l'état que vous souhaitez récupérer.
  • Ouvrez le fichier .xml, de préférence dans un outil (fonctionne avec Internet Explorer) qui permet de naviguer facilement dans le fichier XML.
  • Au niveau TRÈS INFÉRIEUR, dans la section Contrôleurs de stockage, recherchez l'UUID de l'état actuel et notez le nom StorageController =, type = et les paramètres AttachedDevice type =, port = et device =.
  • Au milieu, trouvez le cliché souhaité.
  • Dans la section Storage Controller (Contrôleur de stockage) de l'instantané, recherchez AttachedDevice avec les valeurs (nom/type/type/port/unité) correspondant aux valeurs extraites ci-dessus.
  • Cette UUID d'image identifie l'image instantanée du disque dur. Supprimez les crochets {} et

entrez la commande C:> VBoxManage clonehd <UUID> CloneDisk.vdi

J'espère que ça aide, j'ai trouvé la solution ici: ( https://forums.virtualbox.org/viewtopic.php?t=791 )

2) si les étapes 1) ne fonctionnent pas, voici une autre étape que vous pouvez essayer. Comment cloner l’état actuel d’un disque:

  • Ouvrez le gestionnaire de média virtuel (Menu: Fichier> Gestionnaire de média virtuel).
  • Naviguez jusqu'au disque dur que vous voulez cloner et développez complètement l'arborescence (utilisez la touche * du pavé numérique).
  • Recherchez le fichier {hexUUID} .vdi associé au VM dont vous voulez cloner l'état actuel. Ce sera (un des) fichiers feuille à la fin d'une branche. Lorsque vous le sélectionnez, le texte "Attaché à:" en bas de la fenêtre indique: "Attaché à:", sans aucun nom (nom de l'instantané) entre parenthèses après celui-ci.
  • Cliquez sur le nom du fichier à droite du champ "Emplacement:" affiché en bas de la fenêtre.
  • Ctrl + C/Copier pour copier le texte dans le presse-papier, ce qui ressemblera à quelque chose comme: (chemin) {b6441469-5ccb-418c-8fdd-73c5e1a17314} .vdi
  • Ctrl + V/Coller et extraire la valeur hexUUID (en supprimant les crochets {}) et exécutez clonehd pour le cloner!

Cette solution est d'ici: ( http://www.i-m-code.com/blog/blog/2012/02/04/virtualbox-clone-snapshots/ ) Les deux parlent principalement du même.

5
Dee

J'ai eu un système Linux corrompu à / et fsckn'a pas pu le réparer . J'ai utilisé l'approche simple suivante:

  1. Ajoutez un nouveau VDI de remplacement à la machine.
  2. Téléchargez un nouvel ISO Linux.
  3. Démarrez et installez un nouveau linux sur le disque que vous avez ajouté à (1).
  4. Montez le disque sur votre nouveau système et copiez les fichiers dont vous avez besoin. Cela signifie généralement que vous devez copier le dossier /home/user/. N'oubliez pas de copier les fichiers cachés (fichiers de paramètres).

A bien fonctionné pour moi. La corruption du disque ne faisait qu’entraver le démarrage, il n’y avait aucune perte de données dans mon dossier personnel.

1
Deleet