Recherche de site Web

4 outils pour gérer la santé EXT2, EXT3 et EXT4 sous Linux


Un système de fichiers est une structure de données qui permet de contrôler la manière dont les données sont stockées et récupérées sur un système informatique. Un système de fichiers peut également être considéré comme une partition physique (ou étendue) sur un disque. S'il n'est pas bien entretenu et régulièrement surveillé, il peut être endommagé ou corrompu à long terme, de nombreuses manières différentes.

Plusieurs facteurs peuvent rendre un système de fichiers malsain : pannes du système, dysfonctionnements matériels ou logiciels, pilotes et programmes bogués, réglage incorrect, surcharge de données excessives et autres problèmes mineurs.

N'importe lequel de ces problèmes peut empêcher Linux de monter (ou démonter) un système de fichiers correctement, entraînant ainsi une panne du système.

Lire aussi : 7 façons de déterminer le type de système de fichiers sous Linux (Ext2, Ext3 ou Ext4)

De plus, l'exécution de votre système avec un système de fichiers défectueux peut donner lieu à d'autres erreurs d'exécution dans les composants du système d'exploitation ou dans les applications utilisateur, pouvant dégénérer en une grave perte de données. Pour éviter de subir une corruption ou des dommages au système de fichiers, vous devez garder un œil sur sa santé.

Dans cet article, nous couvrirons les outils permettant de surveiller et de maintenir la santé des systèmes de fichiers ext2, ext3 et ext4. Tous les outils décrits ici nécessitent les privilèges de l'utilisateur root, utilisez donc la commande sudo pour les exécuter.

Comment afficher les informations sur le système de fichiers EXT2/EXT3/EXT4

dumpe2fs est un outil de ligne de commande utilisé pour vider les informations du système de fichiers ext2/ext3/ext4, ce qui signifie qu'il affiche les informations de super bloc et de groupe de blocs pour le système de fichiers sur l'appareil.

Avant d'exécuter dumpe2fs, assurez-vous d'exécuter la commande df -hT pour connaître les noms de périphériques du système de fichiers.

sudo dumpe2fs /dev/sda10
Exemple de sortie
dumpe2fs 1.42.13 (17-May-2015)
Filesystem volume name:   
Last mounted on:          /
Filesystem UUID:          bb29dda3-bdaa-4b39-86cf-4a6dc9634a1b
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              21544960
Block count:              86154752
Reserved block count:     4307737
Free blocks:              22387732
Free inodes:              21026406
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      1003
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Flex block group size:    16
Filesystem created:       Sun Jul 31 16:19:36 2016
Last mount time:          Mon Nov  6 10:25:28 2017
Last write time:          Mon Nov  6 10:25:19 2017
Mount count:              432
Maximum mount count:      -1
Last checked:             Sun Jul 31 16:19:36 2016
Check interval:           0 ()
Lifetime writes:          2834 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:	          256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
First orphan inode:       6947324
Default directory hash:   half_md4
Directory Hash Seed:      9da5dafb-bded-494d-ba7f-5c0ff3d9b805
Journal backup:           inode blocks
Journal features:         journal_incompat_revoke
Journal size:             128M
Journal length:           32768
Journal sequence:         0x00580f0c
Journal start:            12055

Vous pouvez passer l'indicateur -b pour afficher tous les blocs réservés comme mauvais dans le système de fichiers (aucune sortie n'implique des badblocks) :

dumpe2fs -b

Vérification des erreurs dans les systèmes de fichiers EXT2/EXT3/EXT4

e2fsck est utilisé pour examiner les systèmes de fichiers ext2/ext3/ext4 à la recherche d'erreurs et de vérifications fsck et peut éventuellement réparer un système de fichiers Linux ; il s'agit essentiellement d'une interface pour une gamme de vérificateurs de système de fichiers (fsck.fstype par exemple fsck.ext3, fsck.sfx etc) proposés sous Linux.

N'oubliez pas que Linux exécute e2fack/fsck automatiquement au démarrage du système sur les partitions étiquetées pour l'archivage dans le fichier de configuration /etc/fstab. Cela se produit normalement après qu'un système de fichiers n'a pas été démonté proprement.

