Un fichier de disque dur virtuel Virtual Box à la croissance dynamique est capable de croître à la demande de la machine virtuelle jusqu’à la taille maximale que nous avons définie lors de la configuration de ce fichier. Cependant, il ne libère pas l'espace des fichiers que nous avons supprimés dans l'OS invité.
Si le disque a trop grossi, nous pouvons le compacter à nouveau, à condition que l'espace inutilisé soit rempli de zéros et que le lecteur soit au format VDI.
Pour un système de fichiers ext2 à ext 4, vous pouvez le faire à partir de l'invité Ubuntu à l'aide de l'utilitaire de ligne de commande zerofree * .
zerofree /dev/sdxX
Cela nécessite que le lecteur ne soit pas utilisé et qu'il soit démonté . Il se peut donc que nous devions le lier temporairement à une autre machine virtuelle créée à cet effet ou amorcer un environnement en direct Ubuntu sur cette machine virtuelle.
Remplacez-la /dev/sdxXpar la partition formatée ext2, ext3 ou ext4 en question.
Sur plusieurs partitions, nous devons répéter zerofreepour chaque partition. Gardez à l'esprit qu'en remplissant de zéros, le fichier virtuel augmentera temporairement jusqu'à sa taille maximale.
Une fois que tout l’espace disque inutilisé est rempli de zéros, nous réduisons le disque avec
VBoxManage modifyhd <name>.vdi --compact
Cela réduira considérablement la taille de fichier de notre fichier VDI.
* Dans un invité Windows, nous pouvons remplacer l'espace inutilisé par l'utilitaire sdelete.
Cela fonctionnera-t-il également pour un système de fichiers chiffré dans l'invité?
smichak
Sûr. Si vous utilisez ecryptfs, les fichiers cryptés ressemblent à des utilitaires fichiers sur disque normaux, et cela fonctionnera. Si vous utilisez le chiffrement intégral du disque, il ne sera de toute façon pas reconnu comme une partition au format ext :)
Chronospoon du
J'utilise une partition ext4 sur un périphérique bloc dm-crypt ... J'ai essayé la méthode et je ne vois pas le fichier .vdi plus petit après compactage. Je pense que les blocs nuls sont sauvegardés sous forme de blocs non nuls sur le périphérique bloc sous dm-crypt.
Smichak
2
@smichak: c'est le point de cryptage. Il chiffrera l’ensemble de votre lecteur pour s’assurer également que nous ne pouvons pas voir les limites des fichiers.
Takkat
3
Si vous ne souhaitez pas connecter votre VDI à un autre ordinateur, vous pouvez démarrer en mode de récupération, puis monter le disque en lecture seule mount -n -o remount,ro -t ext4 /dev/sda1, puis zerofree -v /dev/sda1.
Hamid Nazari
1
Voici quelques moyens alternatifs de mettre à zéro l'espace disque disponible (qui peut être la partie la plus longue). Ensuite, vous devrez toujours exécuter VBoxManage modifyhd <disk> --compactpour compacter le fichier de disque réel.
Cette commande peut mettre à zéro le disque lorsqu'il est démonté:
apt-get install zerofree
zerofree -v /dev/sdxN
Voici un exemple montrant comment dd doit imprimer périodiquement les résultats:
dd if=/dev/zero of=temp-file-on-disk bs=20M
# run this to get the process ID of the dd command
pgrep -l '^dd$'
# then put the process ID on the command line to "kill -USR1"
# this will tell dd to print the current status (in another terminal)
kill -USR1 $(pgrep -l '^dd$' | awk '{print $1}')
Voici un ddprogramme similaire à celui qui imprimera automatiquement les résultats périodiquement:
J'ai vu zerofreeutilisé sur un système de fichiers monté, mais quand il a été monté en lecture seule. Même pour les racines FS: sudo mount -o remount,ro /- mais dans une session graphique, la racine sera occupée et échouera. Mais c'est possible dans runlevel 1 ( telinit 1), vous n'aurez donc pas besoin de démarrer à partir d'un live CD pour le faire.
ecryptfs
, les fichiers cryptés ressemblent à des utilitaires fichiers sur disque normaux, et cela fonctionnera. Si vous utilisez le chiffrement intégral du disque, il ne sera de toute façon pas reconnu comme une partition au format ext :)mount -n -o remount,ro -t ext4 /dev/sda1
, puiszerofree -v /dev/sda1
.Voici quelques moyens alternatifs de mettre à zéro l'espace disque disponible (qui peut être la partie la plus longue). Ensuite, vous devrez toujours exécuter
VBoxManage modifyhd <disk> --compact
pour compacter le fichier de disque réel.Cette commande peut mettre à zéro le disque lorsqu'il est démonté:
Voici un exemple montrant comment dd doit imprimer périodiquement les résultats:
Voici un
dd
programme similaire à celui qui imprimera automatiquement les résultats périodiquement:la source
zerofree
utilisé sur un système de fichiers monté, mais quand il a été monté en lecture seule. Même pour les racines FS:sudo mount -o remount,ro /
- mais dans une session graphique, la racine sera occupée et échouera. Mais c'est possible dans runlevel 1 (telinit 1
), vous n'aurez donc pas besoin de démarrer à partir d'un live CD pour le faire.