Impossible de démarrer après le redimensionnement du disque dur vhd dans VirtualBox

15

Dans Windows 7, j'ai configuré une autre machine virtuelle Windows 7 dans VirtualBox. Cela a très bien fonctionné. Ensuite, j'ai dû augmenter la taille HD du VHD. J'ai donc utilisé l'utilitaire VBoxManage pour le faire avec le commentaire suivant:

VBoxManage modifyhd "c:\VMs\Win7.vhd" --resize 30000

Ensuite, j'ai essayé de réexécuter la machine virtuelle, mais elle ne peut pas être démarrée et me donne l'erreur suivante:

FATAL: Aucun support de démarrage trouvé! Système est arrêté.

Ensuite, j'ai essayé de voir ce qui se passe à l'intérieur du disque dur virtuel et d'essayer de le joindre à l'intérieur de la gestion des périphériques et il dit qu'il ne peut pas être attaché car le fichier ou le répertoire est corrompu et illisible .

Une idée de ce qui s'est mal passé ici et comment puis-je enregistrer ma machine virtuelle dans ce fichier VHD?

tugberk
la source
Je viens d'avoir exactement le même problème et je n'ai trouvé aucune solution utile en ligne, j'ai donc commencé à analyser le disque dur virtuel à la main selon la documentation de Microsoft. Actuellement, il semble qu'il y ait un bug dans l'implémentation de modifyhd où il n'a pas ajusté l'offset aux blocs de données après avoir développé la table d'allocation des blocs. J'ai besoin de faire plus d'expriments pour le vérifier.
billc.cn
Sur VirtualBox 4.3.10, j'ai redimensionné un fichier .vhd. Il semble que non seulement il n'a pas ajusté les pointeurs de la table d'allocation de blocs, mais il a étendu la table d'allocation de blocs dans le premier bloc de données, en écrasant mon MBR et ma table de partition. N'utilisez pas VirtualBox pour redimensionner les fichiers .vhd!
Aaron

Réponses:

12

Malheureusement, la documentation VirtualBox pour l'option VBoxManage --resize est trompeuse. Vous ne pouvez pas simplement augmenter la taille de l'image disque et tout fonctionner correctement. Les informations de partition de disque dans l'image doivent être ajustées de sorte que le système d'exploitation invité connaisse la disposition du «lecteur» que l'image disque simule. Vous effectuez cet ajustement en téléchargeant une image de CD amorçable qui contient un éditeur de partition et en démarrant la machine virtuelle sur ce CD. Vous utilisez ensuite l'éditeur de partition pour ajuster les partitions de l'image disque pour utiliser l'espace ajouté.

Il y a un bon résumé de la procédure ici ; passez simplement à l'étape 4.

Kyle Jones
la source
Eh bien, c'est une déception. Cela signifie que je viens de jeter les 3 heures de travail. Merci pour l'info.
tugberk
4
J'ai suivi la belle rédaction (après avoir redimensionné mon vhd et je n'ai pas pu démarrer à partir de celui-ci), et GParted n'a montré aucune partition sur le disque dur, seulement 50 Go d'espace non alloué. Est-ce à dire que modifyhdle lecteur a foiré au-delà de toute réparation?
GSerg
1

