Qual é a diferença entre as ferramentas de verificação de erro do disco linux fsck e e2fsck?
fsck é apenas o nome original. Quando eles lançaram novos sistemas de arquivos, precisariam de uma ferramenta específica para cada um, efsck para ext, e2fsck para ext2, dosfsck, fsckvfat. Então, eles fizeram do fsck o front end que apenas chama a que for a ferramenta apropriada.
fsck é um wrapper para a família de ferramentas fsck. * específica do sistema de arquivos. Eles podem ser usados alternadamente com uma ressalva (da página de manual do fsck):
Opções que não são entendidas pelo fsck são passadas para o verificador específico do sistema de arquivos. Esses argumentos não devem receber argumentos, pois não há como o fsck conseguir adivinhar corretamente quais argumentos têm opções e quais não.
As opções e argumentos a seguir a - são tratados como opções específicas do sistema de arquivos a serem passadas para o verificador específico do sistema de arquivos.
Observe que o fsck não foi projetado para passar opções arbitrariamente complicadas a verificadores específicos do sistema de arquivos. Se você estiver fazendo algo complicado, basta executar o verificador específico do sistema de arquivos diretamente. Se você passar ao fsck alguma opção e argumentos terrivelmente complicados, e ele não fizer o que você espera, não se preocupe relatando isso como um bug. Você certamente está fazendo algo que não deveria estar fazendo com o fsck.
No entanto, o fsck manipulará a maioria das operações normais em um sistema de arquivos.
No meu sistema eu tenho:
fsck
fsck.ext2
fsck.ext3
fsck.ext4
e2fsck
fsck.*
para outros sistemas de arquivos não ext)Agora, nenhum desses são links simbólicos, mas as ferramentas e2fsck
E fsck.ext2/3/4
Compartilham o mesmo inode, portanto, na verdade, são o mesmo arquivo. (É possível que esse binário interrogue seu próprio nome quando for executado e se comporte de maneira diferente para o nome com o qual é chamado, mas duvido que seja esse o caso.)
Então, agora estamos com apenas duas ferramentas:
fsck
e2fsck
E, como outros já disseram, fsck
é simplesmente um front end que chama a ferramenta apropriada para o sistema de arquivos em questão, que neste caso é e2fsck
Para um sistema de arquivos da família ext.
Presumo que a razão para ter os vários arquivos fsck.ext2/3/4
É 1. ser fácil escrever scripts que possam lidar com todos os tipos de sistemas de arquivos genericamente (eles podem deduzir o nome da ferramenta fsck trivialmente do tipo de sistema de arquivos) e 2. para flexibilidade, para que seja trivial dividir o e2fsck em duas ou mais ferramentas independentes, se necessário no futuro.