Comment utiliser la commande fsck sous Linux
Publié: 2022-01-29 Toutes nos données importantes se trouvent dans un système de fichiers d'un type ou d'un autre, et des problèmes de système de fichiers sont inévitables. Sous Linux, nous pouvons utiliser la commande fsck
pour rechercher et corriger les erreurs du système de fichiers.
Les systèmes de fichiers sont des logiciels
Les systèmes de fichiers sont l'un des composants les plus critiques d'un ordinateur. Sans système de fichiers, l'ordinateur ne peut stocker aucune donnée sur un disque dur, qu'il s'agisse d'un plateau mécanique tournant ou d'un disque SSD. En fait, un système de fichiers doit être créé avant que le système d'exploitation puisse être installé sur le disque dur. Il doit y avoir quelque chose pour stocker les fichiers du système d'exploitation. Un système de fichiers est donc créé pendant le processus d'installation.
Les systèmes de fichiers sont créés par un logiciel, écrits par un logiciel et lus par un logiciel. Comme vous le savez, tous les logiciels complexes ont des bugs. Nos données sont d'une importance cruciale pour nous, c'est pourquoi nous accordons une grande confiance aux systèmes de fichiers et aux logiciels qui les créent et les utilisent. Si quelque chose ne va pas, nous pouvons perdre l'accès à des parties du système de fichiers ou même à une partition entière.
Les systèmes de fichiers de journalisation modernes sont plus efficaces pour gérer les problèmes qui peuvent être causés par une coupure de courant soudaine ou une panne du système. Ils sont robustes, mais ils ne sont pas invincibles. Si leurs tables internes sont brouillées, ils peuvent perdre la trace de l'emplacement de chaque fichier sur le lecteur, de sa taille, de son nom et des autorisations de fichier qui lui sont attribuées.
La commande fsck
vous permet de vérifier que vos systèmes de fichiers sont sains. S'il détecte des problèmes, il peut généralement les résoudre pour vous aussi.
Effectuez les vérifications avant le vol
L'utilisation de fsck
nécessite des privilèges sudo. Toute commande pouvant apporter des modifications à un système de fichiers doit être traitée avec prudence et réservée à ceux qui savent ce qu'ils font.
Les pilotes ne sautent pas dans un avion, le démarrent et s'envolent dans le bleu pâle là-bas. Ils font des vérifications avant le vol. Il y a trop en jeu pour faire autrement. C'est une bonne habitude à développer. Avant d'utiliser fsck
, vous devez vous assurer que vous allez l'utiliser sur le bon lecteur. Donc avant de faire quoi que ce soit avec fsck
, nous allons faire un peu de reconnaissance.
Nous allons commencer avec fdisk
et le rediriger vers less
. Nous ne demandons pas d'informations sur une partition spécifique. En utilisant l'option -l
(liste), fdisk
répertorie les tables de partitions sur tous les périphériques qu'il trouve dans le fichier « /proc/partitions », s'il existe.
sudo fdisk -l | moins
Nous pouvons voir les entrées pour /dev/sda
et /dev/sdb
. Vous pouvez faire défiler le fichier pour voir toutes les autres entrées qui pourraient exister sur votre ordinateur.
Les partitions sur /dev/sda
sont répertoriées comme /dev/sda1
, /dev/sda2
et /dev/sda3
. Nous avons donc trois partitions sur le premier disque. Nous pouvons voir un peu plus d'informations en utilisant la commande parted
. Nous utiliserons l'option 'print'
pour afficher les tables de partition dans la fenêtre du terminal.
sudo séparé /dev/sda 'print'
Nous obtenons cette fois des informations supplémentaires, notamment le type de système de fichiers sur chaque partition.
Modèle : DISQUE DUR ATA VBOX (scsi) Disque /dev/sda : 34,4 Go Taille de secteur (logique/physique) : 512B/512B Table de partition : gpt Indicateurs de disque : Numéro Début Fin Taille Système de fichiers Nom Indicateurs 1 1049 Ko 2097 Ko 1049 Ko bios_grub 2 2 097 Ko 540 Mo 538 Mo fat32 Démarrage de la partition système EFI, en particulier 3 540 Mo 34,4 Go 33,8 Go ext4
Il y a trois disques dans cet ordinateur de test. Voici les résultats pour les deux autres lecteurs /dev/sdb
et /dev/sdc
. Notez que ces systèmes de fichiers n'ont pas de champ "Nom".
sudo séparé /dev/sdb 'print'
Modèle : DISQUE DUR ATA VBOX (scsi) Disque /dev/sdb : 21,5 Go Taille de secteur (logique/physique) : 512B/512B Table de partition : msdos Indicateurs de disque : Numéro Début Fin Taille Type Système de fichiers Indicateurs 1 1049 Ko 21,5 Go 21,5 Go primaire ext4
sudo séparé /dev/sdc 'print'
Modèle : DISQUE DUR ATA VBOX (scsi) Disque /dev/sdc : 21,5 Go Taille de secteur (logique/physique) : 512B/512B Table de partition : msdos Indicateurs de disque : Numéro Début Fin Taille Type Système de fichiers Indicateurs 1 1 049 Ko 21,5 Go 21,5 Go primaire ext3
Les deuxième et troisième disques ont la même taille et chacun a une seule partition. Mais le système de fichiers sur le deuxième lecteur est ext4
, et le système de fichiers sur le troisième lecteur est l'ancien ext3
.
Nous transmettons un identifiant de partition à fsck
, et il vérifie le système de fichiers sur cette partition. Mais nous ne pouvons pas exécuter fsck
sur un système de fichiers monté. Nous devons démonter le lecteur. Pour ce faire, nous devons connaître le point de montage sur lequel la partition (et donc le système de fichiers) est montée.
Nous pouvons le découvrir facilement en utilisant la commande df
.
df /dev/sdb1
df /dev/sdc1
Utilisation de la commande fsck
Nous avons toutes les informations dont nous avons besoin. La première chose que nous allons faire est de démonter le système de fichiers que nous allons vérifier. Nous allons travailler sur le système de fichiers sur la première et unique partition de /dev/sdb
, qui est /dev/sdb1
. Nous avons vu précédemment qu'il s'agit d'un système de fichiers ext4
et qu'il est monté sur "/run/mount/dave/sata2".
Nous allons utiliser la commande umount
. Notez qu'il n'y a pas de "n" dans "umount".
sudo umount /exécuter/monter/dave/sata2
Avec umount
, pas de nouvelles, bonnes nouvelles. Si vous revenez silencieusement à l'invite de commande, nous sommes prêts à partir.
sudo fsck /dev/sdb1
Ce système de fichiers est signalé comme étant propre. Cela signifie que le système de fichiers signale qu'il n'a pas d'erreurs ou de problèmes. Une vérification approfondie du système de fichiers n'est pas effectuée automatiquement. Nous pouvons également examiner le code de retour que fsck
a renvoyé au shell.
echo $?
La valeur de retour de zéro indique qu'il n'y a pas d'erreurs. Les codes de retour possibles sont :
- 0 : Aucune erreur
- 1 : Erreurs de système de fichiers corrigées
- 2 : Le système doit être redémarré
- 4 : Erreurs de système de fichiers non corrigées
- 8 : Erreur de fonctionnement
- 16 : Erreur d'utilisation ou de syntaxe
- 32 : Vérification annulée à la demande de l'utilisateur
- 128 : erreur de bibliothèque partagée
Bien que le système de fichiers soit signalé comme étant propre, nous pouvons forcer une vérification du système de fichiers à l'aide de l'option -f
(force).
sudo fsck /dev/sdb1 -f
Cette fois, la vérification prend plus de temps, mais elle effectue un test plus approfondi du système de fichiers. Notre système de fichiers était en effet propre et aucune erreur n'a été signalée. Si des problèmes sont détectés au cours des tests, vous serez invité à laisser fsck
résoudre le problème ou à ignorer l'erreur.
Une fois les tests terminés, vous devez remonter le système de fichiers. La façon la plus simple de le faire est d'utiliser mount
avec l'option -a
(all). Cela vérifie "/etc/fstab" pour la liste des systèmes de fichiers et s'assure qu'ils sont tous montés comme ils le feraient après un démarrage normal.
montage sudo -a
Notez que nous n'avons pas besoin de dire à fsck
quel type de système de fichiers se trouve sur une partition ; l'utilitaire le détermine en examinant le système de fichiers. Cela signifie que nous pouvons forcer une vérification du système de fichiers sur /dev/sdc1
, le système de fichiers ext3
sur notre PC de test, en utilisant exactement la même commande que nous avons utilisée sur /dev/sdb1
, qui est une partition ext4
.
sudo fsck /dev/sdc1 -f
Vous ne voudrez peut-être pas plonger directement dans la réparation du système de fichiers. Vous préférerez peut-être regarder avant de sauter. Vous pouvez demander à fsck
de ne pas proposer de réparer quoi que ce soit et de simplement signaler les problèmes à la fenêtre du terminal. C'est exactement ce que fait l'option -N
(essai à sec) :
sudo fsck -N /dev/sdb1
L'opposé de cela est de dire à fsck
de ne pas s'embêter à demander s'il trouve des erreurs, et d'aller de l'avant et de les corriger. Pour ce faire, utilisez l'option -y
(pas d'invite).
sudo fsck -y /dev/sdb1
Utilisation de fsck sur la partition racine
Vous ne pouvez pas utiliser fsck
sur une partition montée, mais pour démarrer votre ordinateur, la partition racine doit être montée. Alors, comment pouvons-nous exécuter fsck
sur la partition racine ? La réponse est d'interrompre le processus de démarrage et d'exécuter fsck
en mode de récupération.
Pendant que votre ordinateur démarre, maintenez la touche "Shift" enfoncée. Si vous avez bien chronométré, vous ne démarrerez pas sous Linux. Le processus de démarrage s'arrêtera à un menu noir et blanc. La machine de test utilisée pour cet article exécutait Ubuntu mais d'autres distributions ont le même type de menu, bien qu'il puisse varier en apparence. Là où il est écrit "Ubuntu" dans les captures d'écran, il aura le nom de votre distribution.
Déplacez la barre de surbrillance avec les touches "Flèche vers le haut" et "Flèche vers le bas" afin que l'élément de menu "Options avancées pour Ubuntu" soit sélectionné. Appuyez sur "Entrée" pour passer à l'écran suivant.
Sélectionnez l'option qui se termine par "(mode de récupération)." Dans notre exemple, il s'agit de "Ubuntu, avec Linux 5.11.0-20-generic (mode de récupération)". Appuyez sur la touche "Entrée".
Vous verrez le menu de récupération. Sélectionnez "fsck vérifier tous les systèmes de fichiers" et appuyez sur la touche "Tab" pour déplacer la surbrillance sur le bouton "OK". Appuyez sur Entrée."
Vous verrez une notification indiquant que la partition racine sera montée avec toutes les autres partitions définies dans votre fichier "/etc/fstab".
Appuyez sur la touche "Tab" pour déplacer la surbrillance sur le bouton "Oui" et appuyez sur "Entrée".
Vous verrez fsck
s'exécuter en mode interactif. S'il y a des problèmes, vous serez invité à laisser fsck
les résoudre ou à les ignorer. Lorsque les systèmes de fichiers ont été vérifiés, vous verrez à nouveau le menu de récupération.
Sélectionnez l'option "reprendre", appuyez sur la touche "Tab" pour déplacer la surbrillance sur le bouton "Ok", puis appuyez sur "Entrée". Le processus de démarrage reprendra et vous démarrerez sous Linux.
Le démarrage en mode de récupération peut affecter certains pilotes, il est donc recommandé de redémarrer une fois de plus, dès que vous démarrez sous Linux. Cela garantit que votre ordinateur fonctionne de manière standard.
Quand les choses vont mal
Les filets de sécurité existent pour une raison. Familiarisez-vous avec la commande fsck
. Si le besoin se fait sentir de l'utiliser un jour dans la colère, vous serez content de vous être familiarisé à l'avance.
Commandes Linux | ||
Des dossiers | tar · pv · chat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · plier · uniq · journalctl · queue · stat · ls · fstab · echo · moins · chgrp · chown · rev · regarder · chaînes · type · renommer · zip · décompresser · monter · umount · installer · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convertir · rclone · déchiqueter · srm | |
Processus | alias · écran · top · sympa · renice · progrès · strace · systemd · tmux · chsh · historique · at · batch · gratuit · lequel · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · mur · oui · kill · sleep · sudo · su · time · groupadd · usermod · groupes · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg | |
La mise en réseau | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · creuser · doigt · nmap · ftp · curl · wget · qui · whoami · w · iptables · ssh-keygen · ufw |
CONNEXION: Meilleurs ordinateurs portables Linux pour les développeurs et les passionnés