La fragmentation d’un fichier, c’est sa répartition en plusieurs blocs non contigus sur un disque. Linux peut connaître ce phénomène, mais l’intérêt d’intervenir dépend du système de fichiers et de la charge. Sur ext4, e4defrag -c permet d’évaluer la fragmentation sans modifier la cible.
Sur cette page
- Pourquoi Linux peut se fragmenter
- Vérifier ext4 sans lancer de défragmentation
- Les outils et conditions varient selon le système de fichiers
- HDD, SSD et TRIM
Pourquoi Linux peut se fragmenter
Les systèmes de fichiers Linux ne sont pas à l’abri de la fragmentation. Dans leur étude de conception d’ext2, Rémy Card, Theodore Ts’o et Stephen Tweedie décrivent comment l’ancien système Ext se fragmentait lorsque ses listes de blocs libres et d’inodes se désordonnaient.
La conception d’ext2 a cherché à rapprocher les données liées grâce à des groupes de blocs et à préallouer jusqu’à huit blocs voisins. L’étude rapporte que cette préallocation trouvait des blocs contigus dans environ 75 % des cas, même sur des systèmes de fichiers très remplis. Ces chiffres décrivent l’ext2 historique, pas les performances actuelles d’ext4.
Vérifier ext4 sans lancer de défragmentation
La commande e4defrag -c évalue les fichiers pris en charge sur ext4 sans les défragmenter. Elle peut cibler un fichier, un répertoire ou un point de montage ext4. Par exemple, e4defrag -c / évalue le système de fichiers monté à la racine si celui-ci est en ext4.
Le résultat comprend un score. Le code amont d’e4defrag classe les scores de 0 à 30 dans la catégorie « aucun problème », ceux de 31 à 55 comme « légèrement fragmentés » et les scores de 56 ou plus comme « à défragmenter ». Ce sont les repères propres au programme, pas des pourcentages ni des seuils universels de performance. Un score de zéro se trouve dans la première plage ; à lui seul, il ne démontre pas qu’une défragmentation améliorerait les performances.
La commande de vérification est distincte de la défragmentation : e4defrag peut agir sur les fichiers ext4 pris en charge. Un manque d’espace libre, ou un espace libre lui-même fragmenté, peut limiter le résultat. L’opération peut aussi concurrencer une application active pour la mémoire et la bande passante du disque. L’outil ne prend pas en charge certains fichiers, notamment les fichiers d’échange, ceux de lost+found et ceux alloués en blocs indirects.
Le screencast de gotbletu, publié le 17 août 2015, montre l’installation d’e2fsprogs et l’évaluation de / avec sudo e4defrag -c /.
Les outils et conditions varient selon le système de fichiers
Une commande prévue pour ext4 ne s’applique pas automatiquement à Btrfs ou à exFAT. Les fonctions et précautions documentées diffèrent selon le système :
| Système de fichiers | Fonction Linux | Condition importante |
| ext4 | e4defrag -c évalue ; e4defrag défragmente les fichiers pris en charge. | Un espace libre insuffisant ou fragmenté peut limiter l’amélioration. L’opération peut concurrencer les applications actives pour les ressources. |
| Btrfs | L’option de montage autodefrag met en file certaines petites écritures aléatoires, dans une plage décrite de 64 Kio. | Elle peut augmenter la latence en lecture et ne pas convenir aux grandes bases de données. |
| exFAT | defrag.exfat -a évalue le volume sans le modifier ; la commande peut aussi défragmenter. | Pour défragmenter, le volume doit être démonté. Le manuel recommande de vérifier son intégrité avec fsck.exfat et de sauvegarder les données importantes. |
| NTFS | La documentation du pilote NTFS de Linux et celle de NTFS-3G ne décrivent pas de commande de défragmentation. |
La ligne NTFS ne décrit pas une fonction disponible dans ces documentations, tandis que la commande exFAT exige un volume démonté pour la défragmentation. defrag.exfat a été ajoutée à exfatprogs 1.3.0, annoncée le 15 octobre 2025.
HDD, SSD et TRIM
Sur un disque dur mécanique (HDD), la défragmentation vise traditionnellement à réduire les déplacements des têtes de lecture entre des blocs éloignés. Un SSD n’a pas ce mécanisme de recherche mécanique, donc ce raisonnement ne s’y transpose pas tel quel. TRIM, aussi appelé discard, est une opération distincte de la défragmentation des fichiers.