मैं Fedora 19 पर पुराने "eth0" के डिफ़ॉल्ट "ens33" नेटवर्क डिवाइस को कैसे बदल सकता हूं?


22

मैंने अभी VMware वर्कस्टेशन 9 पर एक फेडोरा 19 स्थापित किया है। डिफ़ॉल्ट नेटवर्क डिवाइस RHEL पर "eth0" के बजाय "ens33" है।

मुझे "eth0" का उपयोग करने का कारण यह है कि हमारे उत्पादों में से एक के लाइसेंस घटक को "eth0" के साथ जोड़ा जाना चाहिए।

समान मुद्दों के बारे में चर्चा करते हुए कुछ पोस्ट हैं, जिनमें से अधिकांश पुराने ओएस के लिए हैं। मुझे एक ऐसा नहीं मिला है जो मेरी स्थिति से बिल्कुल मेल खाता हो।


फेडोरा 19 आरएचईएल 5.5 से काफी अलग है क्योंकि इस प्रश्न में इसे डुप्लिकेट के रूप में चिह्नित किया गया था , और इसका उत्तर समान नहीं है।
Mattdm

जवाबों:


31

पुराने तरीके कर्नेल / मॉड्यूल / udev को पुनर्स्थापित करने का सबसे आसान तरीका, अपने ईथरनेट इंटरफेस का नाम बदलें, इन कर्नेल मापदंडों को फेडोरा 19 को आपूर्ति कर रहा है :

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

ऐसा करने के लिए इस चरणों का पालन करें:

  1. संपादित करें / आदि / डिफ़ॉल्ट / ग्रब
  2. GRUB_CMDLINE_LINUX पंक्ति के अंत में " net.ifnames = 0 biosdevname " 0 "जोड़ें
  3. फ़ाइल सहेजें
  4. " Grub2-mkconfig -o /boot/grub2/grub.cfg " टाइप करें
  5. " रिबूट " टाइप करें

यदि आपने स्थापना के दौरान इन मापदंडों की आपूर्ति नहीं की है, तो आपको संभवतः / etc / sysconfig / network-script / ifcfg- * पर इंटरफ़ेस फ़ाइलों को समायोजित करने और / या नाम बदलने की आवश्यकता होगी ।

अप करने के लिए फेडोरा 18 , बस biosdevname = 0 पर्याप्त था।

एक उदाहरण के रूप में, एक निश्चित मशीन में, एक संपूर्ण शोध में, मुझे मिला:

-नहीं मापदंडों: एनआईसी " enp5s2 " के रूप में पहचान की ।
-परिमेंट बायोसदेवनाम = 0: एनआईसी को " एनपी 5 एस 2" के रूप में पहचाना जाता है ।
-प्रेम व्यास net.ifnames = 0: NIC को " em1 " के रूप में पहचाना जाता है ।
-परामेट net.ifnames = 0 और biosdevname = 0: NIC को " eth0 " के रूप में पहचाना जाता है ।


विस्तृत चरणों के लिए बहुत बहुत धन्यवाद! मैथवर्क्स मुझे जो कुछ प्रदान कर रहा था, वह फेडोरा के पुराने संस्करणों के लिए था।
डॉ। वाटसन

@ डॉ-वॉटसन: फेडोरा 14 तक, ईएक्सएक्स ईथरनेट इंटरफेस के लिए डिफ़ॉल्ट नामकरण था। फेडोरा 15 में, लगातार नेटवर्क डिवाइस नामकरण लागू किया गया था। फेडोरा 15 से 18 तक, बस बायोसदेवनाम = 0 एथेक्स नामकरण रखने के लिए पर्याप्त था। आपका स्वागत है।
22

3
यह समाधान फेडोरा 20 पर भी काम करता है। धन्यवाद।
हेयुरिस्टिकस

फेडोरा 21 पर भी काम किया
एरिक ग्रुंज़े ने

ubuntu 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

उदाहरण के लिए धन्यवाद। दूसरों के लिए, यह ध्यान देने योग्य है कि /sys/class/net/ens33बायोस द्वारा लौटाए गए मूल्यों के आधार पर भिन्न हो सकते हैं और आउटपुट में पाए जाते हैं lspci -vv | grep -A25 Ethernet। इसके अलावा, यदि इरादा eth0नाम के रूप में उपयोग करना है तो डिवाइस के "पूर्वानुमान" नामकरण को अक्षम करने के लिए कर्नेल बूट झंडे को निर्दिष्ट करना अधिक उपयुक्त हो सकता है।
मार्क एडिंगटन

7

फेडोरा 20 में, चीजें थोड़ी और बदल गई हैं।

1) ग्रब कर्नेल तर्क
हां, दोनों "net.ifnames = 0" और "biodevame = 0" दोनों आवश्यक लगते हैं।

2) / etc / sysconfig / network-script / 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 बिंदु में एक टाइपो है, "बायोडदेवनाम" होना चाहिए न कि "बायोडेवम"।
मार्क एडिंगटन

2

यह पिछले रिलीज की तुलना में फेडोरा 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मूल्य पीसीआई एडेप्टर स्लॉट मूल्य से आते हैं जो BIOS द्वारा लौटाए जाते हैं। इस आदेश का उपयोग यह देखने के लिए करें कि आपके सिस्टम ने "भौतिक स्लॉट" के लिए किन मूल्यों को सूचीबद्ध किया है:

lspci -vv | grep -A20 Ethernet

नाम के "सुनिश्चित" भाग पर अतिरिक्त जानकारी udev स्रोत कोड में पाई जा सकती है ।


1

फेडोरा -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


यदि मैं फेडोरा 26 को यह विधि लागू करता हूं तो नेटवर्क डिवाइस सिस्टम से पूरी तरह से गायब क्यों हो जाता है? ifconfigकेवल रिटर्न loऔर virbr0, लेकिन मूल रूप enp4s0से अब नहीं है।
अजेह

खुद को जवाब देने के लिए: ethNउस कन्वेंशन का उपयोग करने के लिए नामकरण के साथ उपयोग किए जाने वाले सभी नेटवर्क स्क्रिप्ट को बदलने के लिए सावधान रहने की आवश्यकता है । मैंने enp4s0एक स्क्रिप्ट में छोड़ दिया था ।
अजेह
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.