Estou trabalhando com um sistema em que queremos permitir que os usuários brinquem com a data e a hora, se quiserem, e onde as reinicializações podem ocorrer arbitrariamente. Isso é bom, exceto por uma coisa: se houver um grande intervalo de tempo para trás, o seguinte erro será exibido na reinicialização:
Checking filesystems
IMAGE2: Superblock last mount time (Tue Mar 1 17:32:48 2011,
now = Thu Feb 24 17:34:29 2011) is in the future.
IMAGE2: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
(i.e., without -a or -p options)
*** An error occurred during the file system check.
*** Dropping you to a shell; the system will reboot
*** when you leave the shell.
… E, em seguida, a inicialização é interrompida, aguardando a entrada do console do usuário e, mesmo após o acesso ao console, é necessária uma senha root para continuar.
Isso é decididamente menos que o ideal. Existe alguma maneira de ignorar a verificação ou forçar a verificação a ocorrer automaticamente na reinicialização?
O Google só forneceu ajuda que requer a execução do fsck manualmente se / quando for atingido, o que não é o que estou procurando. Executar o fsck manualmente após definir o horário não funciona, pois o sistema de arquivos ainda está montado nesse ponto e apenas desabilitar o fsck completamente é menos do que o ideal.
Estou usando o RedHat 6.
Atualização : A solução que eu estou usando atualmente é hackear o fstab para desativar a verificação do fsck na reinicialização. Eu tentei editar o último tempo de montagem nos discos usando debugfs
, o que funciona bem para unidades ext3, mas parece falhar inconsistentemente no ext4.
Duvido que haja uma maneira de remover essa verificação especificamente, sem modificar o código-fonte. Ignorar todos os erros do fsck parece perigoso, e se houvesse algum outro problema?
Portanto, sugiro a seguinte solução alternativa: altere os scripts de inicialização para definir a data do sistema em algum momento no futuro (digamos 2038-01-18 em uma máquina de 32 bits) antes de executar o fsck e leia-o novamente no hardware relógio depois (
hwclock --hctosys
, com mais opções conforme necessário, dependendo do seu hardware e uso do GMT no relógio do hardware.)fonte
Parece que deve ser executado em uma máquina virtual, onde você pode ter mais controle (ou apenas reverter para um instantâneo).
fonte
Aqui está uma solução que funcionou muito bem para mim:
Crie /etc/e2fsck.conf:
Mais sobre esta correção aqui:
http://stillstup.blogspot.com/2010/02/superblock-last-mount-time-is-in-future.html
fonte