Bagaimana saya bisa mengubah perangkat jaringan "ens33" default menjadi "eth0" lama di Fedora 19?

22

Saya baru saja menginstal Fedora 19 di VMware workstation 9. Perangkat jaringan default adalah "ens33", bukan "eth0" pada RHEL.

Alasan saya harus menggunakan "eth0" adalah bahwa komponen lisensi dari salah satu produk kami harus dikaitkan dengan "eth0".

Ada beberapa posting yang membahas tentang masalah serupa, yang sebagian besar untuk OS yang lebih lama. Saya belum menemukan satu yang persis sesuai dengan situasi saya.

YM Jiang
sumber
Fedora 19 berbeda secara signifikan dari RHEL 5.5 karena dalam pertanyaan ini ditandai duplikat , dan jawabannya tidak sama.
mattdm

Jawaban:

31

Cara termudah untuk mengembalikan cara lama Kernel / modules / udev mengubah nama antarmuka ethernet Anda dengan memasok parameter kernel ini ke Fedora 19 :

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

Untuk melakukannya ikuti langkah-langkah ini:

  1. Edit / etc / default / grub
  2. Pada akhir GRUB_CMDLINE_LINUX tambahkan baris " net.ifnames = 0 biosdevname = 0 "
  3. Simpan file
  4. Ketik " grub2-mkconfig -o /boot/grub2/grub.cfg "
  5. Ketik " reboot "

Jika Anda tidak memberikan parameter ini selama instalasi, Anda mungkin perlu menyesuaikan dan / atau mengganti nama file antarmuka di / etc / sysconfig / network-scripts / ifcfg- * .

Hingga Fedora 18 , cukup biosdevname = 0 sudah cukup.

Sebagai contoh, di mesin tertentu, dalam penelitian lengkap, saya mendapat:

Parameter -Tidak: NIC diidentifikasi sebagai " enp5s2 ".
-Parameter biosdevname = 0: NIC diidentifikasi sebagai " enp5s2 ".
-Parameter net.ifnames = 0: NIC diidentifikasi sebagai " em1 ".
-Parameter net.ifnames = 0 AND biosdevname = 0: NIC diidentifikasi sebagai " eth0 ".

Guilsson
sumber
Terima kasih banyak untuk langkah-langkah terperinci! Semua yang disediakan MathWorks untuk saya adalah untuk versi Fedora yang jauh lebih lama.
Dr. Watson
@ dr-watson: Hingga Fedora 14, ethX adalah penamaan default untuk antarmuka ethernet. Di Fedora 15, Penamaan Perangkat Jaringan Konsisten diimplementasikan. Dari Fedora 15 hingga 18, cukup biosdevname = 0 sudah cukup untuk menjaga penamaan etX. Sama sama.
Guilsson
3
Solusi ini juga berfungsi pada Fedora 20. Terima kasih.
heuristicus
Juga bekerja pada Fedora 21
Eric Grunzke
ubuntu 14.04 juga.
sjas
9

Anda dapat melakukan ini menggunakan aturan udev, seperti:

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
Chris Down
sumber
Terima kasih untuk contohnya. Bagi yang lain, perlu dicatat bahwa /sys/class/net/ens33mungkin berbeda tergantung pada nilai yang dikembalikan oleh bios dan ditemukan dalam output lspci -vv | grep -A25 Ethernet. Juga, jika tujuannya adalah untuk menggunakan eth0nama maka mungkin lebih tepat untuk menentukan flag boot kernel untuk menonaktifkan penamaan perangkat yang "dapat diprediksi".
Mark Edington
7

Di Fedora 20, hal-hal tampaknya telah berubah sedikit lebih jauh.

1) argumen kernel grub
Ya, baik "net.ifnames = 0" dan "biodevame = 0" tampaknya diperlukan.

2) / etc / sysconfig / network-scripts / ifcfg-ethX
Ya, ini juga diperlukan.

3) /etc/udev/rules.d/60-net.rules
Jika Anda memiliki banyak antarmuka dan ingin mengontrol penamaan masing-masing perangkat daripada membiarkan kernel melakukannya dengan caranya sendiri, /etc/udev/rules.d/60 -net.rules tampaknya perlu untuk menimpa /usr/lib/udev/rules.d/60-net.rules seperti berikut ini.

# 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 biosdevnametampaknya tidak perlu.

Hai
sumber
1
Terima kasih telah memecah berbagai faktor. Tampaknya Anda memiliki kesalahan ketik pada poin # 1, harus "biosdevname" bukan "biodevame".
Mark Edington
2

Ini berbeda di Fedora 19 daripada di rilis sebelumnya. Ada dua hal yang harus diperhatikan:

  1. Hapus biosdevname jika sudah diinstal. ( yum remove biosdevname, atau masukkan -biosdevnamekickstart Anda.
  2. Nonaktifkan aturan udev: ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules

Info lebih lanjut dapat ditemukan di http://fedoraproject.org/wiki/Features/SystemdPredictableNetworkInterfaceNames

mattdm
sumber
2

Meskipun jawaban yang diterima memang memberikan solusi yang berfungsi, jawaban itu tidak menjelaskan mengapa ens33digunakan. Tautan di bawah ini memberikan latar belakang mengapa perangkat jaringan dinamai sesuatu selain eth0dan bagaimana sekarang dinamai dalam varian RHEL 7:

Perlu juga dicatat bahwa nilai-nilai seperti "33" yang muncul ens33berasal dari nilai slot adaptor PCI yang dikembalikan oleh BIOS. Gunakan perintah ini untuk melihat nilai apa yang telah dicantumkan sistem Anda untuk "Slot Fisik":

lspci -vv | grep -A20 Ethernet

Informasi tambahan pada bagian "ens" dari nama dapat ditemukan dalam kode sumber udev .

Mark Edington
sumber
1

Untuk Fedora-24:

  1. Edit /etc/default/grub

  2. Pada akhir GRUB_CMDLINE_LINUXbaris tambahkannet.ifnames=0 biosdevname=0

  3. Simpan file

  4. Mengetik

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

    atau ketik

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

Hafiz
sumber
Mengapa perangkat jaringan benar-benar hilang dari sistem jika saya menerapkan metode ini ke Fedora 26? ifconfighanya mengembalikan lodan virbr0, tetapi awalnya enp4s0tidak ada lagi.
ajeh
Untuk menjawab sendiri: perlu berhati-hati untuk mengubah semua skrip jaringan yang akan digunakan dengan ethNpenamaan untuk menggunakan konvensi itu. Saya telah meninggalkan enp4s0satu naskah.
ajeh