Comment défragmenter un système de fichiers ext4

66

Je ne veux pas de réponse disant qu'il n'y a pas besoin, s'il vous plaît!

Fabby
la source

Réponses:

67

Utilisez e4defrag pour défragmenter vos fichiers

Si votre système de fichiers ext4 est créé avec l' extentoption (il s'agit par défaut des distributions récentes), vous pouvez utiliser cet e4defragutilitaire pour vérifier et défragmenter celui-ci en ligne, c'est-à-dire sans démontage.

Vérifiez simplement le niveau de fragmentation avec quelque chose comme ceci (vous devez être root pour voir les détails):

sudo e4defrag -c /path/to/myfiles

Voici un exemple de sortie que vous pouvez obtenir:

$ sudo e4defrag -c iso/
<Fragmented files>                             now/best       size/ext
1. /home/gerlos/iso/debian-live-7.5.0-i386-rescue.iso
                                                 7/1         111177 KB
2. /home/gerlos/iso/systemrescuecd-x86-4.4.1.iso
                                                 4/1         100897 KB
3. /home/gerlos/iso/debian-live-7.5.0-amd64-rescue.iso
                                                 6/1         116053 KB
4. /home/gerlos/iso/ubuntu-14.04.2-server-amd64.iso
                                                 8/1          76160 KB
