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.
[Avertissement]
Ne lancez pas ces commandes sur des systèmes de production sans sauvegardes appropriées, car elles peuvent potentiellement corrompre ou effacer des données si elles sont utilisées incorrectement. Nous allons pratiquer dans des environnements de test pour garantir votre sécurité.
[NOTE]
Les commandes suivantes doivent être exécutées avec les permissionssudoouroot.
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/sdXNRemplacez /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/sdXNCommandes 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 -NCette 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.1Cette ligne indique que la commande fsck fait partie du paquet util-linux, version 2.36.1.
[/usr/sbin/fsck.ext4 (1) -- /] fsck.ext4 /dev/nvme0n1p2Cette 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/nvme0n1p1Ici, 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_SSDCette 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 :
- Un système de fichiers ext4 monté à la racine (
/). - Un système de fichiers FAT (vfat) monté à
/boot/efi, probablement la partition système EFI. - Un système de fichiers exFAT avec le label
WD_SSDmonté à/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 -AsCette 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/sda1Cette 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 407754. Forcer la vérification du système de fichiers avec sortie détaillée
fsck -fv /dev/sda1Semblable à 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/sda1Cette 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/sda1Cette 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/sda1Ceci 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 -pCette 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 -nCette 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 -yComme 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 -cCette 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 -fCela 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 -vPermet 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 $SuperblockCette 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/sda1Cette 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 $BlockSizeForce e2fsck à utiliser une taille de bloc spécifique lors de la recherche du superbloc.
Exemple:
e2fsck -B 4096 /dev/sdb2Cette 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 $DirSpé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/sdc1Cette 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 $BadBlocksFileAjoute 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/sda2Cette 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 $BadBlocksFileDé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/sdb1Cette 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 $TotalBlockCountCette 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 10485760Cette 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/sda1Cette 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/sda1Cette 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 :
fsckest une commande frontale générique qui peut gérer différents types de systèmes de fichiers, tandis quee2fsckest spécifique aux systèmes de fichiers ext2/ext3/ext4.fsckdétecte automatiquement le type de système de fichiers et appelle l'outil spécifique au système de fichiers approprié (commee2fsckpour ext2/ext3/ext4).e2fsckoffre 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é :
| Commande | Description |
|---|---|
fsck /dev/sdXN | Vérifiez le système de fichiers sur la partition spécifiée (par exemple, /dev/sda1). |
fsck -A | Vérifiez tous les systèmes de fichiers répertoriés dans /etc/fstab. |
fsck -N | Montrer ce qui serait fait sans réellement le faire. |
fsck -C | Afficher la barre de progression lors de la vérification. |
fsck -M | Ignorer les systèmes de fichiers montés. |
fsck -R | Ignorer le système de fichiers racine. |
fsck -V | Mode verbeux, affiche une sortie détaillée. |
fsck -y | Répondre automatiquement « oui » à toutes les invites. |
fsck -n | Répondre automatiquement « non » à toutes les invites. |
fsck -r | Réparez le système de fichiers de manière interactive. |
fsck.ext4 /dev/sdXN | Vérifiez spécifiquement le système de fichiers ext4 sur la partition. |
fsck -t ext4 /dev/sdXN | Vérifiez le système de fichiers du type spécifié (ext4 dans ce cas). |
fsck -l | Verrouillez l'appareil pour prévenir plusieurs vérifications. |
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 :
| Commande | Description |
|---|---|
e2fsck /dev/sdXN | Vérifiez le système de fichiers ext2/ext3/ext4 sur la partition spécifiée (par exemple, /dev/sda1). |
e2fsck -p /dev/sdXN | Réparer automatiquement le système de fichiers sans aucune question. |
e2fsck -n /dev/sdXN | Ne faites aucune modification au système de fichiers, vérifiez-le uniquement. |
e2fsck -y /dev/sdXN | Supposez « oui » à toutes les questions. |
e2fsck -f /dev/sdXN | Vérification de la force, même si le système de fichiers semble propre. |
e2fsck -c /dev/sdXN | Vérifiez la présence de blocs défectueux et ajoutez-les à la liste des blocs défectueux. |
e2fsck -v /dev/sdXN | Mode verbeux, afficher la sortie détaillée. |
e2fsck -b 32768 /dev/sdXN | Utilisez un superbloc alternatif (par exemple, 32768). |
e2fsck -B 4096 /dev/sdXN | Définissez la taille du bloc à 4096 octets. |
e2fsck -C 0 /dev/sdXN | Afficher une barre de progression. |
e2fsck -j /dev/sdXN | Vérifiez un système de fichiers avec un journal externe. |
e2fsck -D /dev/sdXN | Optimiser les répertoires dans le système de fichiers. |
e2fsck -E <options-étendus> /dev/sdXN | Spécifiez les options étendues (voir la page de manuel pour plus de détails). |
e2fsck -k /dev/sdXN | Conserver la liste des blocs défectueux. |
e2fsck -r /dev/sdXN | Réparez le système de fichiers de manière interactive (comme sans options). |
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