Comment augmenter la taille du disque dur de la machine virtuelle?


257

entrez la description de l'image ici

L'espace disponible sur ma machine virtuelle WinXP est saturé. Je ne lui ai alloué que 10 Go d'espace libre lors de sa création. Existe-t-il un moyen facile de l’augmenter à 20 Go, par exemple? Je ne vois aucune option évidente dans les paramètres de VirtualBox.


La suggestion ci-dessous donne cette erreur

wim@wim-ubuntu:/media/data/winxp_vm$ VBoxManage modifyhd wim.vdi --resize 20000
VBoxManage: error: Cannot register the hard disk '/media/data/winxp_vm/wim.vdi' {46284957-2c09-4e70-8a49-bfbe0f7f681d} because a hard disk '/home/wim/VirtualBox VMs/winxp_vm/wim.vdi' with UUID {46284957-2c09-4e70-8a49-bfbe0f7f681d} already exists
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBox, interface IVirtualBox, callee nsISupports
Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, AccessMode_ReadWrite, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 210 of file VBoxManageDisk.cpp

La suppression du fichier .vdi de VirtualBox avant d'appeler la commande VBoxManage, puis son ajout, ont abouti. Mais maintenant, je ne peux pas démarrer la machine virtuelle, je reçois cet écran inquiétant:

entrez la description de l'image ici

Au fait, ça dit FATAL: Could not read from the boot medium! System halted.


Le vdi doit être rattaché à la machine virtuelle après la commande VBoxManage. De plus, la partition devra être redimensionnée à partir de WITHIN windows, car vous aurez cet espace vide:

entrez la description de l'image ici

J'ai été en mesure de redimensionner facilement la partition à l'aide d'un logiciel gratuit appelé EASEUS Partition Master 9.1.0 Home Edition .


3
Votre problème est que vous avez lié de manière symbolique le disque à un emplacement "/ media / data" et qu'il ne réside pas sur l'emplacement "/ home / wim / VirtualBox" d'origine. J'ai répondu avec comment j'ai résolu ce problème.
Stølsvik

1
J'ai détaillé mon expérience ici: kmonsoor.wordpress.com/2012/05/26/virtualbox-increase-disk-size la réponse "acceptée" ci-dessous est loin d'être exacte .
kmonsoor

Il existe une autre possibilité de "copier le vdi existant" dans un "nouveau vdi vide, dont la taille est supérieure à celle existante" ( réf . Justintung.com/2011/01/06/… )
parasrish le

notez également que, le redimensionnement n’aide en rien, car la taille de "vdi" aurait augmenté, mais, sur la base de "vm-os-installation", votre partition principale reste la même et l’espace récemment alloué est généralement affiché "non alloué" ". Vous devez donc faire la "réallocation de partition" (voir le lien ci-dessus).
parasrish

Réponses:


325

Ouvrez un terminal et naviguez jusqu'au dossier contenant l'image disque VirtualBox, puis utilisez la commande suivante:

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB

remplacer YOUR_HARD_DISKet SIZE_IN_MBavec votre nom d'image et la taille désirée. sudopeut être nécessaire sur certaines machines ou vous pouvez rencontrer une erreur. Cette réponse et une explication plus complète se trouvent ici, sur webupd8 . Nous remercions Andrew d’avoir posté cette réponse.

Après le redimensionnement, l’ espace supplémentaire du disque dur virtuel doit être partitionné et formaté pour que l’invité puisse l’utiliser. Cela peut être fait avec gparted en démarrant l'invité à partir d'un ISO en direct. Nous pouvons également redimensionner la partition existante en utilisant gparted. Pour cela, nous devrons peut-être désactiver /swapet créer une nouvelle partition de swap.


20
+1 Je viens de l'utiliser pour augmenter la taille de mon disque Windows 7 de 20 à 30 Go, et tout s'est très bien déroulé (aucune désinscription, etc., requise). $ VBoxManage modifyhd Windows7.vdi --resize 30720 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Au début, Windows ne détectait pas l'augmentation de l'espace, mais après une mise hors tension, je pouvais ensuite utiliser l'outil de gestion de disque intégré pour augmenter la taille de ma partition C:.
Jonik

3
+1, c'est certainement la manière la plus propre de le faire.
Starx

20
@asd Changer la taille du disque ne suffit pas, vous devez également redimensionner la partition.
Bruno

5
Je pense que dans les versions récentes de VirtualBox, c'est .\VBoxManage.exe modifymedium disk 4d30d154-f8c2-4a3b-bd8b-ddcfbfe64aaf --resize 30720maintenant. modifyhdCela fonctionne aussi bien - il existe une compatibilité ascendante avec les commandes plus anciennes.
TranslucentCloud

