J'ai eu le même problème. J'ai trouvé ceci qui avait la réponse :
https://wiki.archlinux.org/index.php/Ext4#Migrating_files_to_extents
Migration de fichiers vers des extents
Attention : N'utilisez PAS la méthode suivante avec un référentiel Mercurial qui a été cloné localement, car cela corromprait le référentiel. Cela pourrait également corrompre d'autres liens durs dans le système de fichiers.
Même si le système de fichiers est maintenant converti en ext4, tous les fichiers qui ont été écrits avant la conversion ne profitent pas encore des nouveaux extents d'ext4, ce qui améliorera les performances des gros fichiers et réduira la fragmentation et le temps de vérification du système de fichiers. Afin de profiter pleinement de ext4, tous les fichiers devraient être réécrits sur le disque. Un utilitaire appelé e4defrag
est en cours de développement et s'occupera de cette tâche ; cependant, il n'est pas encore prêt pour la production.
Heureusement, il est possible d'utiliser le chattr
qui fera en sorte que le noyau réécrive le fichier en utilisant les extents. Il est possible d'exécuter cette commande sur tous les fichiers et répertoires d'une partition (par exemple si /home
est sur une partition dédiée) : (Doit être exécuté en tant que root)
find /home -xdev -type f -print0 | xargs -0 chattr +e
find /home -xdev -type d -print0 | xargs -0 chattr +e
Il est recommandé de tester d'abord cette commande sur un petit nombre de fichiers, et de vérifier si tout se passe bien. Il peut également être utile de vérifier le système de fichiers après la conversion.
Utilisation de la lsattr
il est possible de vérifier que les fichiers utilisent désormais des extents. La lettre 'e' doit apparaître dans la liste des attributs des fichiers listés.
--
Note : J'avais supposé que e4defrag pouvait convertir les fichiers pour utiliser les extents. L'ioctl qui a échoué est celui qui fait cela afaik, donc je suis un peu confus sur la raison pour laquelle il ne fonctionne pas, mais chattr +e
a fonctionné pour moi. Après avoir chattr +e
les fichiers, vous pouvez alors utiliser e4defrag
sur eux. Assurez-vous évidemment d'avoir une sauvegarde, etc., juste au cas où (j'aurais pensé que c'est sans danger, mais on ne sait jamais - il y a un avertissement ici concernant les hardlinks, mais je ne trouve aucune autre référence à des problèmes connus avec les hardlinks).