Não, não quero regras de rede persistentes

3

Eu tenho um memstick Linux inicializável que eu uso em muitos PCs diferentes (mas todos do mesmo modelo e configuração). O problema é que o udev está renomeando as interfaces eth para que o que foi eth0 no último PC seja de repente ethX, onde X = 1..inf. Isso faz com que if-up (chamado por ifplugd) falhe, pois /etc/network/interfaces apenas especifica como exibir eth0 :

auto eth0
iface eth0 inet dhcp

É um problema bem conhecido; Eu pesquisei e descobri que isso é causado pela alteração dos endereços MAC e que pode ser corrigido com a exclusão de /etc/udev/rules.d/70-persistent-net.rules . Mas isso só funciona depois de uma reinicialização, o que é inconveniente e deve ser desnecessário, já que eu sei qual comportamento eu quero.

O que eu quero é regras de rede não-persistentes , ou, em alternativa, um script /etc/network/interfaces que se adapte à mudança de nomes de eth, ou talvez isso possa ser feito com ifplugd. Qual é a melhor maneira de conseguir isso?

Distro: Ubuntu 8.04.

    
por Lauritz V. Thaulow 28.11.2011 / 15:11

2 respostas

3

As regras de rede persistentes são geradas por /lib/udev/rules.d/75-persistent-net-generator.rules (ou algo similar, estou procurando em uma máquina Debian mais recente).

Se o Ubuntu 8.04 ainda tiver esse script de gerador em /etc/udev/rules.d, você pode simplesmente se livrar dele.

Caso contrário, acredito que colocar um arquivo em branco em /etc/udev/rules.d irá sobrescrever o arquivo em / lib.

Você também pode escrever seu próprio arquivo de regras para dar um nome à interface - o gerador de regras persistentes ignora a interface se um nome já tiver sido definido.

    
por 28.11.2011 / 15:25
2

Eu segui o conselho de derobert, excluindo /etc/udev/rules.d/75-persistent-net-generator.rules e também editei o /etc/udev/rules.d/70-persistent-net.rules já gerado, para que as linhas ficassem assim:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{type}=="1", KERNEL=="eth*", NAME="%k"

Observe o %k em NAME , o que significa usar o nome do kernel.

    
por 14.12.2011 / 11:50