atualizando '/etc/resolv.conf' em um sistema de arquivos somente leitura

5

Atualmente, tenho um sistema Linux embarcado baseado no busybox. O sistema de arquivos é um sistema de arquivos jffs2 montado somente de leitura. Um problema que eu tive é que /etc/resolv.conf não pode ser atualizado pelo DHCP.

É possível usar um arquivo diferente de /etc/resolv.conf , digamos /tmp/resolv.conf ( /tmp está montado como tmpfs).

Ou estou sendo excessivamente paranóico ao montar o JFFS2 como somente leitura? O sistema de arquivos raiz é lido apenas porque não quero desgastar o flash.

    
por Kotte 29.01.2013 / 15:17

1 resposta

7

Você pode usar um link simbólico, tentei fazer isso com certeza. Como o material em / tmp é impermanente, isso significa que você terá que criar o arquivo na inicialização antes de executar o dhcpcd.

touch /tmp/dhcpcd.resolv.conf
ln -s /tmp/dhcpcd.resolv.conf /etc/resolv.conf

Eu incluí o ln bit como ilustração, mas note que você não tem que criar o symlink toda vez no boot; basta colocar em seu sistema RO uma vez, e (novamente) certificar-se de que o arquivo / tmp para o qual ele está vinculado é criado antes que qualquer coisa tente acessá-lo.

Os links simbólicos compartilham suas permissões com o arquivo ao qual eles se conectam e, mesmo que o sistema de arquivos em que estejam, seja RO, contanto que o arquivo ao qual eles apontam não esteja, a escrita funcionará.

    
por 29.01.2013 / 15:26