El problema básico es que el verificador del sistema de archivos (generalmente) no forma parte del sistema de archivos. En cambio, es un programa separado que lee y escribe en el mismo disco que el código del sistema de archivos en el núcleo. Como resultado, si ejecuta fsck en un sistema de archivos activo, tiene dos entidades diferentes que están leyendo (y posiblemente modificando) los mismos datos (el disco), pero no se coordinan entre sí de ninguna manera. El resultado, como han señalado otros, es que la mayoría de los verificadores esperan que nadie más cambie los metadatos del sistema de archivos mientras se ejecutan. Se confundirán y / o informarán errores espurios si el sistema de archivos del kernel cambia algo que el verificador no espera.
Hay algunos sistemas de archivos con verificadores que están diseñados explícitamente para ejecutarse "en línea" (es decir, mientras el sistema de archivos está activo). Las versiones más recientes de FFS / UFS hacen esto ejecutando fsck contra una instantánea reciente del sistema de archivos (una réplica de solo lectura, punto en el tiempo, copia en escritura). Si encuentra problemas, como inconsistencias en los mapas de bits de asignación, los corrige mediante una llamada al sistema, en lugar de escribirlos en el disco sin formato. Esto le permite coordinarse con el sistema de archivos activo.
El WAFL de NetApp también tiene una herramienta de verificación en línea. Probablemente hay otros.