Não parece possível nas autoinstalações do Ubuntu (14.04.3 e 15.04) configurar a interface de rede correta via preseed.
O Ubuntu às vezes usa eth0 e, às vezes, interfaces como p2p1 ou p1p3 .
Eu sei como esses nomes serão gerados. Mas como posso detectar esses nomes durante ou antes da instalação automática? Como posso renomear automaticamente o nome da interface p2p1 para o nome antigo eth0 ?
Para definir as configurações da interface estática eu uso d-i preseed/late_command para sobrescrever o arquivo /etc/network/interfaces . Certo, eu sei que existe apenas uma interface com o nome eth0 .
Eu tentei substituir / excluir o /etc/udev/rules.d/70-persistent-net.rules dentro do preseed/late_command . Mas isso não ajuda em nada - será ignorado.
Como posso alterar o nome da interface para eth0 ? Ou como posso detectar o nome da interface durante a autoinstalação, para escrever o nome correto no arquivo de rede / interfaces?
Editar:
A substituição agora funciona muito bem (graças ao "muru"!)
A interface inicial será gravada em outro servidor e servida internamente via http wget no preseed/late_command :
wget http://{InternalServer}/{path}/interfaces -O /etc/network/interfaces;
na mesma linha, carrego um script replaceinterface.sh adicional com o conteúdo:
#!/bin/bash
sDevice='ip -o link | grep 'link/ether' | grep -oE "^[[:digit:]]:[[:space:]]([[:alnum:]]+)" | cut -d" " -f 2'
sed "s/eth0/$sDevice/g" $1
Após o carregamento, eu disparo chmod +x , executo com sh /tmp/replaceinterface.sh < /etc/network/interfaces > /etc/network/interfaces;
Mas, depois que a instalação estiver concluída, o arquivo /etc/network/interfaces será vazio (?) ...
Se eu fizer as mesmas etapas em outro console manualmente, durante a instalação, eu vejo a saída correta / arquivo modificado correto
Mas isso parece ser outra questão para askubuntu.com ..
Editar²:
A substituição funciona perfeitamente agora - mais uma vez obrigado a "muru"!
#!/bin/bash
sDevice='ip -o link | grep 'link/ether' | grep -oE "^[[:digit:]]:[[:space:]]([[:alnum:]]+)" | cut -d" " -f 2'
sReplaced='sed s/eth0/$sDevice/g $1'
echo "$sReplaced" > $1