Quelle est la différence entre les outils de vérification d'erreur de disque Linux fsck et e2fsck?
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 d'eux, efsck pour ext, e2fsck pour ext2, dosfsck, fsckvfat. Ils ont donc fait de fsck le front-end qui n’appelle que l’outil approprié.
fsck est un wrapper pour la famille d'outils fsck. * spécifique au système de fichiers. Ils peuvent être utilisés indifféremment 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 fsck n’a aucun moyen de deviner correctement quels arguments acceptent les options et lesquelles ne le font pas.
Les options et les arguments qui suivent - 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 transmettez à 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 bug. 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.
Sur mon système, j'ai:
fsck
name__fsck.ext2
fsck.ext3
fsck.ext4
e2fsck
fsck.*
pour d'autres systèmes de fichiers non-ext)Désormais, aucun de ces liens n'est un lien symbolique, mais e2fsck
et les outils fsck.ext2/3/4
partagent tous le même inode et sont donc en réalité le même fichier. (Il est possible que ce binaire interroge son propre nom quand 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.)
Nous n’avons donc plus que deux outils:
fsck
name__e2fsck
Et, comme d’autres l'ont déjà dit, fsck
est simplement un frontal appelant l'outil approprié pour le système de fichiers en question, qui est dans ce cas e2fsck
pour un système de fichiers de la famille ext.
Je suppose que la raison d’avoir les différents fichiers fsck.ext2/3/4
est: 1. Il est facile d’écrire des scripts qui gèrent tous les types de système de fichiers de façon générique (ils peuvent déduire le nom de l’outil fsck de manière générale du type de système de fichiers) et trivial de diviser e2fsck en deux ou plusieurs outils indépendants si nécessaire dans le futur.