Como regenerar 70-persistent-net.rules sem reiniciar?

10

O arquivo /etc/udev/rules.d/70-persistent-net.rules é gerado automaticamente em um sistema Linux com o udev, se ele não existir, durante a reinicialização. Mas eu gostaria de saber como criar este arquivo de regras (com um comando) sem reiniciar o servidor.

Eu estava pesquisando por um tempo e descobri que o arquivo de regras é gerado por este script:

/lib/udev/write_net_rules

No entanto, é impossível executar esse script a partir da linha de comando, uma vez que (suponho) ele quer ser iniciado pelo udev, com algumas variáveis de ambiente definidas corretamente. Iniciar manualmente imprime a mensagem de erro "missing $ INTERFACE". Mesmo se eu definir a variável env INTERFACE = eth0 antes do início do script, ele ainda imprime o erro "missing valid match". Sem mencionar que eu tenho duas interfaces ( eth0 e eth1 ) e eu quero o arquivo de regras gerado para ambos.

Eu também estava pensando em acionar eventos do udev como este, esperando que ele inicie o script do próprio udev, mas nada muda:

udevadm trigger --type=devices --action=change

Então, alguém sabe como regenerar as regras de rede persistentes no arquivo /etc/udev/rules.d/70-persistent-net.rules sem reiniciar?

    
por Tomas M 16.01.2016 / 13:44

3 respostas

5

De acordo com a página man, --action=change é o valor padrão para udevadm .

   -c, --action=ACTION
       Type of event to be triggered. The default value is change.

Portanto, é melhor você tentar --action=add . Deve ajudar:

/sbin/udevadm trigger --type=devices --action=add
    
por 17.01.2016 / 11:01
2

No Ubuntu Server 16.04LTS, o 70-persistent-net.rules não existe.

tudo que fiz foi executado:

ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules

Em seguida, crie o arquivo usando

sudo vi /etc/systemd/network/10-internet.link

e adicione o seguinte

[Match] 
Path=pci-0000:(your device mac address)

[Link] 
Name=eth0 (or whatever you want to name it)

:wq para salvar o arquivo

depois reinicie e ajuste seu arquivo / etc / network / interfaces. Então reinicie novamente.

Espero que isso ajude alguém.

    
por 04.10.2016 / 02:40
0

Eu tive o mesmo problema, mas notei que ainda podia ver as interfaces na lista "ip addr". Eu usei o seguinte (como root):

# mv /etc/udev/rules.d/70-persistent-net.rules /tmp # If it's there and you want to save a copy
# ip addr # to get my mac addresses
# export INTERFACE=eth0; export MATCHADDR="xx:xx:xx:xx:xx:xx"; /lib/udev/write_net_rules  # replace the 00's with the real mac addr

Repita para cada interface. Isso foi usado para "recuperar" meu arquivo. (Nota: uma invocação listará todas as interfaces + adiciona renomeação para corresponder a uma, então eu recomendo que você espreite o arquivo de saída após uma invocação)

Definitivamente, existem diferenças entre as implementações atuais do SO e do UDEV e os scripts de suporte. Para observar, eu estava usando o CentOS 6.8 quando fiz isso com sucesso.

Crédito - Eu principalmente referenciei este site. Há um comentário alguns tópicos que falam sobre como modificar o script, mas eu preferi usar variáveis de ambiente, pois era mais limpo: link

    
por 18.05.2017 / 17:33

Tags