web-dev-qa-db-fra.com

Quand FSCK est-il dangereux?

Récemment, j'ai vu le système de fichiers racine d'une machine dans un centre de données distant être remonté en lecture seule, en raison de problèmes de cohérence.

Au redémarrage, cette erreur a été affichée:

UNEXPECTED INCONSISTENCY: RUN fsck MANUALLY (i.e., without -a or -p options)

Après avoir exécuté fsck comme suggéré et accepté les corrections manuellement avec Y, les erreurs ont été corrigées et le système fonctionne désormais correctement.

Maintenant, je pense qu'il serait intéressant que fsck soit configuré pour exécuter et réparer tout automatiquement, car la seule alternative dans certains cas (comme celui-ci) est d'aller en personne au centre de données distant et d'attacher une console à la machine affectée.

Ma question est: pourquoi fsck demande-t-il par défaut une intervention manuelle? Comment et quand une correction effectuée par un tel programme serait dangereuse? Quels sont les cas où le sysadmin peut vouloir laisser une correction suggérée de côté pendant un certain temps (pour effectuer d'autres opérations) ou l'annuler complètement?

37
scristalli

fsck cause définitivement plus de mal que de bien si le matériel sous-jacent est en quelque sorte endommagé; mauvais processeur, mauvaise RAM, disque dur mourant, contrôleur de disque qui a mal tourné ... dans ces cas, plus de corruption est inévitable.

En cas de doute, c'est une bonne idée de simplement prendre une image du disque corrompu avec dd_rescue ou un autre outil, puis voyez si vous pouvez corriger cette image avec succès. De cette façon, vous avez toujours la configuration d'origine disponible.

41
Janne Pikkarainen

Vous avez vu un exemple où fsck a fonctionné, mais j'ai vu plus de suffisamment de systèmes de fichiers endommagés où cela n'a pas fonctionné avec succès à tout. Si cela fonctionnait de manière entièrement automatique, vous pourriez ne pas avoir la possibilité de faire des choses comme un vidage de disque dd ou quelque chose comme ça qui, dans de nombreux cas, serait une excellente idée à faire avant de tenter une réparation.

C'est jamais, jamais une bonne idée d'essayer quelque chose comme ça du tout automatique.

Oh, et les serveurs modernes devraient avoir des consoles distantes ou au moins des systèmes de secours indépendants pour récupérer à partir de quelque chose comme ça sans trimballer un KVM rack au serveur).

20
Sven

Tout d'abord, vous devez comprendre qu'avec les systèmes de fichiers modernes (journalisés), un plantage du système ne corrompra pas le système de fichiers et aucun fsck ne sera requis au démarrage.

Ext3, Ext4, ZFS, btrfs, xfs et tous les modernes FS sont 100% cohérents après un crash ou une réinitialisation du système.

Non journalisé FS comme ext2 ou vfat sont un gros NOGO pour un système rootfs.

Maintenant, si votre système nécessite un fsck au démarrage, vous devriez vous demander: quelle en était la raison en premier lieu?

Vous devriez ensuite enquêter sur vos journaux du noyau pour savoir quand et ce qui s'est passé. Vous devez également remonter le temps dans les journaux pour rechercher depuis le début de l'erreur. Vous devriez vérifier vos disques avec smartctl. Etc ... Si vous avez besoin d'un fsck sur un fs journalisé, il est pratiquement certain que votre matériel échoue, en supposant que le fs n'a pas été endommagé par un administrateur (avec des outils de niveau bloc comme dd) ou par un bug.

Il est donc stupide d'utiliser fsck pour "résoudre" le problème sans rechercher et corriger la cause première (en remplaçant/mettant à niveau le matériel/micrologiciel/logiciel défectueux).

Faire un fsck, terminer le démarrage et être heureux est pour le moins naïf. Dire "J'ai eu du travail fsck un plus grand pourcentage du temps que ce que vous citez" me fait me demander ce que vous voulez dire par "travail fsck". fsck peut avoir ramené votre fs à un état cohérent en perdant certains fichiers et données dans le processus ... Avez-vous comparé avec une sauvegarde? Beaucoup de gens perdent des fichiers ou obtiennent une corruption des données de fichiers sans s'en rendre compte ...

0
Francois Scheurer