web-dev-qa-db-fra.com

Pourquoi ne puis-je pas redimensionner un VDI dynamique avec la commande modifyhd?

Je vois ici Comment puis-je augmenter la taille du disque dur de la machine virtuelle .

Cela devrait fonctionner avec une commande comme

VBoxManage modifyhd xp.vdi --resize 2000

Lorsque le VDI a une taille fixe, vous pouvez obtenir cette erreur:

~/VirtualBox VMs/xp$ VBoxManage modifyhd xp.vdi --resize 2000
0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

La discussion et la solution à cela est ici .

Mais je reçois cette erreur alors que mon VDI est dynamique

~/VirtualBox VMs/xp$ VBoxManage showhdinfo xp.vdi
UUID:           8880dc58-cd0c-4ffb-a583-f8dd50eda98e
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/cip/VirtualBox VMs/xp/xp.vdi
Storage format: VDI
Format variant: dynamic default
Capacity:       8192 MBytes
Size on disk:   4693 MBytes
In use by VMs:  xp (UUID: e2b70963-3c26-41cf-88f6-4e03ca721e2d)

Pourquoi donc?

27
user47206

Pour utiliser VBoxManage modifyhd, nous avons les réserves suivantes:

  • Les lecteurs doivent être au format .VDI ou .VHD.
  • Les lecteurs doivent être au format dynamique et non fixes (un disque fixe peut être converti en dynamique en créant un clone).
  • La taille du lecteur n'affectera que la taille logique , pas la taille physique.
  • Réduire un lecteur à une taille égale ou inférieure à sa taille physique n'est pas possible.
  • Pour réduire la taille physique , nous devons remplir l’espace inutilisé avec 0.
  • Un Windows VDI peut devoir être défragmenté avant de réduire sa taille physique.

Dans l'exemple ci-dessus, nous avons tenté de redimensionner un disque dynamique d'une taille physique de 4693 Mo à 2000 Mo, ce qui n'est pas possible. D'où l'erreur.

25
Takkat

Cette solution a fonctionné pour moi:

  1. Éteindre la machine
  2. Créez un nouveau lecteur via l'interface d'administration avec la taille souhaitée
  3. Utilisez VBoxManage clonemedium avec l'indicateur --existing

    VBoxManage clonemedium <source-guid> <destinatin-guid> --existing
    

Remarque : le nouveau disque aura désormais l'espace excédentaire non alloué et vous devrez utiliser gparted pour étendre la taille au maximum.

Vous ne savez pas pourquoi les gars de VirtualBox ne pourraient pas utiliser ce qui précède pour implémenter ceci au lieu de lancer VBOX_E_NOT_SUPPORTED... au moins un lien vers ceci :)

21
ripper234

Voici l'ensemble du processus, je vais essayer d'être aussi détaillé que possible

  1. Assurez-vous que la taille de la machine sur laquelle vous allez grandir est à l'état "Arrêt" (pas à l'état "enregistré" ou autre).

Dans mon cas, il s’agit d’un ordinateur d’une taille de 32 Go que l’on appellera comme SMALL VM

  1. Créer une nouvelle machine virtuelle avec la nouvelle taille souhaitée

Dans mon cas, j'ai décidé de créer une nouvelle machine virtuelle de 70 Go, tout en restaurant le contenu de la petite machine à l'intérieur de cette nouvelle machine virtuelle et je ferai référence à cela sous le nom LARGE VM =

  1. Exécutez la commande VBoxManage list hdds ou Ouvrez le Virtual Media Manager pour obtenir le GUID du SMALL VM (Origin) ainsi que le GUID du LARGE VM (destination)

Avec ces GUID, construisez la commande suivante

VBoxManage clonemedium SMALL_VM_GUID LARGE_VM_GUID --existing

Dans mon cas, Origine - SMALL VM est: 9143127-42b6-478a-afb2-5e58f14218b

Dans mon cas DESINATION - LARGE VM est: bb808b5b-b88c-49b2-a646-3414af906d84

Bien sûr, vos GUID seront différents des miens

Assurez-vous de ne pas inverser les GUID sinon la toute nouvelle machine remplacera le contenu de votre machine existante !!!!

Après vous être assuré de ne pas mélanger l’origine et la destination, exécutez cette commande:

$ VBoxManage clonemedium 39143127-42b6-478a-afb2-5e58f14218b2 bb808b5b-b88c-49b2-a646-3414af906d84 --existant

0% ... 10% ... 20% ... 30% ... 40% ... 50% ... 60% ... 70% ... 80% ... 90% ... 100%

Support cloné créé au format 'VDI'. UUID: bb808b5b-b88c-49b2-a646-3414af906d84

  1. Démarrez le nouveau LARGE VM que vous avez créé à l'étape 2.

  2. Vérifiez dans l'outil de la fenêtre Gestion de l'ordinateur que la machine dispose en fait de plus en plus d'espace inutilisé/non formaté

  3. Si vous préférez, vous pouvez exécuter le "chkdsk" sur le lecteur C pour vous assurer que tout est prêt (cela pourrait vous prendre deux redémarrages sur le LARGE VM)

  4. En utilisant gparted-live * .iso, "insérez-le" dans la nouvelle machine virtuelle et redémarrez-le.

  5. Boot dans l'environnement gparted

  6. Développez votre partition et enregistrez les modifications

  7. "Éjecter" le gparted-live * .iso pour redémarrer Windows

  8. Vérifiez dans l'outil de la fenêtre Gestion de l'ordinateur que la machine a maintenant un plus grand lecteur C pour résoudre vos problèmes spécifiques

J'avais les captures d'écran de ces processus, mais j'ai décidé de ne pas les inclure car cela rendrait ma réponse difficile et intimidante pour les personnes "pressées" d'obtenir de l'espace libre sur leur machine virtuelle Windows.