J'ai eu le même problème et j'ai réussi à récupérer les données en utilisant le LiveCD GParted

  1. Créer un nouveau disque dur virtuel pour recevoir les données copiées (créer des partitions et un format)
  2. Téléchargez le LiveCD GParted et démarrez sur VirtualBox
  3. Sélectionnez l'appareil -> tentative de sauvetage des données
  4. Cliquez sur OK et après la numérisation, cliquez sur Afficher (cela montera / tmp / gparted-roview-XXXXXX)
  5. Sur le terminal, montez le deuxième VHD (sudo mount / dev / sdb1 / mnt)
  6. Copiez les fichiers (sudo cp -R / tmp / gparted-roview-XXXXXX / * / mnt

Après cela, vous pouvez arrêter la machine virtuelle et monter le disque dur virtuel sur le Gestionnaire de périphériques Windows.

Edison Henrique Andreassy
la source
1

Ici, ils expliquent le problème (en espagnol)

Sommaire:

une. «vboxmanage modifyhd (resize)» génère une erreur dans de nombreux systèmes (versions Windows NT5, 9x, Server et x86). Le résultat est une partition corrompue, très difficile à récupérer

b. Vous devez exécuter "vboxmanage modifyhd (redimensionner)" (pour redimensionner le VDI) dans le chemin qui contient tous les fichiers et dossiers associés au VDI. Regardez l'image

entrez la description de l'image ici

entrez la description de l'image ici

Recommandation:

Remplacez "vboxmanage modifyhd" par "vboxmanage clonehd"

  1. Créez un nouveau disque virtuel VDI (avec la taille que vous souhaitez développer). Exemple: Old.vdi avait 50 Go. New.vdi le crée avec 100 Go

    VBoxManage createhd --filename /path/New.vdi --size 100000

  2. Clonez-le avec la commande suivante:

    vboxmanage clonehd /path/Old.vdi /path/New.vdi --existing

Remarque : les deux VDI ne doivent pas être sur le même chemin

  1. Exécutez New.vdi et accédez à Gestion de l'ordinateur Windows et étendez l'espace disque (attribuez l'espace vide). Si vous ne souhaitez pas le faire manuellement, vous pouvez utiliser n'importe quelle application de partitionnement gratuite, comme AOMEI Partition Assistant Standard , GParted et bien d'autres.

la source
mettre à jour la réponse
0

Il convient de noter que j'ai eu exactement le même problème, car j'ai émis la commande modifyhd pendant que l'invité était en cours d'exécution. La documentation officielle ne dit rien sur le fait que vous devez d'abord supprimer les instantanés et que l'invité aurait dû être arrêté.

Mon plan était de redimensionner le disque pendant que la machine était en marche car j'ai un volume dynamique qui pourrait également être augmenté à la volée. Cependant, c'était une mauvaise idée car j'ai redémarré la machine pour obtenir la taille complète du disque, je suis resté dans le noir avec une image corrompue, que je ne pouvais pas restaurer même pas avec testdisk. Testdisk trouve les partitions mais le système de fichiers est gravement endommagé et ne peut pas être réparé.

Alors soyez avisé:

  1. Fusionner tous les instantanés dans l'image de base
  2. Arrêtez le système d'exploitation invité

J'ai répété la procédure sur ma machine avec une image de sauvegarde et le système d'exploitation invité étant éteint, cela fonctionne bien.

Carsten Menke
la source
0

J'ai pu récupérer une image cassée par ce bug. Contrairement à Edison, l'image en direct divisée n'a rien trouvé. Voici ce que j'ai fait:

  • Tout d'abord, étant donné que le support VBox pour VHD est apparemment bogué et terrible, commencez par convertir le VHD en VDI avec VBoxManage clonehd foo.vhd --format vdi foo.vdi. Lorsque j'ai sauté cette étape, j'ai pu récupérer des fichiers à partir de l'image mais elle se "cassait" à nouveau après quelques redémarrages. Je suppose que le bogue fout vraiment le fichier VHD de manière à ce que les E / S ultérieures le "redéfinissent" ... VBox ne semble pas avoir ces problèmes avec VDI, j'ai donc abandonné VHD.

  • Démarrez dans WinPE, l'environnement de préinstallation de Windows. Comment faire cela pourrait être un article en soi. Si vous n'êtes pas familier avec ceci, voici un raccourci: démarrez à partir d'un DVD d'installation de Windows (Vista ou supérieur) et appuyez sur shift-F10 une fois que l'interface graphique s'affiche, il vous donnera une invite de commande.

  • Téléchargez testdisk , trouvez un moyen de l'obtenir sur votre image WinPE (ou une simple clé USB fonctionnerait) et exécutez-le à partir de l'environnement WinPE. (Remarque: WinPE n'a pas WOW64, la couche de compatibilité 32 bits pour les applications 32 bits. Par conséquent, ma configuration WinPE 64 bits avait besoin du binaire testdisk 64 bits.)

  • Testdisk a trouvé les partitions et les a restaurées.

  • À ce stade, les fichiers ont été récupérés mais le chargeur de démarrage a échoué pour plusieurs problèmes. D' abord , j'utilisé diskpartpour marquer la partition comme active ( list disk, sel disk <disk number>, sel par 0, active). Je suis allé plus loin, je ne démarre pas. Je suis retourné dans WinPE et supprimé \boot, puis j'ai couru bcdboot C:\windows /s C:pour réinstaller le chargeur de démarrage.

  • À la fin, j'ai couru chkdisk /Rpour être sûr que l'image était correcte. Cela a pris quelques heures, je n'ai trouvé aucun problème.

asveikau
la source
-1

J'ai eu le même problème, GParted n'a pas du tout reconnu les partitions et il a été montré comme espace non alloué. À ce stade, j'ai compris que les données auraient pu être perdues.

Ensuite, je me suis souvenu d'avoir utilisé testdisk pour rechercher une partition perdue sur des disques durs, alors pourquoi ne pas l'essayer sur des disques virtuels? et ça a marché.

  1. Démarrage depuis GParted, au moment de la rédaction de cette réponse, GParted avait "testdisk" à l'intérieur. Exécutez simplement le terminal, exécutez "sudo testdisk / dev / sda" ou tout ce qui apparaît sur votre ordinateur. Exécutez "sudo fdisk -l" pour afficher tous les disques.
  2. Analysez la table de partition, il découvrira la partition immédiatement, car elle est toujours dans les premiers secteurs. Écrivez une nouvelle partition, une table, puis procédez à GParted pour continuer la récupération, comme indiqué dans ce lien: http://www.howtogeek.com/124622/how-to-enlarge-a-virtual-machines-disk-in-virtualbox -ou-vmware /
  3. La prochaine fois que vous souhaitez faire cela, faites d'abord une copie de votre VDISK.
  4. J'ai remarqué dans le lien ci-dessous qu'ils créent un nouveau VHD puis clonent avec --existing: http://tips.kaali.co.uk/2012/03/16/expand-or-increase-the-size-of-virtual- box-vdi-dis / Je n'ai pas encore essayé, mais j'ai récupéré mon disque avec les instructions ci-dessus.

J'espère que cela aide quelqu'un.

Yousef
la source
Veuillez citer les parties essentielles de la réponse à partir des liens de référence, car la réponse peut devenir invalide si les pages liées changent.
DavidPostill