2
Je viens de redimensionner la taille du fichier vdi de 25 Go à 120 Go, mais le gestionnaire de disques du système Windows7 ne peut toujours pas voir l'espace non alloué. Cela est causé par un fichier d'instantané (j'ai déjà un instantané), mais lorsque j'essaie de supprimer l'instantané, le rapport de la virtualbox se bloque et ne peut donc pas supprimer l'instantané. Des idées? Mon invité win7 voit toujours 25G. Merci.
ollydbg23

25

Ce qui suit a fonctionné pour moi:

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB

Cependant, je comprends que le kilométrage peut varier :-) En ce qui concerne le redimensionnement de la partition, sous Windows 7, j’ai été en mesure de redimensionner à l’écran que vous avez montré en cliquant avec le bouton droit de la souris sur le lecteur C: dans le panneau inférieur et en sélectionnant étendre le volume.

Écran de gestion informatique


12
sudon'est pas nécessaire. Cela pourrait corrompre les autorisations de votre répertoire personnel et vous obliger à utiliser sudopour virtualbox, ce qui est une mauvaise idée.
Lekensteyn

1
@Lekensteyn: Il est bon de savoir que ce n'est pas nécessaire. Je l'ai utilisé parce que d'autres avaient dit que cela ne fonctionnait pas sans être root. En ce qui concerne les corruptions de permissions, chmod fonctionne bien pour corriger de telles erreurs.
Richard Povinelli

@Lekensteyn: chown corrigera les erreurs de propriété. Je parle de chmod et de chown, car j'ai dû résoudre le problème que vous avez mentionné à plusieurs reprises :-)
Richard Povinelli

2
C'est bien pour Windows, mais si vous avez un OS invité Linux, ce lien peut vous aider à redimensionner les partitions: forums.virtualbox.org/viewtopic.php?f=35&t=50661
Jon

Si vous utilisez Windows sous Linux, vous devez suivre ces options et étendre le disque, sinon Windows ne rajoutera pas l'espace supplémentaire que nous avons ajouté
Ajith R Nair

18

Wim, je pense que vous devrez d'abord le désenregistrer de Vbox. Fichier, Media Manager, cliquez sur votre disque dur et annulez l’enregistrement. Puis réessayez.


2
Non requis sous Linux dans VirtualBox. Il fallait juste arrêter le système d'exploitation invité complètement en premier.
Underverse

15

Vous pouvez également le faire en utilisant le menu VirtualBox:

Sélectionnez File->Virtual Media Manager ...

Une fenêtre s'ouvrira: entrez la description de l'image ici

Sélectionnez votre disque et sélectionnez Properties. Maintenant, déplacez simplement le curseur en bas.

Après le démarrage de la machine virtuelle, Windows ne reconnaîtra pas le nouvel espace.

Dans Windows, ouvrez Computer Management(recherchez-le dans le menu Démarrer), sélectionnez Storage-> Disk Managementdans le menu de gauche. Sélectionnez votre partition (probablement C :), faites un clic droit dessus et sélectionnez Extend Volume .... Maintenant, il suffit de cliquer sur l'assistant et vous avez terminé.


Avez-vous besoin de faire Releaseavant cela? Comme actuellement, le curseur est grisé. Ou avez-vous choisi la partition dynamique?
Royi

Royi: lorsque vous créez le disque virtuel, assurez-vous qu'il a une taille dynamique.
lenooh

10

Après avoir redimensionné et ne pas être en mesure d’afficher le redimensionnement sur mon ordinateur invité Windows XP, j’ai dû

  1. cloner
  2. redimensionnez-le avec "VBoxManage modifyhd winxppro \ Clone.vdi --resize 30720" et tout a fonctionné

J'ai vu dans d'autres forums que des instantanés peuvent interférer pour le redimensionnement et ne pas être en mesure de supprimer tous les instantanés pour les différentes erreurs que j'ai eues, la seule solution trouvée pour moi était de le cloner pour supprimer les instantanés puis le redimensionner, et tout a fonctionné. Pour redimensionner les fenêtres extérieures, un CD de démarrage gparted que vous pouvez trouver ici peut aider.


6

J'ai eu le même problème où j'avais déplacé un disque et remplacé l'original par un lien symbolique. Cela fonctionne bien par la suite, mais vous rencontrez des problèmes avec la commande 'modifyhd', qui canonise apparemment le chemin d'accès au fichier vdi lorsque vous l'utilisez. Cela donne l’impression que vous essayez d’ajouter un nouveau disque avec le même UUID mais sur un chemin différent, ou quelque chose du genre.

Il y avait deux problèmes:

  1. Le disque devait être supprimé de la machine virtuelle qui l’utilisait, mais aussi "de la liste des disques virtuels de VirtualBox". Cela a été corrigé avec la commande 'closemedium', qui le supprime de cette liste.

  2. Le disque à redimensionner était un "disque fixe" au lieu de "dynamique" et seuls les disques dynamiques peuvent être redimensionnés. Cela a été corrigé avec une commande 'clone' (le clone est dynamique), puis redimensionner le disque résultant.

