Je veux transformer une machine physique exécutant MS Windows 7 en une machine virtuelle VirtualBox. C'est facile, je l'ai déjà fait, mais cette fois, j'avais besoin que la taille / capacité virtuelle du disque soit fixe et plus petite.
Il doit être corrigé car je vais y installer le chiffrement de disque PGP pour des raisons de conformité. Cela étendra un disque dynamique à sa taille maximale.
Mis à part ce cas particulier, il existe d'autres raisons pour lesquelles les disques doivent être plus petits et fixes. C'est mon expérience. Si vous exécutez par exemple un serveur de génération Jenkins sur un disque à expansion dynamique, vous pouvez voir le disque se développer rapidement à sa taille maximale tandis que dans l'espace disque du système d'exploitation invité, l'utilisation de l'espace est stable et il y a beaucoup d'espace libre.
En utilisant Disk2vhd, j'ai créé un fichier vhdx. Ce fichier que j'ai converti au format vdi.
vboxmanage clonehd --format VDI MSWIN7.VHDX MSWIN7.vdi
Avec vdi, vous pourriez réduire la taille / capacité virtuelle avec des commandes similaires à
vboxmanage modifyhd MSWIN7.vdi --resize 160000
J'ai trouvé que cela ne fonctionne pas. Même si vous essayez des variantes, vous obtiendrez systématiquement des messages d'erreur tels que:
État d'avancement: VBOX_E_NOT_SUPPORTED VBoxManage: erreur: l'opération de redimensionnement du disque dur pour ce format n'est pas encore implémentée!
Ci-dessous est la disposition du disque de mon disque vdi. J'ai ajouté cela à une machine virtuelle Ubuntu pour le regarder en utilisant Gparted et CloneZilla. La capacité est d'environ 300 Go. 145 Go non alloué. Utilisé est d'environ 153 Go.
Je souhaite réduire la capacité à environ 160 Go. Cela devrait être suffisant pour s'adapter /dev/sdb1
et /dev/sdb2
.
BTW, j'ai essayé CloneZilla mais il ne semble pas non plus aimer réduire la capacité d'un disque plus petit. J'ai essayé divers paramètres dans CloneZilla mais sans succès.
Comment puis-je réduire la taille / capacité virtuelle?
la source
vboxmanage clonehd "source-disk.vdi" "new-disk.vdi" --existing
détruit la table de partition sur l'image cible.À la fin, j'ai réussi à résoudre ce puzzle d'une manière simple et inattendue en utilisant l'utilitaire de ligne de commande préinstallé,
dd
voir Clonage de disque . Comme indiqué ci-dessous, j'ai maintenant mon disque de 160 Go dans mon système d'exploitation invité stocké dans un fichier vdi VirtualBox fixe de 160 Go.Je l'ai résolu en utilisant les étapes suivantes:
MSWIN7.vdi
avec MS Windows 7 à une machine virtuelle Ubuntu comme deuxième disque./dev/sda1
avec la VM Ubuntu en cours d'exécution,/dev/sdb2
avec la sourceMSWIN7.vdi
et/dev/sdc1
avec le nouveau vdi./dev/sdc
. CloneZilla l'a fait pour moi. Il n'a pas copié les données mais a créé le partitionnement que je voulais. Bien sûr, vous pouvez le faire manuellement.sdb
verssdc
avec unedd
commande similaire àsudo dd if=/dev/sdb of=/dev/sdc
. La commande se termine par un message d'erreur «pas d'espace restant», ce qui est attendu. J'ai ignoré cela car il s'agit simplement d'un espace non alloué qu'il n'a pas réussi à copier.Je pense qu'il est possible d'exécuter la commande pour chaque partition. C'est peut-être mieux et n'affichera pas de message d'erreur.
sudo dd if=/dev/sdb1 of=/dev/sdc1
etsudo dd if=/dev/sdb2 of=/dev/sdc2
.la source
Je pense que cette solution est extrêmement dangereuse! Il repose sur tous les fichiers se trouvant dans les premiers 153 Go de la partition originale de 300 Go. La commande dd ne copie pas les fichiers. Il copie simplement TOUS les blocs dans l'ordre. Ainsi, si vous avez eu la malchance d'avoir des fichiers importants APRÈS la coupure de 160 Go, dd ne saura pas les copier.
La solution typique que j'ai vue dans de nombreux articles est de mettre sous tension la machine virtuelle Windows et d'utiliser une combinaison d'outils de défragmentation et d'outils d'administration pour consolider tous les fichiers à l'avant du disque - la difficulté est que de nombreux outils de défragmentation ne bougent pas de façon inamovible Fichiers système Windows (j'ai dû désactiver la récupération du système pour supprimer un morceau de disque inamovible de 7 Go), qui se trouvent quelque part au milieu de l'espace que vous essayez de consolider.
Une fois que vous avez consolidé les fichiers sur le devant du disque (MyDefrag est un outil gratuit qui fournit un affichage de l'emplacement de vos fichiers sur le disque), vous devez réduire la taille de votre partition Windows. J'ai utilisé l'outil diskpart avec l'option de réduction.
À ce stade, vous pouvez utiliser dd pour copier la partition désormais plus petite vers un nouveau vdi.
J'ai également utilisé vboxmanage modifymedium win10.vdi --compact, sur mon hôte Linux, mais j'ai d'abord dû exécuter sdelete.exe dans le système Windows pour éliminer tout l'espace inutilisé en premier (sdelete -zc :). L'utilisation de vboxmanage pour compacter le fichier vdi existant vous permet de tout faire sur place (mais toujours d'avoir une sauvegarde).
la source
Dans mon cas, j'avais une machine virtuelle Windows avec 50 Go de VDI pour réduire à 20 Go.
J'ai essayé la solution d' Andre Figueiredo mais j'ai eu un problème avec le cloné
vdi
.Lorsque j'applique la solution Andre Figueiredo et attache le rétréci
vdi
à la machine virtuelle, lors du démarrage, Virtualbox s'arrête avec une erreur d'E / S.Peut-être que cela est lié à mon
btrfs
système de fichiers (j'ai entendubtrfs
des problèmes avec Vritualboxvdi
).Ma solution:
J'ai essayé une solution différente afin de réduire le disque VM (
vdi
), nommé OVdi , ( OVdi a une taille de disque de 50 Go, une partition ntfs unique avec 40 Go d'espace libre).Suivons ces étapes (c'est mon cas, vous pouvez adapter / inventer différents noms de vdi ):
arrêter la VM (mise hors tension)
créer un nouveau disque (
vdi
) avec le nom DVdi de la taille souhaitée (20 Go dans mon cas ..)attacher DVdi à la VM
démarrez la VM et installez l'utilitaire EaseUS Backup Free
Exécutez EasyUS et utilisez la fonction EasyUS Clone (il clone OVdi MBR et la partition ntfs d' OVdi en réduisant le nouveau disque DVdi )
Éteignez la VM
Détacher OVdi de VM
Vérifiez si DVdi est le premier périphérique de démarrage pour la machine virtuelle
redémarrez la machine virtuelle
S'amuser
N'oubliez pas de supprimer le volume OVdi .
En suivant ces étapes, j'ai réussi à réduire la taille du disque VM de 50 Go à 20 Go
la source
Comme d'autres l'ont mentionné, la réponse d'André Figueiredo est basée sur la chance car il n'y a aucune garantie que le "premier X gb" d'espace est votre espace, sauf si vous défragmentez, auquel cas c'est toujours risqué.
La réponse de Paul Hursky est beaucoup plus sûre. Je vais énumérer quelques étapes supplémentaires que j'ai faites (notez que c'est pour Windows, le mien était XP mais cela devrait également fonctionner pour d'autres):
1) Obtenez l'édition gratuite de "MiniTool Partition Wizard Free 12" dans ce lien
2) Installez-le dans le système d'exploitation invité et redimensionnez votre lecteur, laissez un peu de répit juste pour être sûr (ne le tirez pas complètement en arrière ..). Étant donné que vous redimensionnez probablement le disque dur du système d'exploitation actuel, il vous donnera une option pour redémarrer et effectuer l'action, procédez comme suit.
3) Maintenant, en utilisant le même programme MiniTool Partition, sélectionnez votre espace non alloué (sous
*:
) -> Clic droit -> Wipe Partition -> Remplir les secteurs avec zéro (rapide).4) Arrêtez maintenant en toute sécurité le système d'exploitation invité. Accédez au dossier VirtualBox où VBoxManage.exe existe, ouvrez cmd dans ce chemin et exécutez ceci:
5) Et maintenant, tout devrait fonctionner comme par magie. Lorsque vous ouvrez ensuite l'OS invité, il exécute la vérification du disque, LET IT RUN, il trouve des "fichiers orphelins" qui ressemblaient à des fichiers système.
la source