Recherche de site Web

20 commandes Fsck pour vérifier et réparer les systèmes de fichiers Linux


Maintenir l'intégrité des systèmes de fichiers est très important pour que vos systèmes Linux fonctionnent correctement. Les systèmes de fichiers peuvent devenir corrompus ou incohérents à cause de défaillances matérielles, de pannes de courant ou de bugs logiciels. Cela peut entraîner une perte de données ou une instabilité du système. Ce tutoriel complet fournit des commandes fsck utiles avec des exemples pour vérifier et réparer les systèmes de fichiers sous Linux.

L'utilitaire fsck (vérification du système de fichiers) vous aide à vérifier et réparer les problèmes de vos systèmes de fichiers. Vous pouvez l'exécuter manuellement ou le faire vérifier automatiquement les systèmes de fichiers au démarrage du système. Avec fsck, vous pouvez rechercher des erreurs, réparer des structures de données corrompues et marquer les blocs de disque défectueux pour éviter de futurs problèmes.

Commençons par les bases de la vérification et de la réparation des systèmes de fichiers Linux standard avec la commande fsck. Mais avant cela, nous devons trouver les systèmes de fichiers qui doivent être réparés et les démonter.

[NOTE]
Les commandes suivantes doivent être exécutées avec les permissions sudo ou root.

Démonter les systèmes de fichiers

Utiliser fsck sur un système de fichiers monté n'est généralement pas recommandé. Exécuter fsck sur un système de fichiers monté peut entraîner une corruption des données ou d'autres problèmes car le système de fichiers est activement utilisé par le système d'exploitation.

La façon la plus sûre d'utiliser fsck est de démonter d'abord le système de fichiers. Vous pouvez utiliser les commandes df -h ou lsblk pour obtenir vos systèmes de fichiers montés (partitions). Consultez ce guide pour lister les partitions de disque sous Linux.

Une fois que vous avez trouvé le système de fichiers que vous souhaitez réparer, démontez-le comme ci-dessous :

umount /dev/sdXN

Remplacez /dev/sdXN par l'identifiant réel du périphérique (par exemple, /dev/sda).

Après avoir réparé les systèmes de fichiers, n'oubliez pas de les monter.

mount /dev/sdXN

Commandes fsck Linux pour réparer les systèmes de fichiers Linux

Dans ce tutoriel, j'ai compilé 20 commandes fsck essentielles pour vérifier et réparer les systèmes de fichiers dans les systèmes d'exploitation Linux et de type Unix.

Ces commandes aident les administrateurs système Linux à maintenir l'intégrité et la fiabilité des systèmes de fichiers. Elles permettent de vérifier, réparer et gérer les blocs défectueux, ainsi que d'effectuer diverses autres tâches de maintenance des systèmes de fichiers.

Il est important d'utiliser ces commandes avec précaution, car elles peuvent potentiellement provoquer une perte de données si elles sont utilisées incorrectement. Créez toujours des sauvegardes avant d'effectuer toute réparation ou modification du système de fichiers.

1. Exécution à sec de la vérification du système de fichiers

fsck -N

Cette option indique à fsck d'effectuer une simulation, ce qui signifie qu'il ne fera en réalité aucun changement sur le système de fichiers. À la place, il affichera quelles actions il entreprendrait si exécuté sans l'option -N. Cela est utile pour prévisualiser les modifications potentielles avant de les appliquer.

La sortie exemple de la commande ci-dessus serait :

fsck from util-linux 2.36.1
[/usr/sbin/fsck.ext4 (1) -- /] fsck.ext4 /dev/nvme0n1p2 
[/usr/sbin/fsck.vfat (1) -- /boot/efi] fsck.vfat /dev/nvme0n1p1 
[/usr/sbin/fsck.exfat (1) -- /media/user/WD_SSD] fsck.exfat LABEL=WD_SSD 

Permettez-moi d'expliquer ce que ce résultat signifie :

fsck from util-linux 2.36.1

Cette ligne indique que la commande fsck fait partie du paquet util-linux, version 2.36.1.

[/usr/sbin/fsck.ext4 (1) -- /] fsck.ext4 /dev/nvme0n1p2

