Isso fez isso
rm /etc/resolv.conf
ln -s /tmp/resolv.conf /etc/resolv.conf
sed -i 's/\/etc\/resolv.conf/\/tmp\/resolv.conf/g' /sbin/dhclient-script
Estou no processo de configurar o jessie raspbian para ser executado como somente leitura.
Apenas /tmp
é gravável e o sistema está configurado para gravar informações de IP DHCP em /tmp
.
Tudo está funcionando bem, exceto /etc/resolv.conf
. Ele simplesmente não é atualizado durante a inicialização.
Eu tentei usar um link simbólico.
rm /etc/resolv.conf
touch /tmp/resolv.conf
ln -s /tmp/resolv.conf /etc/resolv.conf
Mas, como /tmp
é esvaziado na reinicialização, /tmp/resolve.conf
não pode ser atualizado porque não existe.
Então, tentei criar o arquivo durante a inicialização.
touch /tmp/resolv.conf
em /etc/rc.local
O arquivo é criado, mas somente após a execução do dhclient, porque não há entradas DNS nele. Se eu executar o dhclient após o sistema ter sido inicializado, ele gravará os servidores DNS no arquivo com êxito.
Como posso fazer o resolv.conf
funcionar em um sistema de arquivos somente leitura?
Nas páginas do manual do dhclient-script,
Hooks
When it starts, the client script first defines a shell function, make_resolv_conf , which is later used to create the /etc/resolv.conf file. To override the default behaviour, redefine this function in the enter hook script.
On after defining the make_resolv_conf function, the client script checks for the presence of an executable /etc/dhcp/dhclient-enter-hooks script, and if present, it invokes the script inline, using the Bourne shell '.' command. The entire environment documented under OPERATION is available to this script, which may modify the environment if needed to change the behaviour of the script. If an error occurs during the execution of the script, it can set the exit_status variable to a nonzero value, and /sbin/dhclient-script will exit with that error code immediately after the client script exits.
Portanto, você deve poder editar /etc/dhcp/dhclient-enter-hooks
e adicionar entradas para criar /tmp/resolv.conf
com as permissões corretas, se elas não existirem, removendo e recriando o link simbólico, se necessário.
Verificando no Debian, parece haver um diretório dhclient-enter-hooks.d
com partes de script nele, então você pode apenas adicionar algo lá, dependendo da sua distribuição / versão do dhclient (Raspbian neste caso).
Confira o link . Recomenda-se usar o pacote resolvconf . Como você já mexeu com o seu software, pode ser necessário algum desfazer para que funcione corretamente, mas é uma solução bem pensada para esse problema e muito mais.