O problema básico é que o verificador do sistema de arquivos (normalmente) não faz parte do sistema de arquivos. Em vez disso, é um programa separado que lê e grava no mesmo disco que o código do sistema de arquivos no kernel. Como resultado, se você executar o fsck em um sistema de arquivos ativo, terá duas entidades diferentes que estão lendo (e potencialmente modificando) os mesmos dados (o disco), mas não estão coordenando entre si de maneira alguma. O resultado, como outros apontaram, é que a maioria das damas espera que ninguém mais esteja alterando os metadados do sistema de arquivos enquanto eles são executados. Eles ficarão confusos e / ou reportarão erros espúrios se o sistema de arquivos do kernel mudar algo que o verificador não espera.
Existem alguns sistemas de arquivos com verificadores que são explicitamente projetados para serem executados "on-line" (ou seja, enquanto o sistema de arquivos estiver ativo). As versões mais recentes do FFS / UFS fazem isso executando o fsck em um instantâneo recente do sistema de arquivos (uma réplica copy-on-write, somente leitura, point-in-time). Se encontrar problemas, como inconsistências nos mapas de bits de alocação, ele os corrigirá por meio da chamada do sistema, em vez de gravá-los no disco bruto. Isso permite coordenar com o sistema de arquivos ativo.
O WAFL da NetApp também possui uma ferramenta de verificação on-line. Provavelmente existem outros.