Cette ligne montre que fsck a détecté un système de fichiers ext4 sur le périphérique /dev/nvme0n1p2 (probablement une partition sur un disque NVMe). Dans cette simulation, fsck appellerait la commande /usr/sbin/fsck.ext4 pour vérifier et éventuellement réparer ce système de fichiers ext4 monté sur le répertoire racine (/).

[/usr/sbin/fsck.vfat (1) -- /boot/efi] fsck.vfat /dev/nvme0n1p1

Ici, fsck a trouvé un système de fichiers FAT (vfat) sur le périphérique /dev/nvme0n1p1, qui est probablement la partition système EFI (ESP) montée sur /boot/efi. Lors de l'exécution à blanc, fsck invoquerait /usr/sbin/fsck.vfat pour vérifier et éventuellement réparer ce système de fichiers FAT.

[/usr/sbin/fsck.exfat (1) -- /media/user/WD_SSD] fsck.exfat LABEL=WD_SSD

Cette ligne indique que fsck a détecté un système de fichiers exFAT avec le label WD_SSD, monté sur /media/user/WD_SSD. Lors de la simulation, fsck appellerait /usr/sbin/fsck.exfat pour vérifier et éventuellement réparer ce système de fichiers exFAT.

En résumé, cette sortie montre que fsck -N effectue une simulation pour vérifier trois systèmes de fichiers différents sur ce système :

  1. Un système de fichiers ext4 monté à la racine (/).
  2. Un système de fichiers FAT (vfat) monté à /boot/efi, probablement la partition système EFI.
  3. Un système de fichiers exFAT avec le label WD_SSD monté à /media/user/WD_SSD.

L'exécution à blanc se contente de lister les actions que fsck effectuerait pour vérifier et réparer ces systèmes de fichiers s'il était exécuté sans l'option -N. Aucun changement réel ne sera apporté aux systèmes de fichiers pendant cette exécution à blanc.

2. Vérifier et réparer tous les systèmes de fichiers

fsck -As

Cette commande vérifie et tente de réparer tous les systèmes de fichiers répertoriés dans le fichier /etc/fstab. L'option -A indique à fsck de vérifier tous les systèmes de fichiers, et l'option -s lui ordonne de ne pas vérifier les systèmes de fichiers marqués comme « propres ».

3. Forcer la vérification du système de fichiers

fsck -f /dev/sda1

Cette commande force une vérification du système de fichiers sur le périphérique /dev/sda1, qui est généralement une partition ou un disque. L'option -f oblige fsck à vérifier le système de fichiers, même s'il est marqué comme propre.

Exemple:

$ sudo fsck -y /dev/sda1
fsck from util-linux 2.36.1
exfatprogs version : 1.1.0
/dev/sda1: clean. directories 2774, files 40775

4. Forcer la vérification du système de fichiers avec sortie détaillée

fsck -fv /dev/sda1

Semblable à la commande précédente, cela force une vérification du système de fichiers sur /dev/sda1, mais avec l'option supplémentaire -v, qui produit une sortie détaillée, fournissant des informations plus précises sur le processus de vérification.

5. Réparation automatique du système de fichiers

fsck -y /dev/sda1

Cette commande vérifie et répare le système de fichiers sur /dev/sda1, et l'option -y répond automatiquement « oui » à toutes les invites ou questions que fsck pourrait poser pendant le processus de réparation.

6. Vérifier le système de fichiers ext2 et marquer les blocs défectueux

fsck.ext3 -c /dev/sda1

Cette commande vérifie spécifiquement un système de fichiers ext3 sur /dev/sda1. L'option -c demande à fsck d'exécuter la commande badblocks pour trouver et marquer les blocs défectueux sur le périphérique.

7. Marquer les blocs défectueux pour les systèmes de fichiers ext2/ext3/ext4

e2fsck -c /dev/sda1

Ceci est similaire à la commande précédente mais pour les systèmes de fichiers ext2/ext3/ext4. Elle marque tous les blocs défectueux trouvés et les ajoute à l'inode des blocs défectueux, les empêchant d'être attribués à des fichiers ou des répertoires.

8. Réparation automatique pour les systèmes de fichiers ext2/ext3/ext4

