Sistema de arquivos somente leitura - Considerações e perda de funcionalidade

0

Estou criando um sistema incorporado usando o Buildroot. Atualmente, minha configuração do Buildroot garante que o rootfs seja remontado como leitura / gravação durante a inicialização. No entanto, gostaria de remover esse recurso e manter meus rootfs como somente leitura.

Eu tenho algumas perguntas sobre isso:

Como faço para alterar a senha de um usuário? Isso exigiria a alteração de / etc / passwd & / etc / shadow.

Como altero o fuso horário? Isso exigiria alterar o / etc / localtime.

Como faço para criar chaves ssh para o sshd? ssh-keygen cria as chaves em / etc / ssh /

De acordo com o Filesystem Hierarchy Standard, um sistema Linux é necessário para funcionar com um diretório / etc / somente leitura, mas parece que estou encontrando uma perda de funcionalidade distinta, conforme descrito acima.

Em segundo lugar, depois de especificar que o rootfs deve permanecer como somente leitura na configuração do Buildroot, ele escolhe montar / var / como um tmpfs (na RAM, então é gravável)

Mas, isso é volátil, como posso garantir que os arquivos de tempo de execução (que preciso salvar) não sejam perdidos na reinicialização ou na perda inesperada de energia?

Estou usando o UBIFS no meu sistema embarcado. Preciso criar um volume UBI de leitura / gravação que eu uso como armazenamento persistente? Este é o padrão em sistemas embarcados?

E, finalmente, devo reavaliar minha ideia de usar rootfs somente leitura? Como estou usando o UBI, e como o nivelamento de uso é implementado em todos os volumes UBI (o que existe no mesmo dispositivo, é claro), receberei qualquer benefício em tornar meus rootfs somente leitura?

    
por Mattmatician 29.04.2018 / 15:47

1 resposta

0

Mantendo o sistema de arquivos montado como readonly esures, nada é modificado de maneira inesperada.

Para permitir determinada operação, é necessário trabalhar com partições específicas do sistema de arquivos: - partição do sistema: readonly - Partição do usuário: gravável

A perda da patição do usuário só pode reverter o dispositivo incorporado para o estado padrão, mas não pode resultar em um dispositivo permanente inacessível.

Para permitir certas operações i. E. alteração de senhas, é necessário para ligar simbolicamente arquivos específicos para a partição do usuário. - / etc / passwd - > / mnt / user / passwd - / etc / ssh - > / mnt / user / ssh - / etc / localtime - > / mnt / user / localtime

Para tornar o acesso à senha mais robusto, pode ser uma boa idéia redirecionar o passwd para o tmpfs e buscar a senha da partição do usuário durante a inicialização.

A abordagem pode levar a problemas relacionados ao fuso horário. Pode ser necessário remendar o tzdata para usar diretamente / mnt / user / localtime se a vinculação dupla resultar em um erro: / etc / localtime - > / mnt / user / localtime - > / usr / share / zoneinfo ...

    
por 06.08.2018 / 11:01