Comment utiliser la commande fsck sous Linux
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 le fsck
commande pour rechercher et corriger les erreurs du système de fichiers.
Sommaire
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 en rotation 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 dans lequel les fichiers du système d’exploitation doivent être stockés. 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, nous accordons donc 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 mieux à même de gérer les problèmes pouvant être causés par une panne de courant soudaine ou un plantage 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 y sont définies.
Le fsck
La commande vous permet de vérifier que vos systèmes de fichiers sont sains. S’il trouve des problèmes, il peut généralement les résoudre pour vous aussi.
Faire les contrôles en amont
En utilisant 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, ne le démarrent pas et ne s’envolent pas dans le bleu pâle là-bas. Ils font des contrôles en amont. 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. Alors avant de faire quoi que ce soit avec fsck
, nous allons faire un peu de reconnaissance.
Nous commencerons par fdisk
et injectez-le dans less
. Nous ne demandons pas d’informations sur une partition spécifique. En utilisant le -l
option (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 | less
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és 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 le parted
commander. Nous utiliserons le 'print'
option pour afficher les tables de partition dans la fenêtre du terminal.
sudo parted /dev/sda 'print'
Nous obtenons cette fois des informations supplémentaires, notamment le type de système de fichiers sur chaque partition.
Model: ATA VBOX HARDDISK (scsi) Disk /dev/sda: 34.4GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 2097kB 1049kB bios_grub 2 2097kB 540MB 538MB fat32 EFI System Partition boot, esp 3 540MB 34.4GB 33.8GB ext4
Il y a trois disques dans cet ordinateur de test. Voici les résultats pour les deux autres disques /dev/sdb
et /dev/sdc
. Notez que ces systèmes de fichiers n’ont pas de champ « Nom ».
sudo parted /dev/sdb 'print'
Model: ATA VBOX HARDDISK (scsi) Disk /dev/sdb: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 21.5GB 21.5GB primary ext4
sudo parted /dev/sdc 'print'
Model: ATA VBOX HARDDISK (scsi) Disk /dev/sdc: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 21.5GB 21.5GB primary 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 disque est le plus ancien ext3
.
Nous passons un identifiant de partition à fsck
, et il vérifie le système de fichiers sur cette partition. Mais nous ne pouvons pas courir 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 le df
commander.
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
, lequel est /dev/sdb1
. Nous avons vu plus haut qu’il s’agit d’un ext4
système de fichiers, et il est monté sur « /run/mount/dave/sata2. »
Nous utiliserons le umount
commander. Notez qu’il n’y a pas de « n » dans « umount ».
sudo umount /run/mount/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 plus approfondie du système de fichiers n’est pas effectuée automatiquement. Nous pouvons également regarder le code de retour qui fsck
retourné à la coquille.
echo $?
La valeur de retour de zéro n’indique aucune erreur. Les codes retour possibles sont :
- 0: aucune erreur
- 1: Erreurs du système de fichiers corrigées
- 2: Le système doit être redémarré
- 4: Erreurs du 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 propre, nous pouvons forcer une vérification du système de fichiers, en utilisant le -f
(forcer) option.
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’est 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 le -a
(tous) option. 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 seraient après un démarrage normal.
sudo mount -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
, les ext3
système de fichiers sur notre PC de test, en utilisant exactement la même commande que nous avons utilisée sur /dev/sdb1
, qui est un ext4
cloison.
sudo fsck /dev/sdc1 -f
Vous ne voudrez peut-être pas vous 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
ne pas proposer de réparer quoi que ce soit et simplement signaler les problèmes à la fenêtre du terminal. Le -N
L’option (essai à sec) fait exactement cela :
sudo fsck -N /dev/sdb1
Le contraire, c’est de dire fsck
de ne pas prendre la peine de demander s’il trouve des erreurs et de simplement les corriger. Pour ce faire, utilisez le -y
(aucune invite) option.
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 courir fsck
sur la partition racine ? La réponse est d’interrompre le processus de démarrage et d’exécuter fsck
en mode récupération.
Pendant que votre ordinateur démarre, maintenez enfoncée une touche « Shift ». Si vous avez bien chronométré, vous ne démarrerez pas sous Linux. Le processus de démarrage s’arrêtera sur un menu en noir et blanc. La machine de test utilisée pour cet article utilisait 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 portera 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 ».
Tu verras fsck
fonctionner en mode interactif. S’il y a des problèmes, vous serez invité à laisser fsck
les corriger ou les ignorer. Une fois les systèmes de fichiers vérifiés, le menu de récupération s’affichera à nouveau.
Sélectionnez l’option « reprendre », appuyez sur la touche « Tab » pour déplacer la surbrillance sur le bouton « Ok », et 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 normalement.
Quand les choses vont mal
Les filets de sécurité sont là pour une raison. Apprenez à connaître le fsck
commander. Si le besoin s’en fait sentir un jour de l’utiliser dans la colère, vous serez heureux de vous être familiarisé à l’avance.