16.04 में अपग्रेड करने के बाद नेटवर्क नेटवर्क इंटरफेस शुरू करने में विफल


28

मैंने अभी एक वर्चुअल 14.04 सर्वर मशीन को 16.04 में अपग्रेड किया है। VM को रीबूट करने के बाद मुझे निम्नलिखित त्रुटि दिखाई देती है:

[FAILED] Failed to start Raise network interfaces.
 See 'systemctl status networking.service' for details

लॉगिन के बाद मैं उल्लेखित कमांड चला सकता हूं और निम्न आउटपुट प्राप्त कर सकता हूं (जैसा कि मैं कनेक्ट करने में सक्षम नहीं हूं) छवि:

यहाँ छवि विवरण दर्ज करें

कॉन्फ़िगरेशन /etc/network/interfacesठीक दिखता है - मैन्युअल रूप से कॉन्फ़िगर किया गया eth0 की विशेषता (यहाँ dhcp का उपयोग नहीं)

क्या मुझे आश्चर्य है कि ifconfig -aसूची है

  • ens160
  • आरे

जहां मैं उम्मीद करूंगा

  • eth0
  • आरे

के माध्यम से eth0 डिवाइस को ऊपर करने की कोशिश कर रहा है

sudo ifup -v eth0 

आउटपुट:

...
Cannot find device "eth0"
Failed to bring up eth0.

वर्चुअल वायर्ड नेटवर्क डिवाइस अभी भी VM में ही कॉन्फ़िगर किया गया है जैसा कि पहले था।

ip linkशो के रूप में अच्छी तरह से loऔर ens160- जहां ens160मैक पते को एक कॉन्फ़िगर वर्चुअल नेटवर्क डिवाइस के लिए vmware में कॉन्फ़िगर किया गया है।

अद्यतन करें

मैं समस्या को हल करने में सक्षम हूं अगर मैं eth0 के सभी संदर्भों /etc/network/interfacesको ens160 में बदल दूं।

लेकिन - यह कई कारणों से मेरे लिए गलत लगता है:

  1. मैं इस समस्या को समझना चाहूंगा
  2. मैं ens160 के बजाय eth0 से चिपकना चाहूंगा

तो कृपया कोई इस परिवर्तन की व्याख्या कर सकता है, जो एक ही सर्वर पर कई अन्य 14.04 मशीनों के साथ नहीं हुआ, जिसे मैंने 16.04 में भी अपग्रेड किया था।


1
डुप्लिकेट हो सकता है: askubuntu.com/questions/704361/…
dufte

फिक्स का एक समान विवरण यहां है: askubuntu.com/a/830163/543586
thettoy

जवाबों:


15

कारण

यह समस्या Systemd / udev से प्रीडिक्टेबल-नेटवर्क-इंटरफेस-नेम्स के कारण हुई थी।

संभावित समाधान

इस स्रोत के अनुसार आप या तो:

  • आप निश्चित नामों के असाइनमेंट को अक्षम कर देते हैं, ताकि अप्रत्याशित कर्नेल नामों का फिर से उपयोग किया जा सके। इसके लिए, डिफ़ॉल्ट पॉलिसी के लिए बस udev की नियम फ़ाइल को मास्क करें: ln -s / dev / null /etc/udev/rules.d/80-net-setup-link.rules
  • आप अपना स्वयं का नामकरण योजना बनाते हैं, उदाहरण के लिए अपने इंटरफेस "internet0", "dmz0" या "lan0" का नामकरण करके। इसके लिए / etc / systemd / network / में अपनी स्वयं की .link फ़ाइलें बनाएँ, जो एक स्पष्ट नाम या किसी एक, कुछ, या आपके सभी इंटरफ़ेस के लिए एक बेहतर नामकरण योजना चुनें। अधिक जानकारी के लिए systemd.link (5) देखें।
  • आप कर्नेल कमांड लाइन पर net.ifnames = 0 पास करते हैं

लागू समाधान

मैं एक नई फ़ाइल बनाना किया 10-rename-network.rulesमें /etc/udev/rules.d/और उसमें निम्न सामग्री कहा:

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="ff:ff:ff:ff:ff:ff", NAME="eth0"

कहा पे

  • eth0 = वांछित नेटवर्क इंटरफ़ेस नाम, जिसका उपयोग किया जाता है /etc/network/interfaces
  • ff:ff:ff:ff:ff:ff = नेटवर्क डिवाइस का हार्डवेयर मैक एड्रेस

मैं यह सुनिश्चित करने के लिए रिबूट करने की सलाह दूंगा कि बदलाव चिपचिपा है।


मुझे पता चला कि मुझे update-initramfs -uअपने परिवर्तनों को प्रभावी करने के लिए दौड़ना था
एनेल

मेरे डेबियन सिस्टम पर फ़ाइल '/etc/udev/rules.d/70-persistent-net.rules'
jeremiah

6

फ़ाइल /etc/network/interfaces.d/setup से बदलकर हल किया गया:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp

सेवा मेरे:

auto lo
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet dhcp

1

मेरे मामले में यह समस्या मेरे पुल को लाने की कोशिश से संबंधित थी br0। मैं यह करना भूल गया था:

sudo apt-get install bridge-utils

इससे पहले और इसलिए मेरा एडॉप्टर शुरू नहीं हो सका।


2
यह ओपी की समस्या से अलग है। मुझे यकीन नहीं है कि यह जवाब इस सवाल का है!
ज़न्ना

0

आप यहां स्थित / लगातार नेटवर्क इंटरफ़ेस नामों के लिए udv कैश को हटाना / संशोधित करना चाह सकते हैं: /etc/udev/rules.d/70-persistent-net.rules

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.