e2fsck -p

Cette commande répare automatiquement un système de fichiers ext2/ext3/ext4 sans poser de questions, ce qui la rend adaptée aux réparations automatisées ou scriptées.

9. Exécution à sec pour les systèmes de fichiers ext2/ext3/ext4

e2fsck -n

Cette option effectue une exécution à sec, similaire à fsck -N. Elle vérifie le système de fichiers mais ne fait aucun changement, se contentant de signaler les problèmes potentiels.

10. Supposer « Oui » pour la réparation du système de fichiers ext2/ext3/ext4

e2fsck -y

Comme fsck -y, cette commande suppose « oui » à toutes les questions posées pendant le processus de réparation du système de fichiers, permettant des réparations non surveillées ou automatisées.

11. Vérifier et Ajouter les Blocs Défectueux à la Liste des Blocs Défectueux

e2fsck -c

Cette option vérifie les mauvais blocs sur le système de fichiers et les ajoute à la liste des mauvais blocs, empêchant leur utilisation future.

12. Forcer la vérification du système de fichiers pour ext2/ext3/ext4

e2fsck -f

Cela force e2fsck à vérifier le système de fichiers, même s'il est marqué comme propre.

13. Sortie détaillée pour la vérification du système de fichiers ext2/ext3/ext4

e2fsck -v

Permet une sortie verbeuse, fournissant des informations plus détaillées sur le processus de vérification et de réparation.

14. Utiliser un emplacement de superbloc alternatif

e2fsck -b $Superblock

Cette option vous permet de spécifier un emplacement alternatif du superbloc pour que e2fsck l'utilise lors de la vérification du système de fichiers.

Exemple:

e2fsck -b 32768 /dev/sda1

Cette commande vérifie le système de fichiers ext2/3/4 sur /dev/sda1 en utilisant le superbloc situé à l'offset d'octet 32768. Cela peut être utile si le superbloc principal est corrompu et que vous devez utiliser un emplacement de superbloc alternatif.

15. Taille de bloc de force pour la recherche de superbloc

e2fsck -B $BlockSize

Force e2fsck à utiliser une taille de bloc spécifique lors de la recherche du superbloc.

Exemple:

e2fsck -B 4096 /dev/sdb2

Cette commande oblige e2fsck à utiliser une taille de bloc de 4096 octets lors de la vérification du système de fichiers sur /dev/sdb2. Cela peut être nécessaire si le système de fichiers a été créé avec une taille de bloc non standard.

16. Définir l'emplacement du journal externe

e2fsck -j $Dir

Spécifie l'emplacement d'un journal externe pour le système de fichiers en cours de vérification.

Exemple:

e2fsck -j /mnt/backup/external_journal /dev/sdc1

Cette commande spécifie que le journal externe pour le système de fichiers sur /dev/sdc1 se trouve à /mnt/backup/external_journal. Cela est pertinent pour les systèmes de fichiers qui utilisent un journal externe, comme lorsque l'on utilise un disque ou une partition séparée pour le journal.

17. Ajouter des secteurs défectueux à partir d'un fichier à la liste des secteurs défectueux

e2fsck -l $BadBlocksFile

Ajoute les blocs défectueux listés dans le fichier spécifié à la liste des blocs défectueux du système de fichiers.

Exemple:

e2fsck -l /root/bad_blocks.txt /dev/sda2

Cette commande ajoute les blocs défectueux répertoriés dans le fichier /root/bad_blocks.txt à la liste des blocs défectueux pour le système de fichiers ext2/3/4 sur /dev/sda2.

18. Définir la liste des blocs défectueux à partir d'un fichier

e2fsck -L $BadBlocksFile

Définit la liste des blocs défectueux pour le système de fichiers en cours de vérification sur les blocs énumérés dans le fichier spécifié.

Exemple:

e2fsck -L /root/bad_blocks.txt /dev/sdb1

Cette commande définit la liste des blocs défectueux pour le système de fichiers ext2/3/4 sur /dev/sdb1 en fonction des blocs répertoriés dans le fichier /root/bad_blocks.txt, en écrasant toute liste de blocs défectueux existante.

19. Trouver et Signaler les Blocs Défectueux

