Quoth the manpage:
-c
This option causes e2fsck to run the badblocks(8) program to find any blocks which are bad on the filesystem, and then marks them as bad by adding them to the bad block inode. If this option is specified twice, then the bad block scan will be done using a non-destructive read-write test.
Portanto, a opção -c
grava no sistema de arquivos, que fsck
interpreta como "corrigindo erros", portanto, o código de retorno de 1
("Erros do sistema de arquivos corrigidos")
... então, você pergunta, por que ele retorna 1
quando você especifica -n
, que deve abrir o sistema de arquivos somente leitura e não fazer mudanças?
Bem, outras leituras da página manpage também revelam essa resposta:
-n Open the filesystem read-only, and assume an answer of 'no' to all questions. Allows e2fsck to be used non-interactively. (Note: if the -c, -l, or -L options are specified in addition to the -n option, then the filesystem will be opened read-write, to permit the bad-blocks list to be updated. However, no other changes will be made to the filesystem.)
(em outras palavras: O -n
é uma mentira!)
Esta resposta é totalmente fornecida por a página de manual para fsck.ext3
.