Como faço para tornar as montagens noatime padrão?

8

Estou criando um derivado do Ubuntu e quero tornar noatime a opção de montagem padrão para todos os sistemas de arquivos (em vez do relatime, que é o padrão no Ubuntu).

Parece haver um default_relatimeparâmetro booleano do kernel para alternar entre o padrão para atime ou relatime (também disponível escrevendo para / proc / sys / kernel / default_relatime), mas não consigo encontrar um equivalente para noatime e não sei como habilite isso em uma distribuição por padrão.

Como configurar para gravar dados para pendrive instantaneamente? sugere que há uma maneira de adicionar o parâmetro noatime mount via udev, mas não tenho idéia se isso funcionará para a mídia interna e como fazê-lo.

Qual é a maneira menos invasiva de tornar o kernel padrão para noatime?

O padrão atual pode ser visualizado usando "cat / proc / mounts" porque mostra até parâmetros de montagem implícitos; não confie em "montar".

Sim, eu li . Vale a pena ajustar o Ext4 com noatime? e eu ainda quero fazer isso.

Shnatsel
fonte
3
Relatime é a opção padrão no kernel, não no próprio Ubuntu. Você precisaria modificar o kernel ou adicionar opções ao /etc/fstab.
organize

Respostas:

4

O kernel costumava ter uma opção de configuração para usar ATIME ou RELATIME; não sei se isso também incluiu alguma opção para NOATIME. De qualquer forma, isso se foi agora.

Também estudei o util-linux, para ver se o comando mount tinha padrões configuráveis ​​ou poderia ser modificado, mas não parecia ser o caso.

No entanto, parece que você pode corrigir o kernel para alterar o comportamento padrão. Modifique ./fs/namespace.c, em torno das linhas 2334:

long do_mount(...)
...
    /* Default to relatime unless overriden */
    if (!(flags & MS_NOATIME))
            mnt_flags |= MNT_RELATIME;
...

Troque isso por aí:

long do_mount(...)
...
    /* Default to noatime unless overriden */
    if (!(flags & MS_RELATIME))
            mnt_flags |= MNT_NOATIME;
...

E isso deveria bastar.

Bryce
fonte
11
Solução Second Second Bryce - esta parece ser a única maneira de fazê-lo. Claro, isso significa que rolando suas próprias atualizações do kernel com este patch - como invasivo que é é até você :)
ish
Isso é realmente IMHO invasivo, porque requer a manutenção de compilações personalizadas do kernel e resultará em muita dor de cabeça com inicialização segura. Ainda assim, +1 porque isso é viável.
Shnatsel
askubuntu.com/questions/61448/… sugere que as regras do udev podem anexar parâmetros de montagem, talvez isso funcione? Vou atualizar o corpo com este link agora ...
Shnatsel
Essas são as linhas 2315+ no Linux 3.2, veja lxr.free-electrons.com/source/fs/namespace.c?v=3.2#L2315 if (flags & MS_NOATIME) mnt_flags |= MNT_NOATIME; na linha 2326 meio que me incomoda, acho que vou ter que mudar isso também. Obrigado pela ajuda!
Shnatsel