Sommaire:
VBoxManage.exe modifyhd --resize
peut augmenter (mais pas diminuer) la taille logique de l’image disque (la taille vue par le système d’exploitation invité).
VBoxManage.exe modifyhd inputfile.vdi --compact
peut réduire la taille de l'image du disque physique (la taille du fichier image sur le disque tel que vu par le système d'exploitation hôte). Cela ne change toutefois pas la taille du disque logique. Notez que cela ne fonctionne que si l'espace libre a d'abord été mis à zéro dans l'OS invité.
modifyhd
ne fonctionne qu'avec la variante de format dynamique ("image allouée dynamiquement").
modifyhd
ne fonctionne qu'avec les formats d'image VDI et VHD.
- Si vous utilisez des instantanés, vous devrez cloner le dernier VDI instantané du sous-dossier "Snapshots".
Pour plus de détails, voir section 8.23. VBoxManage modifyhd dans le manuel.
La raison pour laquelle la réduction de la taille du disque logique d’un VDI n’a pas encore été implémentée est pour éviter la corruption des données qui pourrait en résulter, entraînant la création de machines virtuelles non démarrables. Par conséquent, lorsque l' --resize
option est utilisée, la nouvelle taille du disque doit être supérieure à la taille actuelle. Il n'est pas autorisé à être inférieur ou égal à la taille actuelle. En d'autres termes, un disque de 40 Go ne peut être redimensionné qu'à 41 Go ou plus, il ne peut pas être redimensionné à 40 Go (c'est tout bête) ou à 39 Go ou moins.
Les anciennes versions de VirtualBox créaient des fichiers VDI sous un format "fixe". Le nouveau paramètre par défaut consiste maintenant à créer des variantes de format "dynamiques" lors de la création de nouveaux fichiers VDI (image de disque virtuel). (J'imagine que c'est le cas depuis l'introduction de la variante de format dynamique, quelle que soit la version introduite dans.)
Le message d'erreur "L'opération pour ce format n'est pas encore implémentée" signifie donc que votre fichier VDI utilise la variante de format "fixe". Pour résoudre ce problème, vous devrez cloner votre fichier VDI à l'aide de la clonehd
commande. Pour voir quelle variante de format se trouve actuellement votre fichier VDI, vous pouvez utiliser la showhdinfo
commande.
Exemple de travail
Afficher les informations VDI sur le disque actuel.
Commande d'entrée: vboxmanage.exe showhdinfo path\inputfile.vdi
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe showhdinfo "%userprofile%\virt
ualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab.vdi"
UUID: 132e9af1-0428-49f4-bc45-4d84680e17f5
Parent UUID: base
State: created
Type: normal (base)
Location: C:\Users\Name\VirtualBox VMs\sg2_win7_x64_lab\sg2_win7_x64_lab.
vdi
Storage format: VDI
Format variant: fixed default
Capacity: 40960 MBytes
Size on disk: 40962 MBytes
In use by VMs: sg2_win7_x64_lab (UUID: dcd106b3-7ed6-4f19-ad94-820ab4dc10d3)
C:\Program Files\Oracle\VirtualBox>
Voir où il est dit "défaut fixé"? C'est pourquoi il génère l'erreur ci-dessus lorsque vous essayez de le redimensionner.
Clonez l'ancien fichier VDI dans un nouveau fichier VDI.
Commande d'entrée: vboxmanage.exe clonehd path\inputfile.vdi path\outputfile.vdi
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe clonehd "%userprofile%\virtual
box vms\sg2_win7_x64_lab\sg2_win7_x64_lab.vdi" "%userprofile%\virtualbox vms\sg2
_win7_x64_lab\sg2_win7_x64_lab_clone.vdi"
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: 34dafa68-3093-4946-926a-8237ea263
e5c
C:\Program Files\Oracle\VirtualBox>
Voilà! L'ancien fichier a maintenant été cloné dans un nouveau fichier. Étant donné que le paramètre par défaut dans les nouvelles versions de VirtualBox consiste à utiliser une variante de format "dynamique", il n'est pas nécessaire de définir cela explicitement. Toutefois, si vous travaillez avec une version plus ancienne de VirtualBox, vous pouvez définir l'option sur "dynamique" (si disponible) pour assurer une meilleure compatibilité et / ou une meilleure flexibilité avec les versions futures de VirtualBox.
Afficher les informations VDI sur le disque cloné.
Commande d'entrée: vboxmanage.exe showhdinfo path\inputfile_clone.vdi
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe showhdinfo "%userprofile%\virt
ualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_clone.vdi"
UUID: 34dafa68-3093-4946-926a-8237ea263e5c
Parent UUID: base
State: created
Type: normal (base)
Location: C:\Users\Name\virtualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_
clone.vdi
Storage format: VDI
Format variant: dynamic default
Capacity: 40960 MBytes
Size on disk: 7806 MBytes
C:\Program Files\Oracle\VirtualBox>
Voyez comment on dit maintenant "défaut dynamique"? Comme c'est gentil!
(Sur la note de côté! La raison pour laquelle nous disons 7806 Mo de taille physique, c’est parce que j’avais utilisé l’ --compact
option du fichier VDI original pour tenter de forcer la conversion en variante de format dynamique. Juste quelque chose que j’ai lu sur le forum VirtualBox, c aurait fonctionné avec des versions plus anciennes, alors j’ai pensé que je pourrais aussi bien essayer, cela n’a pas fonctionné.)
Redimensionnement du disque cloné.
Commande d'entrée: vboxmanage.exe modifyhd path\inputfile.vdi --resize 51200
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe modifyhd "%userprofile%\virtua
lbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_clone.vdi" --resize 51200
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
C:\Program Files\Oracle\VirtualBox>
Succès! Pas de format bullshitting pas plus. Rappelez-vous simplement de redimensionner le nouveau disque cloné et non celui d'origine. Gardez à l'esprit que la taille est exprimée en Mo. Je crois que vous pouvez utiliser par exemple 51200
aussi bien que 50G
(ou éventuellement "GB"). Il y a aussi l'option --resizebyte
qui peut être utilisée pour exprimer la taille en octets.
Afficher les informations VDI sur le disque clone redimensionné.
Commande d'entrée: vboxmanage.exe showhdinfo path\inputfile_clone.vdi
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe showhdinfo "%userprofile%\virt
ualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_clone.vdi"
UUID: 34dafa68-3093-4946-926a-8237ea263e5c
Parent UUID: base
State: created
Type: normal (base)
Location: C:\Users\Name\virtualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_
clone.vdi
Storage format: VDI
Format variant: dynamic default
Capacity: 51200 MBytes
Size on disk: 7806 MBytes
C:\Program Files\Oracle\VirtualBox>
C'est ça! À partir de là, vous devez ajouter ce lecteur cloné en tant que nouveau VDI pour la machine virtuelle. Vous faites cela dans VirtualBox. Je n'entrerai pas dans ça. Si vous avez été capable de lire et de comprendre ceci jusqu’à présent, vous n’avez probablement pas besoin de vous guider davantage. Vous pouvez soit supprimer l'ancien fichier "fixe", soit le conserver en tant que sauvegarde. Assurez-vous de tester le nouveau fichier VDI avant de supprimer le fichier source d'origine.
Remarque! Vous ne verrez pas immédiatement la nouvelle taille du disque cloné. Vous devez démarrer la machine virtuelle avec elle, puis utiliser votre outil de gestion de partition pour développer votre partition afin de remplir le disque virtuel (ou créer plus de partitions). Pour Windows, lancez simplement diskmgmt.msc
et vous pourrez développer la partition là-bas.
Captures d'écran
Référence