Comment rendre le système de fichiers ext4 clairsemé?

10

J'utilise Linux comme OS invité dans VirtualBox. J'ai supprimé un grand nombre de fichiers de son système de fichiers. Maintenant, je veux réduire le fichier image du système de fichiers (vdi). Le rétrécissement fonctionne en compressant l'image du système de fichiers partout où il a une valeur "nulle" sur le disque.

Il semble qu'une application appelée zerofree puisse écrire "null" dans l'espace libre du système de fichiers de telle sorte qu'elle devienne clairsemée. Mais les instructions disent que cela ne fonctionne que sur ext2 / ext3. J'ai ext4 sur mon OS invité.

  1. Pourquoi cela ne fonctionne-t-il pas sur l'ext 4 (la raison citée est "extents", mais quelqu'un peut-il éclairer davantage)?

  2. Cela fonctionnera-t-il, si je monte l' ext 4 en tant qu'ext 3 puis le remonte en tant qu'ext 4 ?

  3. D'autres outils qui peuvent faire une chose similaire à zéro sur ext?

rajaganesh87
la source
2
Selon le lien, zerofree fonctionne sur ext4.
psusi
Je ne sais pas si cela fonctionne à votre heure ou non, mais la page de manuel indique qu'elle prend en charge ext4
phuclv

Réponses:

23

La page que vous référencez ( http://intgat.tigress.co.uk/rmy/uml/index.html ) indique:

The utility also works on ext3 or ext4 filesystems.

Je ne sais donc pas où vous obtenez que cela ne fonctionne pas sur les systèmes de fichiers ext4.

Notez que l' utilitaire zerofree est différent du correctif du noyau zerofree qui est mentionné sur la même page (qui en effet ne semble pas avoir de version pour ext4).

Mise à jour: au moins dans le cas de VirtualBox, je ne pense pas que vous ayez du tout besoin de cet utilitaire. Dans mes tests, sur une installation stockée d'Ubuntu 10.04 sur ext4, vous pouvez simplement mettre à zéro le système de fichiers comme ceci:

$ dd if=/dev/zero of=test.file

... attendez que le disque virtuel se remplisse, puis

$ rm test.file

et arrêtez la machine virtuelle. Ensuite, sur votre hôte VirtualBox, faites:

$ VBoxManage modifyhd --compact yourImage.vdi

et vous récupérerez tout l'espace inutilisé.

pdo
la source
Merci pour votre réponse. La page de manuel de zerofree ne spécifiait pas ext4, c'est pourquoi j'avais besoin d'une alternative.
rajaganesh87
1
L'alternative proposée (dd if = / dev / zero of = test.file) a fonctionné pour moi! Beaucoup plus simple que les autres solutions.
Pisu
3
Cela devrait être la réponse acceptée. Fonctionne magnifiquement.
Chris Pratt
Faites un syncaprès le dd.
ignis
ddl'idée a fonctionné pour moi aussi. Bien fait!
Stefan
1

Vous pouvez utiliser e2fsprogs, il existe une version utilisable avec ext4.

Rendez-vous superutilisateur:

# su

Démontez votre disque:

# umount /dev/sda1

Retirez le journal de votre lecteur:

# tune2fs -O ^has_journal /dev/sda1

Et puis redimensionnez votre système de fichiers:

# resize2fs /dev/sda1 30G


la source
Merci pour votre réponse, mais je ne veux pas réduire la partition mais l'image du système de fichiers (vdi) de l'invité.
rajaganesh87