Ceci est mon journal pour la façon dont cela a été fait. Remarquez que je ne suis à aucun moment en train d’exécuter en tant que root , sauf lorsque je redimensionne ensuite la partition et le système de fichiers.

SUPPRIMER L'ASSOCIATION SUR LE DISQUE DE VM.

PROBLÈME PERSISTE ENCORE:

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage modifyhd TestInception\ 64\ bit.vdi --resize 8192
VBoxManage: error: Cannot register the hard disk '/datadisk/VirtualBox VMs/TestInception 64 bit/TestInception 64 bit.vdi' {6cd99209-e4db-4178-a6c2-53f9581b1fad} because a hard disk '/home/virt_box/VirtualBox VMs/TestInception 64 bit/TestInception 64 bit.vdi' with UUID {6cd99209-e4db-4178-a6c2-53f9581b1fad} already exists
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBox, interface IVirtualBox, callee nsISupports
VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 178 of file VBoxManageDisk.cpp

Ah, le disque est toujours "dans le système":

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage list hdds
UUID:        ba58276a-bbe1-4354-8ae5-246bdac390c8
Parent UUID: base
Format:      VDI
Location:    /home/virt_box/VirtualBox VMs/TestInception 32 bit/TestInception.vdi
State:       locked write
Type:        normal
Usage:       TestInception 32 bit (UUID: a693ac62-7caa-4f11-9d00-51d3a149f5f7)

UUID:        6cd99209-e4db-4178-a6c2-53f9581b1fad
Parent UUID: base
Format:      VDI
Location:    /home/virt_box/VirtualBox VMs/TestInception 64 bit/TestInception 64 bit.vdi
State:       created
Type:        normal

Supprimez / supprimez le disque de la liste de disques VirtualBox ("closemedium"):

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage closemedium disk 6cd99209-e4db-4178-a6c2-53f9581b1fad
virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage list hdds
UUID:        ba58276a-bbe1-4354-8ae5-246bdac390c8
Parent UUID: base
Format:      VDI
Location:    /home/virt_box/VirtualBox VMs/TestInception 32 bit/TestInception.vdi
State:       locked write
Type:        normal
Usage:       TestInception 32 bit (UUID: a693ac62-7caa-4f11-9d00-51d3a149f5f7)

Essayez le redimensionnement à nouveau:

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage modifyhd TestInception\ 64\ bit.vdi --resize 8192
0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

DAMN, "taille fixe" NE FONCTIONNE PAS! 'clonehd' à la rescousse, car cela laisse un disque cloné 'alloué dynamiquement':

virt_box@TestBox:/datadisk/VirtualBox VMs/TestInception 64 bit$ VBoxManage clonehd TestInception\ 64\ bit.vdi TestInception\ 64\ bit-cloned.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: 8e237500-173b-401a-9e63-9e64da110da9

MAINTENANT FAITES LE REDIMENSIONNEMENT (instantané):

virt_box@TestBox:/datadisk/VirtualBox VMs/TestInception 64 bit$ VBoxManage modifyhd --resize 8192 TestInception\ 64\ bit-cloned.vdi 
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

ALORS ATTACHER À CERTAINS VM, POUR REDIMENSIONNER. Ceci est fait en tant que root. Suppose que vous n’avez qu’une seule partition et éventuellement un échange.

# fdisk /dev/sdb  # <- The extra disk, just attached to be resized
// The procedure looks like this:
// m - print help
// p - print table
// d ... - delete partition (delete both if you have root and swap)
// n - new partition (create root/first partition starting on exact same sector as before, typically 2048, but ends on last, or last minus swap)
//  ... n.. (.. then add the swap partition. Calculate how many sectors using original table)
// t - change type of partition (swap partition, if any, to 82 - not 83 which is "normal Linux").
// w - write partition table (write out, with the resized partition)

# e2fsck -f /dev/sdb1

e2fsck 1.42.5 (29-Jul-2012)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb1: 99918/122160 files (0.3% non-contiguous), 471032/487936 blocks

# resize2fs /dev/sdb1

resize2fs 1.42.5 (29-Jul-2012)
Resizing the filesystem on /dev/sdb1 to 1965824 (4k) blocks.
The filesystem on /dev/sdb1 is now 1965824 blocks long.

Cela a fonctionné pour moi, a suivi le guide ici: yinfor.com/2015/05/…
marijnz0r

4

