Atualizei uma máquina virtual executando o servidor Ubuntu 15.04 para o recém-lançado 15.10 estável.
Não havia problemas aparentes, mas após a reinicialização, a máquina perdeu sua conexão de rede. lspci
mostrou o cartão correto e lsmod
provou que o motorista havia sido carregado.
Dicas sobre edição ou remoção /etc/udev/rules.d/70-persistent-net.rules
não foram bem-sucedidas (ainda sem rede, sem novo arquivo), os famosos /lib/udev/write_net_rules
nem sequer existiam.
Não tenho muita pista sobre o udev e o systemd, então demorei algum tempo para descobrir em / sys / class / net que o nome da interface de rede mudou. Tornou-se ens32
, que foi renomeado de eth0
. Depois que eu mudei /etc/network/interfaces
, a comunicação em rede foi ativada novamente.
Mas - por que isso acontece? E se isso acontecer, o arquivo de interfaces não deve ser atualizado automaticamente?
Agora que apaguei a placa de rede virtual e criei outra, eth0
torna-se eno16777728
, o que não é tão, hum, legal.
Esse comportamento (pelo menos o do procedimento de atualização) deve ser relatado como um bug?
Além disso, /etc/udev/rules.d/70-persistent-net.rules
agora está obsoleto? E (embora apenas parcialmente relacionado) e quanto /etc/udev/rules.d/70-persistent-cd.rules
?)
Editar - pergunta adicional (após resposta aceita)
A dependência do /etc/network/interfaces
nome real da interface me incomodou. Eu tentei uma nova instalação do * ubuntu em outra máquina virtual. Para minha surpresa, /etc/network/interfaces
continha apenas uma referência ao dispositivo de loopback. No entanto, com a minha VM original, essa alteração impediu a rede. Então, o que mais eu preciso mudar?
Editar
Bem, a partir de outro teste, descobri que um novo Ubuntu Server possui a placa de interface de rede /etc/network/interfaces
, enquanto o XUbuntu não. Talvez esteja usando network-manager
ou algo mais.
fonte
Respostas:
No Ubuntu 15.10 (Wily Werewolf), iniciar com systemd / udev atribuirá automaticamente nomes de interface de rede estáveis e previsíveis para todas as interfaces Ethernet, Wlan e Wwan locais ( origem ).
Os seguintes esquemas de nomenclatura diferentes para interfaces de rede agora são suportados pelo udev nativamente:
eno1
:)ens1
)enp2s0
:)enx78e7d1ea46da
:)eth0
- descontinuadaPor padrão, o systemd agora nomeará interfaces de acordo com a política:
Como você desativa isso?
Você basicamente tem as seguintes opções:
/etc/udev/rules.d/70-my-net-names.rules
cp /lib/udev/rules.d/80-net-setup-link.rules /etc/udev/rules.d/80-net-setup-link.rules
:, edite o arquivo e altere as linhas conforme necessário.net.ifnames=0
linha de comando do kernel.fonte
Existe uma maneira mais fácil contada pelo guia para iniciantes do ArchWiki .
Primeiro obtenha o endereço MAC do seu dispositivo
A saída mostra como
O endereço MAC do seu dispositivo é o
Basta criar o arquivo (basta abrir com direitos sudo em um editor de texto)
Adicione a seguinte linha
Substitua nome pelo nome desejado e aa: bb: cc: dd: ee: ff pelo endereço MAC do seu dispositivo.
Agora basta reiniciar o computador e o nome do dispositivo deveria ter mudado.
fonte
DRIVERS=="?*",
depoisACTION=="add",
. Veja também askubuntu.com/questions/767786/…Experimente o seguinte: Edite o seu
/etc/default/grub
. Mude a linha depara
e, finalmente, execute:
como root e reinicie o sistema.
fonte
append (...) net.ifnames=0 (...)
Eu sei que isso pode ser um pouco tarde e a adição das 10-network.rules parece ter ajudado, mas não completamente. Eu tive que adicionar o nome do kernel do dispositivo para renomear. Aqui está como eu fiz o /etc/udev/rules.d/10-network.rules funcionar ...
e mude o KERNEL == "" para o nome do seu kernel no dispositivo quando ele inicializar.
HTH
KC
fonte
Se você tiver uma nova instalação
Então
Verifique se você possui o arquivo udev net ruels. Se sim, remova-o.
Agora edite / etc / network / interfaces, renomeie as interfaces para eth0, eth1, ... etc.
Reiniciar
fonte
Eu consegui isso criando um arquivo:
fonte