A maioria dos dispositivos embarcados baseados em linux usa o RAMDisk para montar "/" para um melhor desempenho em comparação com um PC / servidor linux padrão. O linux "initrd" é montado em / durante a inicialização. O initrd contém os diretórios / usr / bin, / bin, / sbin e outros. Portanto, se você adicionar / substituir qualquer arquivo em "/", ele será removido na próxima inicialização, pois será montado na RAM e o antigo initrd será montado na próxima inicialização.
Existem 2 soluções.
(1) Verifique a saída da montagem e veja se algum armazenamento secundário está montado ou não. Você pode armazenar seu executável em um diretório comum aqui e adicioná-lo na variável PATH. No entanto, você precisa garantir que o script de inicialização (login ou .bashrc) atualize a variável PATH em cada inicialização.
(2) Atualize o initrd. Se você está ciente de qual initrd está sendo usado, você pode abrir (gunzip?), Montá-lo, copiar o executável, desmontá-lo, fechar (gzip) e salvá-lo.
Editar: você pode precisar de permissões de administrador no dispositivo para substituir o initrd. A primeira solução é o que eu prefiro, já que é fácil de manter e não requer permissões de administrador.