Attention : N'exécutez pas e2fsck ou fsck sur des systèmes de fichiers montés, démontez toujours une partition avant de pouvoir l'exécuter. ces outils dessus, comme indiqué ci-dessous.

sudo unmount /dev/sda10
sudo fsck /dev/sda10

Vous pouvez également activer la sortie détaillée avec le commutateur -V et utiliser -t pour spécifier un type de système de fichiers comme celui-ci :

sudo fsck -Vt ext4 /dev/sda10

Réglage des systèmes de fichiers EXT2/EXT3/EXT4

Nous avons mentionné dès le début que l'une des causes des dommages au système de fichiers était un réglage incorrect. Vous pouvez utiliser l'utilitaire tune2fs pour modifier les paramètres réglables des systèmes de fichiers ext2/ext3/ext4 comme expliqué ci-dessous.

Pour voir le contenu du superbloc du système de fichiers, y compris les valeurs actuelles des paramètres, utilisez l'option -l comme indiqué.

sudo tune2fs -l /dev/sda10
Exemple de sortie
tune2fs 1.42.13 (17-May-2015)
Filesystem volume name:   
Last mounted on:          /
Filesystem UUID:          bb29dda3-bdaa-4b39-86cf-4a6dc9634a1b
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              21544960
Block count:              86154752
Reserved block count:     4307737
Free blocks:              22387732
Free inodes:              21026406
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      1003
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Flex block group size:    16
Filesystem created:       Sun Jul 31 16:19:36 2016
Last mount time:          Mon Nov  6 10:25:28 2017
Last write time:          Mon Nov  6 10:25:19 2017
Mount count:              432
Maximum mount count:      -1
Last checked:             Sun Jul 31 16:19:36 2016
Check interval:           0 ()
Lifetime writes:          2834 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:	          256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
First orphan inode:       6947324
Default directory hash:   half_md4
Directory Hash Seed:      9da5dafb-bded-494d-ba7f-5c0ff3d9b805
Journal backup:           inode blocks

Ensuite, en utilisant l'indicateur -c, vous pouvez définir le nombre de montages après lequel le système de fichiers sera vérifié par e2fsck. Cette commande demande au système d'exécuter e2fsck sur /dev/sda10 après tous les 4 montages.

sudo tune2fs -c 4 /dev/sda10

tune2fs 1.42.13 (17-May-2015)
Setting maximal mount count to 4

Vous pouvez également définir le temps entre deux vérifications du système de fichiers avec l'option -i. La commande suivante définit un intervalle de 2 jours entre les vérifications du système de fichiers.

sudo tune2fs  -i  2d  /dev/sda10

tune2fs 1.42.13 (17-May-2015)
Setting interval between checks to 172800 seconds

Désormais, si vous exécutez cette commande ci-dessous, l'intervalle de vérification du système de fichiers pour /dev/sda10 est désormais défini.

sudo tune2fs -l /dev/sda10
Exemple de sortie
Filesystem created:       Sun Jul 31 16:19:36 2016
Last mount time:          Mon Nov  6 10:25:28 2017
Last write time:          Mon Nov  6 13:49:50 2017
Mount count:              432
Maximum mount count:      4
Last checked:             Sun Jul 31 16:19:36 2016
Check interval:           172800 (2 days)
Next check after:         Tue Aug  2 16:19:36 2016
Lifetime writes:          2834 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:	          256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
First orphan inode:       6947324
Default directory hash:   half_md4
Directory Hash Seed:      9da5dafb-bded-494d-ba7f-5c0ff3d9b805
Journal backup:           inode blocks