5. /home/gerlos/iso/ubuntu-14.10-desktop-amd64.iso
                                                15/1          75712 KB

 Total/best extents             40/5
 Average size per extent            90577 KB
 Fragmentation score                0
 [0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
 This directory (iso/) does not need defragmentation.
 Done.

Comme dans cet exemple, la plupart du temps, elle vous indiquera qu'aucune défragmentation n'est nécessaire, mais si vous voulez le faire, vous pouvez quand même l'utiliser (vous n'avez pas besoin d'utiliser sudo pour défragmenter vos propres fichiers):

e4defrag /path/to/myfiles

Vos utilisateurs peuvent même l'exécuter sur leurs propres fichiers, il n'est pas nécessaire d'être root si vous ne souhaitez pas utiliser les fichiers d'autres utilisateurs ou du système.

e4defragest dans le e2fsprogspaquet, et je suppose qu’il est déjà installé sur votre système Ubuntu.

gerlos
la source
2
e4defrag -c ne renvoie rien mais done. Cela signifie-t-il simplement qu'il n'y a pas de fragmentation?
hrzhu
3
Désolé, j'ai oublié de mentionner que vous devez exécuter e4defrag -cavec sudoou en tant que root pour obtenir des informations détaillées sur la fragmentation de vos fichiers. Mais pas besoin d'être root pour les défragmenter.
gerlos
@gerlos Et si j'essaie de défragmenter le système de fichiers racine /?
Pavel Sayekat
2
@PavelSayekat vous devez juste être root (c'est-à-dire utiliser sudo) pour fonctionner e4defrag /, et rien de spécial à faire. e4defragva vérifier chaque fichier là-bas, alors soyez prêt à attendre que votre lecteur lit tout. Rappelez-vous que cela peut être une grosse perte de temps. La plupart du temps, si vous disposez de suffisamment d'espace libre dans le système de fichiers, vous ne disposerez que de quelques fichiers fragmentés, qui se trouveront souvent dans votre répertoire personnel, en fonction de l'activité de votre navigateur Web. Par exemple, sur mon ordinateur de bureau que j’utilise chaque jour e4defrag, il n’ya que 5 fichiers fragmentés, tous dans Chromium config et cache dir.
gerlos
Cela ne défragmente que les étendues à l'intérieur des fichiers eux-mêmes, mais pas les fichiers entre eux. Autrement dit, si j’ai un répertoire contenant trois fichiers situés à des emplacements physiques extrêmement différents sur le disque, il sera quand même lent à utiliser ces fichiers simultanément après avoir exécuté cet outil. Existe-t-il un moyen de réorganiser les fichiers sur le disque ou de "défragmenter l'espace libre" comme on l'appelle parfois?
fuzzyTew
29

Jetez un coup d'oeil sur e2fsprogs . Ceci est également disponible dans les packages Ubuntu. Il fournit le programme e4defrag.

TIIUNDER
la source
5
Cela n’est utile que sur les systèmes de fichiers ext4 créés avec l’extension -O, qui n’est pas celle par défaut.
Dobey
Le gars répond à propos de la défragmentation, cela pourrait être possible avec e4defrag, la question n'est pas une journalisation externe ou non, il ne mérite pas un -1.
Felipe Alcacibar
8
@dobey Ubuntu 12.04 (.3) LTS contient extentdans la ext4strophe de la [fs_types]section /etc/mke2fs.conf- il s'agit donc d'un "défaut". Cependant, quelle que soit la configuration de la machine à laquelle le système de fichiers est créé au moment de la création, il est préférable d’inspecter le système de fichiers lui-même: tune2fs -l </dev/with/ext4> | grep extent(ou regardez la ligne "Fonctionnalités du système de fichiers" dans la sortie complète de tune2fs). Remarquez que je viens de courir e4defrag -c ...sur un système de fichiers 100% complet avec 1 To extent, et il n'y a que 5 fichiers fragmentés, et "score de fragmentation" 0. YMMV.
Richard Michael
@RichardMichael FYI: e2defrag -c /pathimprime uniquement les 5 premiers fichiers fragmentés trouvés (même pas les plus fragmentés). Exécuter e2defrag -v /pathpour voir comment cela réduit le nombre d'étendue.
Tino
17

Utilisez Gparted pour défragmenter votre système de fichiers

Si vous avez assez d’espace sur votre disque dur, vous pouvez utiliser Gparted pour défragmenter votre système de fichiers ( ext2, ext 4, nfts, etc. ). Vous devez démarrer à partir d'un CD / DVD / disque de démarrage USB car le lecteur sur lequel vous travaillez doit être démonté. Vous devez également disposer de plus d'espace inutilisé que d'espace utilisé pour que cela fonctionne et cela peut prendre un certain temps.

  • Démarrer à partir d'un disque de démarrage.
  • Exécutez gparted et réduisez la partition contenant les données que vous souhaitez défragmenter à un peu plus que la quantité de vos données.
  • Assurez-vous que la partition que vous souhaitez défragmenter est la dernière partition du lecteur en la déplaçant complètement (vous devrez peut-être créer une autre partition vierge devant s'il n'y a qu'une seule partition sur le lecteur).

Avec la partition que vous souhaitez défragmenter en tant que dernière partition du lecteur:

  • agrandir la partition à sa gauche jusqu'à la taille maximale. Cela déplacera les données de vos partitions à la fin du lecteur.
  • Une fois cela fait, ramenez cette partition à sa taille précédente.
  • Si vous avez créé une partition vierge pour en avoir plusieurs sur le disque, vous pouvez maintenant la supprimer.
  • Ramenez vos partitions dans l'ordre d'origine et repoussez la partition que vous voulez défragmenter à sa taille maximale.

Il est maintenant défragmenté.

Et je sais que vous ne souhaitez pas savoir pourquoi / pourquoi ne pas défragmenter Ubuntu, mais je posterai le lien vers pourquoi-la-défragmentation n'est-elle pas nécessaire de toute façon?

James
la source
Après avoir rétréci et bougé à droite, pourquoi grandissez-vous à gauche puis réduisez-vous à nouveau au lieu de vous déplacer à gauche?
Jason C
De plus, j'ai remarqué qu'après l'étape de croissance à gauche, les données elles-mêmes ont été réellement déplacées à nouveau (comme en témoignent les données en mouvement gparted, vérifiées par un examen direct du périphérique en mode bloc par la suite); shrink + repear peut être ignoré. Il semble suffire de ne faire que: 1) rétrécir et aller à droite, 2) appliquer, 3) pousser à gauche.
Jason C
Le simple fait de déplacer la partition que vous souhaitez défragmenter ne dure pas nécessairement jusqu'à la fin réelle du disque dur. Augmenter la taille maximale de la partition à gauche permet de s'assurer que la partition finale est réellement "déplacée" à la toute fin du disque dur.
James
Déplacement vers la droite fait passer à la fin du disque dur. La barre de partition en haut de l’interface graphique gparted est en réalité une représentation précise de la structure des données (du moins, tout aussi visible par le système d’exploitation, les périphériques Flash, par exemple, mappent logiquement vers des emplacements physiques situés de l’autre côté du contrôleur). disque dur typique, il est précis). Cela peut être vérifié en observant le nouvel emplacement de départ dans la table de partition. :)
Jason C
Ah, nous communiquons mal. Vous vouliez dire réorganiser la partition pour que ce soit la dernière. Je voulais dire déplacer la partition à la fin du lecteur, et c'est ce que je pensais que vous vouliez dire également (vous pouvez déplacer des partitions sur le lecteur avec gparted indépendamment de les réorganiser). :)
Jason C
3

Défragmentation du système de fichiers ext4 sous Linux J'ajoute cette réponse pour montrer également comment nous pouvons trouver divers outils Linux intégrés pour effectuer certaines opérations courantes. toi

De plus, notez que vous devez utiliser le statut de super-utilisateur uniquement si vous souhaitez défragmenter sans démonter.

Utiliser une commande à propos

e4defrag -vc /path #verbose output with count
Sudip Bhandari
la source
2

Ubuntu 14.04 LTS place (au moins le lecteur principal) dans la partition EXT4 lorsqu’il est installé après une nouvelle installation (ne résidant pas sur Win-Junk).

Dans ce cas, si vous venez de configurer un nouveau système ou de le reformater sur un ancien système, puis effectuez une nouvelle installation, puis, par défaut avec 14.04 LTS, vous avez une partition EXT4 à l'adresse /dev/sda1.

Maintenant, ouvrez simplement un terminal ( CTRL- ALT- T) et tapez:

sudo e4defrag -c /dev/sda1

et soyez patient jusqu'à ce que le «contrôle» soit terminé et que vous obteniez le rapport de fragmentation.

Si vous n'êtes pas sûr d'avoir une partition EXT4 sur votre lecteur de système d'exploitation, allez simplement à la maison et tapez df -T. Regardez pour voir sur quoi vos partitions sda * sont définies (essayez ceci dans 14.04LTS, et vous verrez EXT4 à moins que vous n'ayez choisi un autre type de partition lors de l'installation du disque dur).

lance
la source
Je suis un peu hors-sujet et n’a presque pas ajouté de valeur à la question, en particulier lors du discours final.
Fernando Silveira le
Vous pouvez défragmenter plusieurs partitions avec la même commande: sudo e4defrag / dev / sda1 / dev / sda2
ProgAndPlay
1

e2fsck -D /dev/sda1 optimise les répertoires en les triant et en les réindexant, ce qui accélère généralement les choses. Ne peut pas être considéré comme une défragmentation complète du système de fichiers, mais tous les systèmes ne disposent pas de e4defrag.

rjt
la source