Eu estou executando uma distro baseada em debian-wheezy em um conjunto de placas armv5. Se eu executar o comando "reboot" (via ssh ou console serial), ele funcionará bem na maior parte do tempo. Ocasionalmente (aproximadamente a cada 50 reinicializações, mas não consistentemente), o sistema trava na parte de desligamento da reinicialização. Quando ele é interrompido, a rede ainda está ativada e o firewall ainda está em execução (porque ainda encaminha pacotes). Mas o sshd não está rodando, nem meu próprio software.
Durante uma reinicialização normal, vejo isso impresso no console:
...
[ ok ] Unmounting temporary filessytems...done.
[ ok ] Deactivating swap...done.
[info] Will now restart.
>> TS-BOOTROM - built Jul 8 2013 15:44:26
>> Copyright (c) 2012, Technologic Systems
.
.
Uncompressing Linux... done, booting the kernel.
...
Quando falha, vejo:
...
[ ok ] Unmounting temporary filessytems...done.
[ ok ] Deactivating swap...done.
kexec: No such file or directory
reboot: No such file or directory
/etc/init.d/rc: 279: /etc/init.d/rc: /bin/echo: not found
/etc/init.d/rc: 364: /etc/init.d/rc: /bin/echo: not found
INIT: cannot execute "/sbin/sulogin"
... (repeats ten times)
INIT: Id "z6" respawning too fast: disabled for 5 minutes
Eu tentei procurar em /etc/init.d/rc as linhas mostradas acima (279, 364), mas o arquivo tem apenas 256 linhas. Então isso é estranho ...
Parece-me que um script está tentando ser executado depois que o sistema de arquivos foi desmontado, mas apenas ocasionalmente. Na maioria das vezes, tudo bem. Agora, quando olho em /etc/rc6.d, vejo K07umountfs, K08umountroot, K09kexec e K10reboot. Então, parece que o kexec e o reboot devem rodar após a desmontagem do sistema de arquivos (e isso funciona ~ 99% do tempo).
Eu estou meio preso agora. Eu apreciaria qualquer ajuda, mesmo que apenas me aponte na direção certa.