Come posso cambiare il dispositivo di rete “ens33” predefinito con il vecchio “eth0” su Fedora 19?


22

Ho appena installato un Fedora 19 sulla workstation VMware 9. Il dispositivo di rete predefinito è "ens33" invece di "eth0" su RHEL.

Il motivo per cui devo usare "eth0" è che il componente di licenza di uno dei nostri prodotti deve essere collegato a "eth0".

Ci sono alcuni post che parlano di problemi simili, molti dei quali sono per sistemi operativi più vecchi. Non ne ho trovato uno che corrisponda esattamente alla mia situazione.


Fedora 19 è significativamente diverso da RHEL 5.5 poiché nella domanda questo è stato contrassegnato come duplicato e la risposta non è la stessa.
Mattdm,

Risposte:


31

Il modo più semplice per ripristinare il vecchio modo in cui Kernel / modules / udev rinominano le interfacce Ethernet è fornire questi parametri del kernel a Fedora 19 :

  1. net.ifnames = 0
  2. biosdevname = 0

Per fare ciò segui questi passaggi:

  1. Modifica / etc / default / grub
  2. Alla fine della riga GRUB_CMDLINE_LINUX aggiungi " net.ifnames = 0 biosdevname = 0 "
  3. Salva il file
  4. Digita " grub2-mkconfig -o /boot/grub2/grub.cfg "
  5. Digita " riavvia "

Se non hai fornito questi parametri durante l'installazione, probabilmente dovrai regolare e / o rinominare i file di interfaccia in / etc / sysconfig / network-scripts / ifcfg- * .

Fino a Fedora 18 , bastava biosdevname = 0 .

Ad esempio, in una determinata macchina, in una ricerca esaustiva, ho ottenuto:

-Nessun parametro: scheda NIC identificata come " enp5s2 ".
-Parameter biosdevname = 0: NIC identificata come " enp5s2 ".
-Parameter net.ifnames = 0: scheda NIC identificata come " em1 ".
-Parameter net.ifnames = 0 AND biosdevname = 0: scheda NIC identificata come " eth0 ".


Grazie mille per i passaggi dettagliati! Tutto ciò che MathWorks mi stava fornendo era per versioni molto più vecchie di Fedora.
Dr. Watson,

@ dr-watson: fino a Fedora 14, ethX era la denominazione predefinita per le interfacce Ethernet. In Fedora 15 è stata implementata la denominazione coerente dei dispositivi di rete . Da Fedora 15 a 18, bastava biosdevname = 0 per mantenere la denominazione di ethX. Prego.
Guilsson,

3
Questa soluzione funziona anche su Fedora 20. Grazie.
Heuristicus,

Ha anche lavorato su Fedora 21
Eric Grunzke il

anche Ubuntu 14.04.
sabato

9

Puoi farlo usando una regola udev, in questo modo:

cat > /etc/udev/rules.d/99-rename-to-eth0.rules << EOF
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="$(cat /sys/class/net/ens33/address)", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
EOF

Grazie per l'esempio Per altri, vale la pena notare che /sys/class/net/ens33potrebbe essere diverso a seconda dei valori restituiti dal BIOS e trovati nell'output di lspci -vv | grep -A25 Ethernet. Inoltre, se l'intenzione è quella di utilizzare eth0come nome, potrebbe essere più appropriato specificare solo i flag di avvio del kernel per disabilitare la denominazione "prevedibile" del dispositivo.
Mark Edington il

7

In Fedora 20, le cose sembrano essere cambiate un po 'di più.

1) argomenti del kernel grub
Sì, entrambi "net.ifnames = 0" e "biodevame = 0" sembrano necessari.

2) / etc / sysconfig / network-scripts / ifcfg-ethX
Sì, anche questi sono necessari.

3) /etc/udev/rules.d/60-net.rules
Se si dispone di più interfacce e si desidera controllare la denominazione di ciascun dispositivo anziché lasciare che il kernel faccia a modo suo, /etc/udev/rules.d/60 -net.rules sembra necessario per sovrascrivere /usr/lib/udev/rules.d/60-net.rules come il seguente.

# PCI device 0x1011:0x0019 (tulip) {SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:c0:f0:4c:f5:78", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x10ec:0x8168 (r8169) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="60:a4:4c:b5:26:48", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

4) yum remove biosdevnamesembra non necessario.


1
Grazie per aver scomposto i vari fattori. Sembra che tu abbia un refuso nel punto # 1, dovrebbe essere "biosdevname" non "biodevame".
Mark Edington,


2

Mentre la risposta accettata fornisce una soluzione che funziona, non spiega perché ens33viene utilizzata. I collegamenti sottostanti forniscono informazioni sul perché il dispositivo di rete abbia un nome diverso da eth0come e come viene ora nominato nelle varianti di RHEL 7:

Vale anche la pena notare che i valori come "33" che appaiono ens33provengono dal valore dello slot dell'adattatore PCI restituito dal BIOS. Utilizzare questo comando per visualizzare i valori elencati dal sistema per "Slot fisico":

lspci -vv | grep -A20 Ethernet

Ulteriori informazioni sulla parte "ens" del nome sono disponibili nel codice sorgente udev .


1

Per Fedora-24:

  1. modificare /etc/default/grub

  2. Alla fine della GRUB_CMDLINE_LINUXriga appendnet.ifnames=0 biosdevname=0

  3. Salva il file

  4. genere

    grub2-mkconfig -o /boot/grub2/grub.cfg"
    

    o digitare

    grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
    
  5. genere reboot


Perché il dispositivo di rete scompare completamente dal sistema se applico questo metodo a Fedora 26? ifconfigritorna solo loe virbr0, ma originariamente enp4s0non c'è più.
ajeh,

Per rispondere: devo stare attento a cambiare tutti gli script di rete da usare con i ethNnomi per usare quella convenzione. Mi ero lasciato enp4s0in una sceneggiatura.
ajeh,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.