badblocks -o $BadBlocks.rpt /dev/sda3 $TotalBlockCount

Cette commande trouve et signale les blocs défectueux sur le périphérique /dev/sda3, en écrivant les résultats dans le fichier $BadBlocks.rpt. Le paramètre $TotalBlockCount spécifie le nombre total de blocs à vérifier.

Exemple:

badblocks -o /tmp/sda3_bad_blocks.rpt /dev/sda3 10485760

Cette commande analyse le périphérique /dev/sda3 pour détecter les blocs défectueux et écrit les résultats dans le fichier /tmp/sda3_bad_blocks.rpt. Elle vérifiera un total de 10485760 blocs (5 Go pour une taille de bloc de 512 octets) sur le périphérique.

20. Forcer la vérification du système de fichiers avec liste des mauvais blocs

e2fsck -f -l $BadBlocks.rpt /dev/sda1

Cette commande force une vérification du système de fichiers sur /dev/sda1, en utilisant la liste des mauvais blocs fournie dans le fichier $BadBlocks.rpt généré par la commande badblocks.

Exemple:

e2fsck -f -l /tmp/sda3_bad_blocks.rpt /dev/sda1

Cette commande force une vérification du système de fichiers sur /dev/sda1 et utilise la liste des mauvais blocs contenue dans le fichier /tmp/sda3_bad_blocks.rpt (généré par la commande badblocks dans l'exemple précédent). Cela peut être utile si vous voulez vérifier ou réparer un système de fichiers en utilisant une liste de mauvais blocs pré-existante.

fsck contre e2fsck

Comme vous avez pu le remarquer dans les exemples précédents, j'ai utilisé à la fois les commandes fsck et e2fsck. Sont-elles similaires ? Vous pourriez vous demander.

Non, fsck et e2fsck ne sont pas les mêmes, bien qu'ils soient liés et servent des objectifs similaires.

fsck (abréviation de « file system check ») est une commande générique qui peut être utilisée pour vérifier et réparer différents types de systèmes de fichiers sur les systèmes d'exploitation Linux et de type Unix. Elle agit comme une interface pour différents outils de vérification spécifiques aux systèmes de fichiers, tels que e2fsck pour les systèmes de fichiers ext2/ext3/ext4, xfs_repair pour les systèmes de fichiers XFS, fsck.vfat pour les systèmes de fichiers FAT, et ainsi de suite.

Lorsque vous exécutez fsck sans spécifier de type de système de fichiers particulier, il tente de détecter automatiquement le type de système de fichiers puis appelle l'outil de vérification spécifique au système de fichiers approprié. Par exemple, si vous exécutez fsck sur un système de fichiers ext4, il invoquera automatiquement e2fsck en arrière-plan.

e2fsck, en revanche, est un outil spécialisé conçu spécifiquement pour vérifier et réparer les systèmes de fichiers ext2, ext3 et ext4. C'est un utilitaire de bas niveau qui effectue des vérifications et des réparations plus détaillées et complètes sur ces types de systèmes de fichiers.

En résumé, les principales différences entre fsck et e2fsck sont :

  1. fsck est une commande frontale générique qui peut gérer différents types de systèmes de fichiers, tandis que e2fsck est spécifique aux systèmes de fichiers ext2/ext3/ext4.
  2. fsck détecte automatiquement le type de système de fichiers et appelle l'outil spécifique au système de fichiers approprié (comme e2fsck pour ext2/ext3/ext4).
  3. e2fsck offre des options plus avancées et détaillées pour vérifier et réparer les systèmes de fichiers ext2/ext3/ext4, car il est conçu spécifiquement pour ces types de systèmes de fichiers.

Donc, tandis que fsck est un outil polyvalent, e2fsck est un outil spécialisé pour les systèmes de fichiers ext2/ext3/ext4.

Si vous savez que vous travaillez avec un système de fichiers ext2/ext3/ext4, vous pouvez utiliser e2fsck directement pour un contrôle et des options plus granuleux.

Sinon, fsck sert de front-end pratique pour vérifier et réparer divers types de systèmes de fichiers.

Fiche de commandes fsck

Voici une aide-mémoire pour les commandes essentielles fsck (vérification du système de fichiers) dans un format tabulaire soigné :

CommandeDescription
fsck /dev/sdXNVérifiez le système de fichiers sur la partition spécifiée (par exemple, /dev/sda1).
fsck -AVérifiez tous les systèmes de fichiers répertoriés dans /etc/fstab.
fsck -NMontrer ce qui serait fait sans réellement le faire.
fsck -CAfficher la barre de progression lors de la vérification.
fsck -MIgnorer les systèmes de fichiers montés.
fsck -RIgnorer le système de fichiers racine.
fsck -VMode verbeux, affiche une sortie détaillée.
fsck -yRépondre automatiquement « oui » à toutes les invites.
fsck -nRépondre automatiquement « non » à toutes les invites.
fsck -rRéparez le système de fichiers de manière interactive.
fsck.ext4 /dev/sdXNVérifiez spécifiquement le système de fichiers ext4 sur la partition.
fsck -t ext4 /dev/sdXNVérifiez le système de fichiers du type spécifié (ext4 dans ce cas).
fsck -lVerrouillez l'appareil pour prévenir plusieurs vérifications.
Tableau 1 : Fiche d'astuces des commandes fsck

Remplacez /dev/sdXN par l'identifiant réel du périphérique (par exemple, /dev/sda1).

Ces commandes couvrent les bases et quelques options avancées pour utiliser fsck afin de maintenir et réparer les systèmes de fichiers.

Fiche de commandes e2fsck

Voici une feuille de référence pour les commandes essentielles e2fsck :

CommandeDescription
e2fsck /dev/sdXNVérifiez le système de fichiers ext2/ext3/ext4 sur la partition spécifiée (par exemple, /dev/sda1).
e2fsck -p /dev/sdXNRéparer automatiquement le système de fichiers sans aucune question.
e2fsck -n /dev/sdXNNe faites aucune modification au système de fichiers, vérifiez-le uniquement.
e2fsck -y /dev/sdXNSupposez « oui » à toutes les questions.
e2fsck -f /dev/sdXNVérification de la force, même si le système de fichiers semble propre.
e2fsck -c /dev/sdXNVérifiez la présence de blocs défectueux et ajoutez-les à la liste des blocs défectueux.
e2fsck -v /dev/sdXNMode verbeux, afficher la sortie détaillée.
e2fsck -b 32768 /dev/sdXNUtilisez un superbloc alternatif (par exemple, 32768).
e2fsck -B 4096 /dev/sdXNDéfinissez la taille du bloc à 4096 octets.
e2fsck -C 0 /dev/sdXNAfficher une barre de progression.
e2fsck -j /dev/sdXNVérifiez un système de fichiers avec un journal externe.
e2fsck -D /dev/sdXNOptimiser les répertoires dans le système de fichiers.
e2fsck -E <options-étendus> /dev/sdXNSpécifiez les options étendues (voir la page de manuel pour plus de détails).
e2fsck -k /dev/sdXNConserver la liste des blocs défectueux.
e2fsck -r /dev/sdXNRéparez le système de fichiers de manière interactive (comme sans options).
Tableau 2 : Fiche de commandes e2fsck

Remplacez /dev/sdXN par l'identifiant réel du périphérique (par exemple, /dev/sda1).

Ces commandes couvrent les bases et certaines options avancées pour utiliser e2fsck afin de maintenir et de réparer les systèmes de fichiers ext2, ext3 et ext4.

Conclusion

Rappelez-vous, un système de fichiers sain est crucial pour maintenir la stabilité du système et l'intégrité des données. Vérifier et réparer régulièrement vos systèmes de fichiers avec fsck fait partie intégrante de votre routine de maintenance du système Linux.

En utilisant efficacement la commande fsck et les exemples fournis dans ce guide, vous serez bien équipé pour diagnostiquer et réparer les problèmes courants du système de fichiers sur votre système Linux.

Nous avons également inclus des antisèches essentielles pour les commandes fsck et e2fsck pour un accès rapide. Gardez-les toujours près de votre bureau et utilisez-les en cas de besoin.

Lecture connexe : Une introduction au fichier /etc/fstab de Linux