Cela a fonctionné pour moi avec Virtualbox 5.2.6 installé sur la machine hôte Ubuntu 16.04 et Windows 10 Guest: ouvrez Virtualbox Manager, cliquez sur Outils globaux (coin supérieur droit) et choisissez Virtual Media Manager. Cliquez sur l'onglet Disque dur et sélectionnez votre système d'exploitation invité. Au bas de la boîte, cliquez sur l'onglet Attributs. En bas, vous pouvez voir la taille du disque virtuel, et avec le curseur, vous pouvez l'augmenter à votre guise. (Vous pouvez seulement augmenter, pas diminuer la taille avec cette méthode). Cliquez sur Appliquer. Démarrez votre système d'exploitation invité Windows, ouvrez Gestion de l'ordinateur, cliquez avec le bouton droit de la souris sur le lecteur C: et sélectionnez Étendre le volume pour étendre le système de fichiers avec la partie non allouée.

C'est tout ce que je devais faire, fonctionne parfaitement pour moi.


A bien fonctionné. Cela ne devrait-il pas être la réponse acceptée, du moins pour les versions récentes de VirtualBox?
Toujours apprendre

2

Une méthode sûre consiste à procéder de la même manière que si vous utilisiez un disque dur plus grand qui ne fonctionne pas dans une machine virtuelle. Commencez par utiliser ccleaner ou un programme similaire sous XP pour nettoyer tous les fichiers inutiles qu’il peut. Créez ensuite un disque dur virtuel secondaire de la taille souhaitée. Démarrez avec l'ISO clonezilla dans votre lecteur ODD virtuel et clonez dessus avec l'option "redimensionner à la nouvelle taille de la partition" sélectionnée. Configurez ensuite le nouveau disque dur virtuel en tant que disque principal et ne supprimez pas l’ancien tant que vous ne saurez pas que cela a fonctionné.


2

J'ai reçu la même erreur jusqu'à ce que j'utilise sudo pour exécuter la commande, puis que je travaille parfaitement, qu'il reste encore à créer une partition à partir de l'invité pour utiliser de l'espace supplémentaire.


Certaines personnes ont signalé que le répertoire personnel avait de mauvaises autorisations.
Jonathan

2

Assurez-vous que vous êtes connecté en tant qu'utilisateur avec des autorisations en écriture sur le fichier image du disque. Puis courir

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB  

A travaillé pour moi à la première fois de demander


1
Avez-vous eu à réinstaller / reformater / repartitionner? ou vient-il juste de démarrer?
Jonathan

2

Si votre ordinateur hôte est Windows, vous pouvez exécuter la commande suivante pour augmenter ou réduire la taille du disque vdi dans une boîte virtuelle:

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd "C:\Users\your_user_name\VirtualBox VMs\Ubuntu18LTS\Ubuntu18LTS.vdi" --resize 20000

Dans la commande ci-dessus, remplacez your_user_name par le véritable utilisateur Windows et 20000 correspond à la taille du disque, en Mo.


1

En fait, il semble que modifyhdcela ne vous soit pas bénéfique dans certains cas. En fait, j'ai développé mon WinXP vdi en clonant l'image après expansion.

Voici le guide complet, étape par étape, qui a fonctionné pour moi il y a deux semaines: http://libtronics.com/2011/07/resize-virtualbox-disk-for-winxp-guest/


Pouvez-vous s'il vous plaît expliquer les étapes ici? Les réponses ne contenant guère plus qu'un lien vers un autre site sont généralement mal vues et peuvent être supprimées .
Tom Brossman

1
Eh bien, vous devez comprendre ce que modifyhd fait, ce qui n’est rien d’autre que l’extension du disque virtuel sous-jacent, c’est tout. Vous devez toujours développer le système de fichiers qui s'y trouve.
Marcin Kaminski

1

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 empêche cette erreur:

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

⚠️ 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 l'invite de commande 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 VBoxManagen'est pas reconnu en tant que commande, spécifiez son chemin d'accès 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.


1

Pour ceux qui ont Windows sur un disque dur virtuel, comme moi, convertissez d’abord en VDI en clonant avec la commande Linux suivante. (Remarque: la machine virtuelle Windows est désactivée.)

VBoxManage clonehd Windows10.vhd Windows10.vdi --format vdi

Cela va dupliquer le vhd.

Ensuite, le VDI peut être redimensionné avec ce qui suit. Notez que la VDI ne croîtra pas tant qu'elle ne sera pas utilisée.

VBoxManage modifyhd Windows10.vdi --resize 80000

Après avoir réparé le montage de stockage dans le logiciel hôte de la machine virtuelle et mis la machine sous tension, Windows démarre, mais la partition aura toujours la même taille. Google pour un outil Windows capable de redimensionner la partition du lecteur C. J'ai utilisé EaseUs Partition Master pour développer la partition du lecteur C à ma nouvelle taille.

Enfin, le disque dur virtuel peut être supprimé.

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.