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