A contagem de montagens não é redefinida após a execução automática do fsck na inicialização

2

Existe um PC rodando o Xubuntu 15.10 (astuto). O sistema está configurado para executar o fsck em uma partição quando essa partição é montada 20 vezes. Depois disso, o comportamento esperado é que a contagem de montagens seja redefinida, mas não. Isso significa que, à medida que a contagem de montarias continua crescendo além dos 20, o fsck é executado automaticamente toda vez que o PC inicializa.

tune2fs mostra que o estado do sistema de arquivos está limpo e smartctl não mostra nenhum problema.

Soluções gerais usadas até agora:

  • Use tune2fs -C para redefinir a contagem de montagens manualmente
  • Inicialize a partir de um Live CD e execute fsck na partição; isso parece redefinir a contagem de montagem corretamente quando termina

Quando a contagem de montagens atingir 20 na próxima vez, o problema aparecerá novamente: a contagem de montagens não é redefinida após a execução automática do fsck.

Eu pesquisei neste site e em outros lugares, mas não encontrei nenhuma indicação sobre o que pode estar causando o problema. Alguma idéia?

Obrigado antecipadamente.

    
por ebautistabar 29.05.2016 / 19:48

1 resposta

2

Após um pouco de investigação, descobri que o problema estava no systemd-fsckd service, do pacote systemd . No momento em que escrevo, as versões disponíveis em astuto e xenial parecem conter o código incorreto ( 225-1ubuntu9 e 229-4ubuntu4 , respectivamente).

Solução

Como o serviço não é necessário para o funcionamento correto do sistema, uma solução direta é apenas desabilitá-lo executando este comando:

systemctl mask systemd-fsckd.service systemd-fsckd.socket

A desvantagem é que agora o Plymouth não reportará fsck progress. Na verdade, nem sequer informará ao usuário que uma verificação do sistema de arquivos está em andamento.

Explicação

Um pouco da história da man página do serviço :

  

systemd-fsckd.service é um serviço responsável por receber o progresso da verificação do sistema de arquivos e por comunicar alguns dados consolidados ao console e ao plymouth (se estiver em execução). Também lida com possíveis cancelamentos de cheques.

     

systemd-fsckd recebe mensagens sobre o progresso da verificação do sistema de arquivos de fsck através de um soquete de domínio [...] UNIX

O problema com esse serviço é que ele usa um tempo limite fixo de 30 segundos ao fazer um epoll_wait no soquete para informações de progresso. Se fsck não relatar o progresso em menos de 30 segundos, então systemd-fsckd fecha o soquete e sai com sucesso sem registrar nada até onde eu podia ver.

A próxima vez que fsck escrever no soquete (agora fechado) para relatar o progresso, ele morrerá com SIGPIPE . Como fsck nunca termina, a contagem de montagem não é reiniciada.

    
por ebautistabar 04.06.2016 / 20:57