===== fsck =====
* Objet : utilisation de l'outil FSCK
* Niveau requis : {{tag>débutant avisé}}
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-)
* Suivi : {{tag>à-compléter}}
* Création par [[user>smolski]] le 20/06/2009
* Testé par ... le ...
* Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?id=1474 | c'est ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
* Voir aussi les commandes [[mount]] et [[umount]]
===== Examen et réparation de partitions =====
La commande **fsck** (//File System Check// ou //File System Consistency Check//) permet le contrôle et la réparation des partitions. \\
Ne pas confondre avec la défragmentation, fsck fait un check, une vérification de l'état du système de fichier, savoir si y'a pas d'erreur, de fichier/dossier partiellement écrit, des inodes agonisants et tout l'toutim, etc.\\
Bref, il fait la révision, mais ne refait pas la carrosserie :-) (//c'est du //**captfab**// pur jus ça !//)
Pour utiliser fsck, il faut connaître la partition à traiter car nous devons la démonter pour l'examiner/réparer.
Dans un terminal tapotez un petit [[doc:systeme:fdisk|fdisk comme ceci]] :
fdisk -l
qui nous renseignera sur le nom de la partition à examiner. Si la partition est montée, on peut aussi utiliser la [[doc:systeme:df|commande df]] qui donnera une sortie plus explicite :
df -hT
Avec cette information, la [[doc:systeme:umount|démonter]] toujours sous root :
umount /dev/VotrePartition
Et si la partition n'est pas montée, elle est donc parfaitement opérationnelle pour exécuter la commande **fsck** dessus. \\
//Merci à// **Oursonobo** //pour son intervention sur le forum là// :
* https://debian-facile.org/viewtopic.php?pid=247575#p247575
et enfin :
fsck /dev/VotrePartition
Pour l'examen et la réparation...
Fsck peut déterminer seul le type de la partition que nous lui désignons. //Trôôô fort le bestiau...// \\
Perso, j'y colle quand même le type : **ext3**, ou **vfat**... ou autres... cela donne :
fsck.ext4
par exemple... pour une partition ext4, //oui benet//... et avec **un point** entre la commande **fsck** et le **type** désigné. À noter que l'option **-t** donne le même résultat, tous les chemins mènent à Rome : fsck -t ext4. De même que la commande **e2fsck** est destinée aux systèmes de fichiers **ext2/ext3/ext4**.
Bref, nous nous retrouvons avec l'examen de cette partition en cours et une demande de confirmation pour chaque réparation proposée.
y = accepter
Et tout se refait une beauté tranquillement.
En final, [[doc:systeme:mount|remonter la partition]]...
mount /dev/VotrePartition
et toc tout est bon maintenant...
==== Simulation ====
On peut simuler la commande fsck avec l'option **-N**
man fsck
-N Ne pas exécuter, montre uniquement ce qui devrait être accompli.
===== Au démarrage : =====
Bon, tout va très bien pour les partitions démontables, mais pour les partitions systèmes et en particulier la partition racine ? Si jamais on modifie le système de fichier alors qu'on est en train de "réparer", on risque de carrément tout casser !
La solution : Le faire au démarrage.
Une première solution est bien sûr de démarrer sur un autre système, comme un liveCD. Mais c'est lourd, donc pour les cas désespérés.
Une solution bien plus simple est de redémarrer en demandant une vérification au démarrage. Toujours en root :
shutdown -rF now
----
Si on ne veut pas redémarrer immédiatement mais simplement faire un test au prochain démarrage : FIXME (méthode obsolète depuis l'utilisation de systemd dans Debian, c'est à dire Debian 8 Jessie )
touch /forcefsck
===== Erreur au démarrage =====
==== Partition Système (ou racine /) ====
Si le système de fichier est défectueux, il peut arriver que le système vous renvoie un gentil message qui va ressembler à celui là :
# fsck failed. Please repair manually and reboot.
# Please note that the root file system is currently mounted read-only, to remount
# it read-write # mount -n -o remount,rw /
# ctrl - D will exit from this shell and reboot the system
//Que se passe-t-il ?//\\
Par sécurité, le système démarre en mode de récupération et **monte la partition système en lecture seule**
pour être certain de ne pas faire de bêtise en écrivant sur un système de fichier incohérent.
Bon là c'est moi qui paraît incohérent ^_^; la partition est montée mais on va quand même faire un fsck.\\
Comme elle est montée en lecture seule, on ne risque pas de faire une bêtise en écrivant durant la réparation.\\
Comme on est en mode "single-user" et qu'il n'y a pas pleins de trucs en train de tourner, on va pouvoir travailler tranquillement.
Vous entrez le //mot de passe root// quand il est demandé pour accéder à la console, et comme ci-dessus vous lancez le fsck : \\
(//Bien sûr, vous adaptez la commande à votre cas, je considère ici que la partition / que je dois réparer se trouve en// /dev/**sda6**,)
fsck -f -y /dev/sda6
== Explication des options : ==
- -f pour //forcer//,
- -y pour //yes,réparer automatiquement sans confirmer//.
==== Partition de stockage de données (autre que racine / du système lancé) ====
S'il ne s'agit pas de la partition système, après le démarrage normal, il faut la démonter :
Démontage de la partition sda7 :
umount /dev/sda7
Tapoter (//en considérant que cette partition est en format ext3 par exemple//) :
fsck.ext3 /dev/sda7
La procédure démarre et se poursuit comme précédemment !
==== Vérification automatique ====
Par défaut sur Debian, le fsck est lancé tous les 30 démarrages. Si vous avez un pc fixe que vous démarrez 1 fois par jour, ça fera une fois par mois, mais si vous avez un portable que vous démarrez 5 fois ou plus par jour, vous risquez de trouver ça pénible d'attendre le fsck.
D'abord, il faut savoir que :
le fait de vérifier une partition ou pas se trouve dans le fichier /etc/fstab dans la colonne
#
proc /proc proc defaults 0 0
Proc n'est jamais testé ce qui est normal, cela ne correspond pas à un disque physique, (chiffre 0).
----
\\
/dev/sda6 / ext3 relatime,user_xattr,errors=remount-ro 0 1
La racine **doit** être en chiffre 1.
----
\\
/dev/sda7 /home ext3 relatime,user_xattr 0 2
La partition home est testée automatiquement (chiffre 2).
----
\\
/dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0
Le DVD n'est jamais testé, ce n'est pas un système de fichier testable comme ça ni réparable (chiffre 0).
----
\\
===== Gestion des fréquences des vérifications =====
La modification de la fréquence de vérification se fait, pour les partitions ext2/ext3, avec **tune2fs**. Pour les autres types de partitions, se reporter à l'outil correspondant.
Il y a 2 paramètres modifiables :
==== Option -c nn ====
''-c nn'' règle la fréquence tous les nn démarrage. Il est très fortement recommandé de faire la vérification au minimum tous les 100 redémarrages.
==== Option -i d|m|w ====
''-i d|m|w'' règle un intervalle de temps en jour ou mois ou semaine
=== Exemple pour un portable ===
Si vous avez un portable, vous allez redémarrer plusieurs fois par jour, 30 sera un peu trop fréquent à votre goût, par contre un portable est exposé, donc trop éloigner les vérifications n'est pas une bonne idée.
Réglons par exemple une vérification tous les 50 démarrage avec un intervalle de temps de 2 semaines de la partition ''hda1'' :
tune2fs -c 50 -i 2w /dev/hda1
===== Liens vers le forum =====
==== Perte de données ====
Réparer le système fichier avec fsck, ça veut dire le remettre dans un état cohérent. Ça ne garantit pas la préservation des données. Parfois l'état de certains fichiers est tellement incohérent que la seule façon de réparer est de les supprimer.
https://debian-facile.org/viewtopic.php?pid=332975#p332975
===== Remerciements =====
Mes remerciements à M. /usr/bin/man ainsi qu'à tous les rejetons de /usr/share/doc/