web-dev-qa-db-fra.com

Comment redimensionner un fichier vmdk VirtualBox

J'ai manqué d'espace sur un disque de machine virtuelle qui est un vmdk et j'ai besoin de redimensionner l'image virtuelle. Redimensionnement avec la commande

vboxmanage modifyhd Machine-disk1.vmdk --resize 30720

donne l'erreur

Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

Comment puis-je redimensionner une image vmdk?

508
Brian

J'ai été en mesure de redimensionner le vmdk en le clonant puis en le modifiant et en le redimensionnant.

vboxmanage clonehd "virtualdisk.vmdk" "new-virtualdisk.vdi" --format vdi
vboxmanage modifyhd "new-virtualdisk.vdi" --resize 30720
184
Brian

Si vous souhaitez ne plus avoir de disque dur vmdk (vous voudrez peut-être aussi utiliser le disque dans vwmare), procédez comme suit:

VBoxManage clonemedium "source.vmdk" "cloned.vdi" --format vdi
VBoxManage modifymedium "cloned.vdi" --resize 51200
VBoxManage clonemedium "cloned.vdi" "resized.vmdk" --format vmdk

Ce qui précède redimensionnera le disque dur jusqu’à 50 Go (50 * 1024 Mo).

Pour terminer , vous devez également redimensionner le lecteur! Pour ce faire, vous pouvez télécharger gparted iso et démarrer à partir de cet iso pour redimensionner votre lecteur (sélectionnez l'iso dans dans les paramètres de la virtualbox).

P.S. Si votre nouvelle taille est trop petite, vous obtiendrez la même erreur même avec votre nouveau fichier vdi.

760
Luca Borrione

J'ai un client Windows 7 sur un hôte Mac et ce post était très utile. Merci.

J'ajouterais que je n'ai pas utilisé gparted. J'ai fait ça:

  1. Lancer une nouvelle image vmdk agrandie.
  2. Cliquez sur Démarrer, cliquez avec le bouton droit de la souris sur Ordinateur, puis sélectionnez Gérer.
  3. Cliquez sur Gestion de disque
  4. Vous devriez voir de l’espace grisé sur votre lecteur C (dans mon cas)
  5. Cliquez avec le bouton droit sur le lecteur C et sélectionnez Étendre le volume.
  6. Choisissez la taille et allez

Sucré! J'ai préféré cela à l'utilisation d'un outil tiers avec des avertissements sur la perte de données.

À votre santé!

42
CodeChops

VBoxManage fait l'affaire, mais n'oubliez pas que vous devez utiliser GParted ou un autre outil pour allouez l'espace libre créé avec VBoxManage .

jetez un coup d'œil à mon article de blog pour obtenir des informations détaillées et des captures d'écran étape par étape.

31
tvial

En fait, seules ces commandes sont nécessaires:

VBoxManage clonehd "source.vmdk" "cloned.vdi" --format vdi
VBoxManage modifyhd "cloned.vdi" --resize 51200

Ensuite, vous pouvez sélectionner cloned.dvi dans le stockage de l'interface graphique Virtualbox.

Après cela, démarrez les fenêtres virtuelles et développez votre disque C en utilisant les méthodes de Code Chops.

Il n'est pas nécessaire de convertir le fichier * .vdi en fichier * .vmdk.

29
New Bentley

S'agissant d'un fichier vmdk, vous pouvez utiliser vdiskmanager de VMWare, s'il est disponible pour votre plate-forme. VMWare a des versions x86 Linux, Windows et OS X ici .

Et puis vous faites juste:

1023856-vdiskmanager-windows-7.0.1.exe -x 30720M Machine-disk1.vmdk

Cela évite d'avoir à cloner, puis à développer le disque. L'inconvénient est que vous avez besoin de cet outil supplémentaire et que vmdk est le format de disque de VMWare. Vous utilisez toujours Virtualbox. Il peut donc y avoir des incompatibilités.

qemu-img pourrait également fonctionner, mais je ne sais pas s'il prend en charge le redimensionnement des fichiers vmdk. Cela ressemblerait à quelque chose comme:

qemu-img resize Machine-disk1.vmdk +8G

Et juste un rappel, avec les deux, vous devez toujours agrandir la partition après avoir redimensionné le disque sous-jacent. Tous ces outils sont essentiellement dd if=/dev/old_disk of=/dev/new_disk bs=16M.

20
David Ehrmann

Vous pouvez utiliser Vmware Player pour redimensionner un vmdk. Cela supprime la conversion aller-retour (notée dans d'autres publications) si vous souhaitez la conserver au format vmdk. Assurez-vous simplement que lorsque vous ajoutez le vmdk à vmware, ne cliquez pas sur le format de mise à niveau lorsque vous y êtes invité, conservez le fichier actuel au cas où VirtualBox ne l'accepterait pas.

14
micwallace

J'ai essayé toutes les solutions ici, mais rien ne semblait fonctionner. Après des heures de fouilles, j'ai trouvé ce blog et, comme par magie, tout fonctionne. J'ai dû faire de petits ajustements alors voici la version modifiée. Testé avec la version 17.06.0-ce de Docker, version 02c1d87.

Une fois que les développeurs commencent réellement à conteneuriser leurs applications, ils génèrent souvent un grand nombre d'images et occupent rapidement l'espace disque de 20 Go alloué par défaut à la machine virtuelle Docker. Pour vous assurer que la machine virtuelle Docker dispose de beaucoup d'espace disque, nous devons redimensionner/dev/sda1 en un nombre plus raisonnable.

  1. Télécharger Image de démarrage du CD/USB/HD/PXE GParted .
  2. Arrêtez la machine virtuelle Docker docker-machine stop default.

  3. Le programme d’installation du package Boot2Docker est livré avec un volume VMDK, que les outils natifs de VirtualBox ne peuvent pas redimensionner. Afin de redimensionner le volume de disque Docker, clonez d’abord le volume VDI à partir du volume VMDK par défaut vboxmanage clonehd /full/path/to/disk.vmdk /full/path/to/disk_resized.vdi --format VDI --variant Standard.

  4. Redimensionnez le volume VDI récemment cloné à la capacité souhaitée. Nous recommandons au moins 64 Go vboxmanage modifyhd /full/path/to/disk_resized.vdi --resize <size in MB>.
  5. Lancez l'application VirtualBox, sélectionnez default VM et cliquez sur l'engrenage "Settings" (Paramètres) en haut. VirtualBox Manager
  6. Cliquez sur l'icône "Stockage". Supprimez le volume VMDK par défaut. enter image description here
  7. Ajouter un nouveau contrôleur IDE. IDE controller
  8. Montez l’ISO GParted à l’aide de l’option "Ajouter un périphérique CD/DVD". Add CD/DVD Device
  9. Montez le volume VDI cloné à l’aide de l’option "Ajouter un périphérique CD/DVD". Mount volume
  10. Si vous exécutez Docker sur un ordinateur équipé d’un disque dur à semi-conducteurs, assurez-vous que l’option "Solid-state Drive" est sélectionnée pour le volume VDI cloné. Solid-state Drive
  11. Cliquez sur l'icône "Démarrer" pour démarrer la machine virtuelle Docker, qui lancera l'ISO GParted. Sélectionnez “GParted Live (paramètres par défaut)”. GParted Live (Default settings)
  12. Définissez la stratégie de gestion des keymaps sur "Ne touchez pas le keymap". keymaps
  13. Définissez les préférences de langue sur l'option "33", qui correspond à "US English". US English
  14. Sélectionnez l'option “1” pour exécuter “Forcevideo” et configurez X manuellement. Forcevideo
  15. Conservez la résolution par défaut de "1024 × 760" en sélectionnant l’option "2" .1024×760
  16. Conservez le "vesa" par défaut comme carte VGA. Leave blank if default is desired
  17. Conservez le nombre de couleurs par défaut de "24" en sélectionnant l'option "0". Colour depth
  18. Une fois que GParted est lancé, cliquez sur l’icône "Redimensionner/Déplacer". GParted
  19. Définissez la nouvelle taille de volume du disque sur la taille souhaitée en faisant glisser le curseur. Dans cet exemple, la taille maximale est de 127 035 Mo. Cliquez sur le bouton “Redimensionner/Déplacer” pour lancer le processus. Disk volume size
  20. Confirmez l'opération de redimensionnement en cliquant sur le bouton “Appliquer”. Bake it
  21. Mettez la machine hors tension à la fin du redimensionnement. Hard reset, np :)
  22. Supprimez l'ISO GParted. Your almost done
  23. Connectez-vous à la machine virtuelle Docker pour vérifier que le redimensionnement du volume a réussi en démarrant la machine docker-machine start default
  24. Si vous rencontrez des problèmes de réseau, redémarrez le docker-machine
10
Ako

Pour réduire taille d'image, j'utilise les étapes suivantes:

  1. Sur la machine cliente cat /dev/zero > z;sync;sleep 3;sync;rm -f z
  2. Arrêter la machine cliente
  3. Sur l'hôte VBoxManage clonehd "source.vmdk" "cloned.vdi" --format vdi
  4. Sur l'hôte VBoxManage modifyhd cloned.vdi --compact
  5. Sur l'hôte VBoxManage clonehd "cloned.vdi" "resized.vmdk" --format vmdk
10
Londeren

Comme mentionné dans le réponse de Luca, les étapes à suivre sont les suivantes:

  1. Cloner l'image VMDK au format VDI

    VBoxManage clonehd "source.vmdk" "cloned.vdi" --format vdi

  2. Redimensionner l'image VDI

    VBoxManage modifyhd "cloned.vdi" --resize 51200

  3. Cloner au format VMDK

    VBoxManage clonehd "cloned.vdi" "resized.vmdk" --format vmdk

L'étape 3 est facultative si vous pouvez utiliser une image VDI à la place.

Toutes ces étapes peuvent également être effectuées dans l'interface graphique de VirtualBox, sous File -> Virtual Media Manager. Sélectionnez le lecteur que vous souhaitez cloner, puis choisissez Copy. Une boîte de dialogue s'ouvre pour vous permettre de choisir le format et les options du disque. Pour redimensionner une image VDI, utilisez simplement le curseur situé en bas (cliquez sur Properties si elle n’est pas visible).

Enfin, vous devrez peut-être également modifier la taille du disque dans le système d'exploitation invité:

  1. Exécutez le système d'exploitation invité et redimensionnez la ou les partitions du disque. Si vous utilisez Linux, vous pouvez utiliser gparted ou kparted.
9
teekarna

VirtualBox pour Windows

Redimensionner votre fichier de disque tout en en préservant les paramètres de votre machine virtuelle!


Étape 1 - Redimensionner le fichier de disque

Démarrer cmd.exe

cd à Oracle VM répertoire de VirtualBox (sur les systèmes 64 bits: "C:\Program Files\Oracle\VirtualBox\")

Exécutez ces commandes (comme ci-dessus):

VBoxManage clonehd "C:\path\to\source.vmdk" "C:\path_to\cloned.vdi" --format vdi
VBoxManage modifyhd "C:\path\to\cloned.vdi" --resize 51200

L'Explorateur Windows et "Copier l'adresse en tant que texte" via la barre d'adresse devraient vous aider à obtenir le chemin dont vous avez besoin.

Sur le système Windows, le répertoire VirtaulBox VM situé sous votre utilisateur peut contenir un fichier de base de données au format XML contenant les paramètres que vous avez configurés pour votre machine virtuelle. Renommez ce fichier avec une extension .bak (il porte une extension .vbox). Renommez le fichier .vmdk d'origine avec une extension .bak afin d'éviter une autre erreur. Vous pouvez maintenant effectuer la troisième étape en toute sécurité, sans le message d'erreur permettant de reconvertir l'ordinateur au format .vmdk, ou l'erreur "dupliquer le disque".

VBoxManage clonehd "C:\path_to\cloned.vdi" "C:\path_to\source.vmdk" --format vmdk

Un jeton UID vous sera présenté. Copiez ce jeton en le faisant glisser depuis la fenêtre d'interface de commande Windows et en utilisant le raccourci clavier Ctrl+C.

Ouvrez le fichier .vbox.bak dans un éditeur de texte tel que Notepad ++. Vous serez présenté avec un fichier de base de données de type XML. Recherchez ces lignes:

<VirtualBox xmlns="http://www.virtualbox.org/" version="1.16-windows">
  <Machine uuid="{some uid}" name="source disk name" OSType="the_vbox_OS" snapshotFolder="Snapshots" lastStateChange="2043-03-23T00:54:18Z">
    <MediaRegistry>
      <HardDisks>
        <HardDisk uuid="{some uid}" location="C:\path_to\source.vmdk" ...

Sur la ligne <HardDisk uuid="{some uid}" location="C:\path_to\source.vmdk" ..., supprimez l'ancien jeton UID entre les crochets et collez celui que vous avez copié à partir de la fenêtre de commande. Assurez-vous de laisser les crochets en place !

Enregistrez ce fichier et quittez votre éditeur de texte. Renommez le fichier .vbox.bak pour lui redonner son extension attendue de .vbox.


Étape 2 - Supprimer les déchets

Il est maintenant sûr de supprimer les fichiers .bak restant dans le répertoire. Ce qui reste est un .vmdk redimensionné avec une base de données .vbox mise à jour alors que vos paramètres de VirtualBox Manager précédemment préservés.


Étape 3 - Redimensionner la partition du disque pour remplir l'espace libre

Vous pouvez maintenant démarrer le gestionnaire VirtualBox VM et exécuter votre machine virtuelle en utilisant les outils appropriés pour le système d'exploitation afin de remplir le nouvel espace disponible.

Pour machines virtuelles Windows , utilisez diskpart à partir de la commande Invite démarrée à partir de Windows Recovery Consule (partition de restauration) sur SELECT DISK 1, LIST PARTITION et rassemblez la partition. numéro de votre lecteur C:\, puis SELECT PARTITION #. Vous pouvez utiliser le EXTEND SIZE=mb pour redimensionner le lecteur Windows C:\à la valeur appropriée. Assurez-vous de laisser de la place pour les partitions de récupération et de démarrage! Soustrayez 4096 Mo de la nouvelle taille de votre disque virtuel pour obtenir cette valeur, en raison des fichiers de cliché instantané et de récupération Windows.

Pour les machines virtuelles Linux , vous pouvez trouver un .ISOde live que vous pouvez démarrer avec le fichier de disque de la machine virtuelle à l'adresse: http: // gparted.org/ Il vous permettra d'accéder directement à gparted-gtk, une interface utilisateur graphique, à partir de laquelle vous pourrez occuper votre espace libre.

Pour les ordinateurs virtuels PPC/Mac , Disk Utility du Finder vous aidera à remplir l’espace libre, mais vous voudrez peut-être prendre en compte l'option Linux gparted , comme actuellement la seule méthode pour démarrer MacOSX dans VirtualBox est hackintosh, et vous ne pouvez pas étendre votre volume lors du démarrage sous MacOSX. Vous voudrez peut-être aussi modifier temporairement les paramètres de la machine virtuelle pour gparted afin de l'amorcer. Les partitions MacOSX sont reconnues par gparted comme étant les partitions HFS - "Système de fichiers en tas".


Étape 4 - Photos de chats

Parce que l'internet. ;) Vous avez terminé. Profitez de votre nouvelle image disque virtuelle .vmdk redimensionnée avec VirtualBox pour Windows!

8
Robert Smith

Voici un moyen de redimensionner votre disque VirtualBox, qu’il s’agisse d’un disque au format fixe ou dynamique. Plus précisément, cela évite l’erreur que vous aviez lorsque votre disque est au format fixe.


⚠️ Sauvegardez le disque virtuel. Vous ne savez jamais ce qui pourrait mal tourner.

Sur votre hôte:

  1. Ouvrez une fenêtre de terminal.

    Sous Windows: Ouvrez la commande Invite cmd.

  2. Accédez au répertoire contenant le disque virtuel que vous souhaitez redimensionner. Par exemple:

    cd "My VMs"
    
  3. Créez un nouveau disque VirtualBox avec le nom de fichier, la taille (en mégaoctets) et le format souhaités (Standard (dynamique) ou Fixed). Par exemple, pour créer un disque au format fixe de 50 Go appelé MyNewDisk.vdi:

    VBoxManage createmedium --filename "MyNewDisk.vdi" --size 50000 --variant Fixed
    

    Si VBoxManage n'est pas reconnu en tant que commande, spécifiez son chemin complet. Vous le trouverez dans le répertoire d'installation de VirtualBox. Sous Windows, la commande ci-dessus deviendrait:

    "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createmedium
        --filename "MyNewDisk.vdi" --size 50000 --variant Fixed
    
  4. Copiez le disque d'origine sur le nouveau disque.

    VBoxManage clonemedium "MyOriginalDisk.vdi" "MyNewDisk.vdi" --existing
    
  5. Le redimensionnement est terminé! Vous pouvez vérifier les propriétés du nouveau disque si vous voulez:

    VBoxManage showmediuminfo "MyNewDisk.vdi"
    
  6. Changez la machine virtuelle pour utiliser le nouveau disque à la place.

Ensuite, sur votre système d'exploitation invité, vous devez redimensionner les partitions pour utiliser le nouvel espace disponible.

6

Une option simple et rapide:

  1. Éteindre la machine
  2. Créer un nouveau disque de boîte virtuelle avec la taille souhaitée
  3. Déplacer le contenu de l'ancien disque vers le nouveau disque:

    vboxmanage clonehd "source-disk.vmdk" "new-disk.vmdk" --existing
    
  4. Allumer la machine

  5. Vous devrez peut-être redimensionner la partition dans le système d'exploitation pour remplir le reste du disque.

Avertissement

Si le nouveau disque est plus court que la source, vous allez perdre les données situé à partir de la nouvelle position de la taille du disque sur le disque source.

Vous pouvez empêcher cet espace delta de désallocation, où delta = taille (disque source) - taille (nouveau disque), à ​​la fin du disque source dans le système d'exploitation avant l'étape 1.

3
Andre Figueiredo

Je suis ici parce que je devais redimensionner un disque pour mon environnement de développement Docker (CoreOS).

CoreOS docs dit qu'il n'est pas nécessaire de redimensionner la partition du système d'exploitation - c'est faux. Après avoir redimensionné le disque virtuel, vous devez suivre ces instructions et redimensionner la partition du système d'exploitation via GParted:

https://docs.docker.com/articles/b2d_volume_resize/

3
lucasmartins