ฉันจะเปลี่ยนอุปกรณ์เครือข่าย“ ens33” เริ่มต้นเป็น“ eth0” เก่าบน Fedora 19 ได้อย่างไร


22

ฉันเพิ่งติดตั้ง Fedora 19 บนเวิร์กสเตชัน VMware 9 อุปกรณ์เครือข่ายเริ่มต้นคือ "ens33" แทนที่จะเป็น "eth0" บน RHEL

เหตุผลที่ฉันต้องใช้ "eth0" คือส่วนประกอบใบอนุญาตของหนึ่งในผลิตภัณฑ์ของเราจะต้องเชื่อมโยงกับ "eth0"

มีการโพสต์พูดคุยเกี่ยวกับปัญหาที่คล้ายกันซึ่งส่วนใหญ่จะเป็นระบบปฏิบัติการรุ่นเก่า ฉันไม่พบสิ่งที่ตรงกับสถานการณ์ของฉัน


Fedora 19 นั้นแตกต่างจาก RHEL 5.5 อย่างมีนัยสำคัญในคำถามที่มีการทำเครื่องหมายว่าซ้ำกันและคำตอบนั้นไม่เหมือนกัน
mattdm

คำตอบ:


31

วิธีที่ง่ายที่สุดในการคืนค่าแบบเก่า Kernel / modules / udev เปลี่ยนชื่ออินเทอร์เฟซอีเธอร์เน็ตของคุณคือการส่งพารามิเตอร์เคอร์เนลเหล่านี้ไปยังFedora 19 :

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

โดยทำตามขั้นตอนนี้:

  1. แก้ไข/ etc / default / grub
  2. ในตอนท้ายของบรรทัดGRUB_CMDLINE_LINUXผนวก " net.ifnames = 0 biosdevname = 0 "
  3. บันทึกไฟล์
  4. พิมพ์ " grub2-mkconfig -o /boot/grub2/grub.cfg "
  5. พิมพ์ " reboot "

หากคุณไม่ได้จัดหาพารามิเตอร์เหล่านี้ในระหว่างการติดตั้งคุณอาจจะต้องปรับตัวและ / หรือไฟล์อินเตอร์เฟซที่เปลี่ยนชื่อ/ etc / sysconfig / เครือข่ายสคริปต์ / ifcfg- *

จนถึงFedora 18เพียงแค่biosdevname = 0ก็เพียงพอแล้ว

ตัวอย่างเช่นในเครื่องจักรบางเครื่องในการวิจัยที่ละเอียดถี่ถ้วนฉันได้รับ:

- ไม่มีพารามิเตอร์: NIC ถูกระบุว่าเป็น " enp5s2 "
- พารามิเตอร์ biosdevname = 0: NIC ถูกระบุว่าเป็น " enp5s2 "
- พารามิเตอร์ net.ifnames = 0: NIC ถูกระบุว่าเป็น " em1 "
- พารามิเตอร์ net.ifnames = 0 AND biosdevname = 0: NIC ถูกระบุว่าเป็น " eth0 "


ขอบคุณมากสำหรับขั้นตอนอย่างละเอียด! ทุกสิ่งที่ MathWorks มอบให้ฉันคือ Fedora รุ่นเก่ากว่ามาก
ดร. วัตสัน

@ dr-watson: จนถึง Fedora 14, ethXเป็นชื่อเริ่มต้นสำหรับส่วนต่อประสานอีเธอร์เน็ต ใน Fedora 15 สอดคล้องเครือข่ายอุปกรณ์การตั้งชื่อถูกนำมาใช้ จาก Fedora 15 ไปจนถึง 18 เพียงแค่biosdevname = 0เพียงพอที่จะตั้งชื่อ ethX ได้ ยินดี.
Guilsson

3
วิธีนี้ใช้ได้กับ Fedora 20 ด้วย
heuristicus

ยังทำงานกับ Fedora 21
Eric Grunzke

อูบุนตู 14.04 เช่นกัน
sjas

9

คุณสามารถทำได้โดยใช้กฎ udev เช่น:

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

