Kernel pânico ao passar noatime em bootargs

7

Eu tenho um sistema embutido usando jffs2 e quero passar rootflags=noatime no parâmetro bootargs do kernel.

Isso resulta em um pânico no kernel:

jffs2: Error: unrecognized mount option 'noatime' or missing value
[...]
No filesystem could mount root, tried:  jffs2
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,3)

No entanto, se eu inicializar normalmente e depois remontar o sistema de arquivos jffs2 com o noatime, ele funcionará bem:

$ mount -o remount,noatime /

Estou intrigado com isso, pois, de acordo com a documentação , o argumento rootflags "permite que você para dar opções relativas à montagem do sistema de arquivos raiz, assim como você faria com o programa de montagem ".

Parece um bug do kernel para mim, mas por outro lado, parece tão óbvio que talvez eu esteja negligenciando alguma coisa.

Eu testei isso com as versões de kernel 3.7 e 3.14.

Alguém pode lançar alguma luz?

    
por Grodriguez 19.05.2014 / 16:32

1 resposta

7

pesquisando rootflags noatime traz este post de 2003 por Andrew Morton, talvez ainda se aplique.

link

While testing something, I tried to boot with 'rootflags=noatime', and found the system wouldn't boot, as ext3, ext2, and reiserfs all failed to recognize the option. Looking at the code in fs/ext3/super.c:parse_options() and init/do_mounts.c:root_data_setup(), it appears to be impossible to set any of the filesystem-independent flags via rootflags, which explains the special-case code for the 'ro' and 'rw' flags. However, there doesn't seem to be any way to pass nodev, noatime, nodiratime, or any of the other flags. (And yes, all 3 of those make sense in my environment - it's a laptop and I don't need atime, and I use devfs so nodev on the root makes sense too).

     

As opções independentes de fs são analisadas no espaço do usuário pelo mount (8), e   são passados para o kernel como bits individuais em um argumento 'flags'.

    
por 21.05.2014 / 23:43