Quelle est la différence entre fsck et e2fsck?

30

Quelle est la différence entre les outils de vérification d'erreur du disque Linux fsck et e2fsck?

Fred Hamilton
la source

Réponses:

29

fsck n'est que le nom d'origine. Quand ils sortiraient avec de nouveaux systèmes de fichiers, ils auraient besoin d'un outil spécifique pour chacun, efsck pour ext, e2fsck pour ext2, dosfsck, fsckvfat. Ils ont donc fait de fsck le front-end qui appelle simplement l'outil approprié.

hyperslug
la source
Hmm, donc apparemment, vous pouvez utiliser le "front-end" fsck pour certaines tâches courantes, mais pas pour tout? Par exemple, l'option -c ( superuser.com/questions/20010/… ) est mentionnée dans la page de manuel e2fsck mais dans celle de fsck.
Jonik
Existe-t-il un fsck GPT?
Jonathan
@Jonathan fsck vérifie les systèmes de fichiers, tandis que GPT est la table de partition elle-même. Il y a probablement un outil qui peut les vérifier, mais je ne peux pas penser à un sur le dessus de ma tête autre que l'Utilitaire de disque du Mac (ou la ligne de commande diskutil). La gptcommande a une option "récupérer à partir de la table de sauvegarde", au moins sur Mac.
SilverWolf
15

fsck est un wrapper pour la famille d'outils fsck. * spécifiques au système de fichiers . Ils peuvent être utilisés de manière interchangeable avec une mise en garde (à partir de la page de manuel fsck):

Les options qui ne sont pas comprises par fsck sont transmises au vérificateur spécifique au système de fichiers. Ces arguments ne doivent pas prendre d'arguments, car il n'est pas possible pour fsck de deviner correctement quels arguments prennent des options et lesquels ne le font pas.

Les options et arguments qui suivent le signe - sont traités comme des options spécifiques au système de fichiers à transmettre au vérificateur spécifique au système de fichiers.

Veuillez noter que fsck n'est pas conçu pour transmettre des options arbitrairement compliquées aux vérificateurs spécifiques au système de fichiers. Si vous faites quelque chose de compliqué, veuillez simplement exécuter directement le vérificateur spécifique au système de fichiers. Si vous passez à fsck une option et des arguments horriblement compliqués, et qu'il ne fait pas ce que vous attendez, ne vous embêtez pas à le signaler comme un bogue. Vous faites presque certainement quelque chose que vous ne devriez pas faire avec fsck.

Cependant, fsck gérera la plupart des opérations normales sur un système de fichiers.

nagul
la source
5

Sur mon système, j'ai:

  • fsck
  • fsck.ext2
  • fsck.ext3
  • fsck.ext4
  • e2fsck
  • ... (plus d' fsck.*outils pour d'autres systèmes de fichiers non ext)

Désormais, aucun de ces liens n'est symbolique, mais e2fsckles fsck.ext2/3/4outils partagent tous le même inode et sont donc en fait le même fichier. (Il est possible que ce binaire interroge son propre nom lors de son exécution et se comporte différemment pour le nom avec lequel il est invoqué, mais je doute que ce soit le cas.)

Nous ne sommes donc plus qu'à deux outils:

  • fsck
  • e2fsck

Et, comme d'autres l'ont dit, il fscks'agit simplement d'un frontal qui appelle l'outil approprié pour le système de fichiers en question, qui dans ce cas est e2fsckpour un système de fichiers de la famille ext.

Je présume que la raison d'avoir les différents fsck.ext2/3/4fichiers est pour que 1. il soit facile d'écrire des scripts qui peuvent gérer tous les types de système de fichiers de manière générique (ils peuvent déduire le nom de l'outil fsck trivialement du type de système de fichiers) et 2. pour la flexibilité, de sorte que ce soit trivial de diviser l'e2fsck en deux ou plusieurs outils indépendants si nécessaire à l'avenir.

Paul Ruane
la source
Merci pour l'explication plus longue, car après avoir lu la réponse @hyperslug, je ressentais déjà une crise cardiaque :-) J'ai un système de fichiers ext3 et j'ai exécuté e2fsck.
greenoldman
Désormais, aucun de ces liens n'est symbolique, mais e2fsck et les outils fsck.ext2 / 3/4 partagent tous le même inode et sont en fait le même fichier. (Il est possible que ce binaire interroge son propre nom lorsqu'il est exécuté et se comporte différemment pour le nom avec lequel il est invoqué, mais je doute que ce soit le cas.) - Pourquoi pas - c'est une façon particulièrement * nix-ish de faire des choses et pourrait être le cas!
SlySven
Ces noms alternatifs sont en fait des exemples du lien dur le moins repéré (la plupart des gens sont familiers avec les liens symboliques mais leur frère plus dur les utilise également bien qu'ils soient confinés au même appareil .)
SlySven