ขอบคุณสำหรับตัวอย่าง สำหรับคนอื่น ๆ มันเป็นมูลค่า noting ว่าอาจจะแตกต่างกันขึ้นอยู่กับค่าที่ส่งกลับโดยประวัติและพบว่าในการส่งออกของ/sys/class/net/ens33 lspci -vv | grep -A25 Ethernetนอกจากนี้หากความตั้งใจที่จะใช้eth0เป็นชื่อนั้นอาจเหมาะสมกว่าที่จะระบุแฟล็กเคอร์เนลบูตเพื่อปิดใช้งานการตั้งชื่อ "คาดการณ์ได้" ของอุปกรณ์
Mark Edington

7

ใน Fedora 20 สิ่งต่าง ๆ ดูเหมือนจะเปลี่ยนไปอีกเล็กน้อย

1) อาร์กิวเมนต์ grub kernel
ใช่ใช่ทั้ง "net.ifnames = 0" และ "biodevame = 0" ดูเหมือนจำเป็น

2) / etc / sysconfig / network-สคริปต์ / ifcfg-ethX
ใช่สิ่งเหล่านี้จำเป็นเช่นกัน

3) /etc/udev/rules.d/60-net.rules
หากคุณมีหลายอินเตอร์เฟสและต้องการควบคุมการตั้งชื่อของอุปกรณ์แต่ละชิ้นแทนที่จะปล่อยให้เคอร์เนลทำในแบบของตนเอง /etc/udev/rules.d/60 -net.rules ดูเหมือนว่าจำเป็นที่จะแทนที่ /usr/lib/udev/rules.d/60-net.rules ดังนี้

# 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 biosdevnameดูเหมือนว่าไม่จำเป็น


1
ขอขอบคุณที่ทำลายปัจจัยต่างๆ ดูเหมือนว่าคุณพิมพ์ผิดในจุด # 1 ควรเป็น "biosdevname" ไม่ใช่ "biodevame"
Mark Edington

2

สิ่งนี้ต่างจาก Fedora 19 มากกว่าในรุ่นก่อนหน้า ที่อยู่มีสองสิ่ง:

  1. ลบ biosdevname หากมีการติดตั้ง ( yum remove biosdevnameหรือใส่-biosdevnameในการเริ่มต้นของคุณ
  2. ปิดการใช้งานกฎ udev: ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules

ข้อมูลเพิ่มเติมสามารถดูได้ที่http://fedoraproject.org/wiki/Features/SystemdPredictableNetworkInterfaceNames


2

แม้ว่าคำตอบที่ได้รับการยอมรับจะมีวิธีการแก้ปัญหาที่ใช้งานได้ แต่ก็ไม่ได้อธิบายว่าทำไมจึงens33มีการใช้งาน ลิงค์ด้านล่างนี้ให้ข้อมูลพื้นฐานเกี่ยวกับสาเหตุที่อุปกรณ์เครือข่ายตั้งชื่อเป็นอย่างอื่นนอกเหนือeth0จากที่ตั้งชื่อในรุ่น RHEL 7:

นอกจากนี้ยังเป็นที่น่าสังเกตว่าค่าเช่น "33" ที่ปรากฏens33นั้นมาจากค่าช่องเสียบอะแดปเตอร์ PCI ที่ส่งคืนโดย BIOS ใช้คำสั่งนี้เพื่อดูว่าค่าที่ระบบของคุณระบุไว้สำหรับ "ฟิสิคัลสล็อต":

lspci -vv | grep -A20 Ethernet

ข้อมูลเพิ่มเติมเกี่ยวกับส่วน "ENS" ชื่อที่สามารถพบได้ในรหัสที่มา udev


1

สำหรับ Fedora-24:

  1. แก้ไข /etc/default/grub

  2. เมื่อสิ้นสุดGRUB_CMDLINE_LINUXบรรทัดต่อท้ายnet.ifnames=0 biosdevname=0

  3. บันทึกไฟล์

  4. ชนิด

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

    หรือพิมพ์

    grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
    
  5. ชนิด reboot


ทำไมอุปกรณ์เครือข่ายถึงหายไปจากระบบอย่างสมบูรณ์ถ้าฉันใช้วิธีนี้กับ Fedora 26 ifconfigส่งคืนเท่านั้นloและvirbr0แต่เริ่มแรกenp4s0ไม่อยู่ที่นั่นแล้ว
ajeh

หากต้องการตอบตัวเอง: ต้องระมัดระวังในการเปลี่ยนสคริปต์เครือข่ายทั้งหมดเพื่อใช้กับethNการตั้งชื่อเพื่อใช้การประชุมนั้น ฉันทิ้งไว้enp4s0หนึ่งสคริปต์
ajeh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.