Pour modifier les paramètres de journalisation par défaut, utilisez l'option -J. Cette option comporte également des sous-options : size=journal-size (définit la taille du journal), device=external-journal (spécifie l'appareil sur lequel il est stocké) et location=journal-location (définit l'emplacement du journal).

Notez qu'une seule des options de taille ou de périphérique peut être définie pour un système de fichiers :

sudo tune2fs -J size=4MB /dev/sda10

Enfin et surtout, le nom de volume d'un système de fichiers peut être défini à l'aide de l'option -L comme ci-dessous.

sudo tune2fs -L "ROOT" /dev/sda10

Déboguer les systèmes de fichiers EXT2/EXT3/EXT4

debugfs est un débogueur de systèmes de fichiers ext2/ext3/ext4 simple et interactif basé sur une ligne de commande. Il vous permet de modifier les paramètres du système de fichiers de manière interactive. Pour afficher les sous-commandes ou les requêtes, tapez "?".

sudo debugfs /dev/sda10

Par défaut, le système de fichiers doit être ouvert en mode lecture-écriture, utilisez l'indicateur -w pour l'ouvrir en mode lecture-écriture. Pour l'ouvrir en mode catastrophique, utilisez l'option -c.

Exemple de sortie
debugfs 1.42.13 (17-May-2015)
debugfs:  ?
Available debugfs requests:

show_debugfs_params, params
                         Show debugfs parameters
open_filesys, open       Open a filesystem
close_filesys, close     Close the filesystem
freefrag, e2freefrag     Report free space fragmentation
feature, features        Set/print superblock features
dirty_filesys, dirty     Mark the filesystem as dirty
init_filesys             Initialize a filesystem (DESTROYS DATA)
show_super_stats, stats  Show superblock statistics
ncheck                   Do inode->name translation
icheck                   Do block->inode translation
change_root_directory, chroot
....

Pour afficher la fragmentation de l'espace libre, utilisez la requête freefrag, comme ceci.

debugfs: freefrag
Exemple de sortie
Device: /dev/sda10
Blocksize: 4096 bytes
Total blocks: 86154752
Free blocks: 22387732 (26.0%)

Min. free extent: 4 KB 
Max. free extent: 2064256 KB
Avg. free extent: 2664 KB
Num. free extent: 33625

HISTOGRAM OF FREE EXTENT SIZES:
Extent Size Range :  Free extents   Free Blocks  Percent
    4K...    8K-  :          4883          4883    0.02%
    8K...   16K-  :          4029          9357    0.04%
   16K...   32K-  :          3172         15824    0.07%
   32K...   64K-  :          2523         27916    0.12%
   64K...  128K-  :          2041         45142    0.20%
  128K...  256K-  :          2088         95442    0.43%
  256K...  512K-  :          2462        218526    0.98%
  512K... 1024K-  :          3175        571055    2.55%
    1M...    2M-  :          4551       1609188    7.19%
    2M...    4M-  :          2870       1942177    8.68%
    4M...    8M-  :          1065       1448374    6.47%
    8M...   16M-  :           364        891633    3.98%
   16M...   32M-  :           194        984448    4.40%
   32M...   64M-  :            86        873181    3.90%
   64M...  128M-  :            77       1733629    7.74%
  128M...  256M-  :            11        490445    2.19%
  256M...  512M-  :            10        889448    3.97%
  512M... 1024M-  :             2        343904    1.54%
    1G...    2G-  :            22      10217801   45.64%
debugfs:  

Vous pouvez explorer de nombreuses autres demandes telles que la création ou la suppression de fichiers ou de répertoires, la modification du répertoire de travail actuel et bien plus encore, en lisant simplement la brève description fournie. Pour quitter debugfs, utilisez la requête q.

C'est tout pour le moment! Nous avons ci-dessous une collection d’articles connexes dans différentes catégories, qui vous seront utiles.

Informations sur l'utilisation du système de fichiers :

  1. 12 commandes « df » utiles pour vérifier l'espace disque sous Linux
  2. Pydf une commande alternative « df » pour vérifier l'utilisation du disque dans différentes couleurs
  3. 10 commandes utiles du (utilisation du disque) pour rechercher l'utilisation du disque des fichiers et des répertoires

Vérifiez l'état du disque ou de la partition :

  1. 3 outils utiles d'analyse de disque Linux basés sur une interface graphique et un terminal
  2. Comment vérifier les secteurs défectueux ou les blocs défectueux sur le disque dur sous Linux
  3. Comment réparer et défragmenter les partitions et répertoires du système Linux

Le maintien d'un système de fichiers sain améliore toujours les performances globales de votre système Linux. Si vous avez des questions ou des idées supplémentaires à partager, utilisez le formulaire de commentaires ci-dessous.