कैसे आप स्वचालित रूप से CentOS 6 / RedHat में एक नए नेटवर्क कार्ड का पता लगा सकते हैं?


46

मैं एक आभासी वातावरण में CentOS 6 का उपयोग कर रहा हूं। CentOS के वर्चुअल वर्जन को क्लोन करते समय, पुराने एथ एडेप्टर्स को "हटा" दिया जाता है और उन्हें नए और नेट मैक एड्रेस से बदल दिया जाता है। हालाँकि, ifcfg-ethn फ़ाइलें अभी भी मौजूद हैं। मैं यह पता लगाने की कोशिश कर रहा हूं कि कैसे नेटवर्क एडेप्टर / एथ फाइलों को स्वचालित रूप से rescan और विश्राम करने के लिए CentOS प्राप्त करना है, जैसे कि इसे इंस्टॉल करने पर किया था।

अन्यथा मुझे यहाँ वर्णित थकाऊ प्रक्रिया के साथ छोड़ दिया गया है: http://www.centos.org/docs/5/html/Installation_Guide-en-US/s1-s390info-addnetdevice.html

मुझे पता है कि GUI में ऐसा करने का एक त्वरित तरीका है, लेकिन हम एक सर्वर का उपयोग कर रहे हैं ताकि GUI इस मामले में लागू न हो। मदद?

संपादित करें: @ ओल्डवॉल्फ ने कुदज़ु को सुझाव दिया, हालांकि कुडज़ू को सेंटोस 5 के रूप में हटा दिया गया है, इसलिए मैं इससे बचना चाहूंगा। एक प्रक्रिया है कि लिनक्स शुरुआती इंस्टॉल पर चलता है - क्या कोई मुझे यह पता लगाने में मदद कर सकता है कि ऐसा क्या है जिससे मैं इसे मैन्युअल रूप से ट्रिगर कर सकता हूं?

जवाबों:


52

CentOS 6 के साथ अब कुछ भी udv द्वारा संभाला जाता है। में जाओ /etc/udev/rules.dऔर 70-persistent-net.rulesफ़ाइल को हटा दें और रिबूट करें। यदि आप इसे हाथ से खोलते हैं, तो आप सबसे अधिक मूल NIC MAC को सूचीबद्ध eth0और नए के रूप में देखेंगे eth1

अब आपको /etc/sysconfig/network-scripts/ifcfg-eth0अपने नए एनआईसी कार्ड के मैक को संपादित करने और मैन्युअल रूप से अपडेट करने की आवश्यकता है ।

फ़ाइल को हटाने का पता लगाने की प्रक्रिया को फिर से चलाने के लिए बाध्य करता है जिसमें क्लोनिंग प्रक्रिया से कोई सामान नहीं बचा है, अर्थात पुराना एनआईसी मैक एड्रेस (एस)।

मुझे अपने CentOS 6 क्लोन VMware ESXi 4.1 पर हर समय करना है। यह एक दर्द है kudzu पिछले संस्करणों के साथ अतीत में इसे संभाल लेगा।


2
अद्भुत ट्रेसी लग रही थी, हालाँकि यह आपके बताए अनुसार काम नहीं कर रही थी। पुरानी ifcfg-eth0 फ़ाइल अभी भी थी, सही नए के बजाय मूल मैक पते आदि के साथ।
जोशुआ

2
सॉरी हाँ मैं भूल गया था। आपको ifcfg-eth0 में मैक पते को अपडेट करने के साथ-साथ खेद भी होना चाहिए। यह काम कर देगा। एक आसान तरीका हो सकता है लेकिन मुझे अभी तक इसे ढूंढना नहीं है ...
ट्रेसी कार्लटन

यह एक अच्छी शुरुआत थी। ऐसा लगता है कि स्क्रिप्ट को लिखना संभव हो सकता है जो प्रक्रिया को स्वचालित करेगा - यहां तक ​​कि मैनुअल बिट्स भी वर्णित हैं - बूटअप पर। मशीन को क्लोन / स्थानांतरित करने के बाद ही समस्या स्क्रिप्ट को सक्रिय कर रही है। अभी भी इसका पूरा जवाब नहीं ...
जोशुआ

5
में जाओ /etc/udev/rules.dऔर 70-persistent-net.rulesफ़ाइल को हटा दें और रिबूट न ​​करें। में जाओ /etc/sysconfig/network-scripts/ifcfg-eth0और अपने नए एनआईसी कार्ड के मैक को मैन्युअल रूप से अपडेट करें। रिबूट और नेटवर्क को जीवित आना चाहिए।

2
@ user151091 रिबूट करने के बजाय, start_udevफिर service network restartमेरे लिए काम किया।
doshea

5

आप इस टूल का उपयोग भी कर सकते हैं (यह GUI टूल नहीं है, इसका TUI टूल, टेक्स्ट-आधारित यूजर इंटरफेस)

[root @ localhost ~] # सिस्टम-कॉन्फिग-नेटवर्क-तुई

कमांड के ऊपर टाइप करें और एंटर दबाएं

तब यह स्क्रीन दिखाई देगा

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

डिवाइस कॉन्फ़िगरेशन चुनें और एंटर दबाएं

तब यह स्क्रीन दिखाई देगा

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

यहाँ eth0 संदर्भित करता है /etc/sysconfig/network-scripts/ifcfg-eth0

इसमें जो भी संपादन किया गया है eth0वह ifcfg-eth0फाइल करने के लिए प्रभावित करेगा


हालांकि यह कुछ लोगों / मामलों के लिए एक उपयोगी उत्तर हो सकता है, इसका लक्ष्य नेटवर्क एडेप्टर के कॉन्फ़िगरेशन को स्क्रिप्ट या स्वचालित करना था, जो कि टीयूआई / जीयूआई के माध्यम से नहीं किया जा सकता है। मूल पोस्ट पढ़ें: "मैं यह पता लगाने की कोशिश कर रहा हूं कि स्वचालित रूप से नेटवर्क एडेप्टर / एथ फाइलों को सेंटोस कैसे प्राप्त करें और इसे फिर से बनाएं, जैसे कि इसे इंस्टॉल किया गया था।"
जोशुआ

@ जोशुआ सॉरी मिल गया ... + 1
अधिकतम

@ मोम, बस system-config-networkइस इंटरफ़ेस को खोलने के लिए भी लगता है।
एक्यूमेनस

2
@QiFan इस कमांड को आज़माएंyum install system-config-network-tui
अधिकतम 5

1
@QiFan यह जानने के लिए कि किस पैकेज में वह कमांड है, इसे आज़माएँyum whatprovides */system-config-network-tui
अधिकतम

4

लगातार नियम फ़ाइल हटाएँ:

rm /etc/udev/rules.d/70-persistent-net.rules

Ifcfg-eth0 संपादित करें:

nano /etc/sysconfig/network-scripts/ifcfg-eth0

HWADDRलाइन को पूरी तरह से हटा दें (या अपने नए एनआईसी के मैक पते से मिलान करने के लिए इसे बदल दें)।

अपने सिस्टम को रिबूट करें:

reboot

यदि आप एनआईसी को फिर से बदलते हैं, तो बस चरण # 1 और # 3 दोहराएं।


क्या आपको वास्तव में रिबूट करने की आवश्यकता है? क्यों न केवल नेटवर्क सेवा को फिर से शुरू करें?
vgoff

हालांकि यह कुछ लोगों / मामलों के लिए एक उपयोगी उत्तर हो सकता है, इसका लक्ष्य नेटवर्क एडेप्टर के कॉन्फ़िगरेशन को स्क्रिप्ट या स्वचालित करना था। मूल पोस्ट से: "मैं यह पता लगाने की कोशिश कर रहा हूं कि नेटवर्क एडेप्टर / एथ फाइलों को स्वचालित रूप से रिस्कैन और रीक्रिएट करने के लिए सेंटो कैसे प्राप्त करें, जैसे कि इसे इंस्टॉल किया था।"
जोशुआ

@vgoff हाँ, नेटवर्क सेवा को पुनरारंभ करना स्पष्ट रूप से ठीक काम करता है :) शायद वह नेटवर्क डिवाइस को स्वयं रिबूट करने की बात कर रहा है, जैसे "ifup eth0" आदि
जोशुआ

वह हो सकता है, लेकिन वह कहता है 'प्रणाली' नहीं 'डिवाइस' है।
vgoff

मैं गलत हो सकता हूं, लेकिन मुझे लगता है कि आपके द्वारा लगातार नियम फ़ाइल को हटाने के बाद network सर्विस नेटवर्क रिस्टार्ट ’के कारण आपके एडेप्टर का नाम बदला नहीं जा सकेगा, और इसके कारण उनका नाम बदलने के लिए रिबूट या _ start_udev’ की आवश्यकता होती है।
doshea

4

क्लोन के बाद फ़ाइलों को संशोधित करना मेरे उपयोग-मामले के लिए काम नहीं करेगा, इस प्रकार मैंने समस्या को निम्नानुसार हल किया।

आपको दो फ़ाइलों को संपादित करने की आवश्यकता है, प्रत्येक में मैक पते के संदर्भों को हटाते हुए:

/etc/sysconfig/network-scripts/ifcfg-eth0 - HWADDR = लाइन को हटा दें।

/etc/udev/rules.d/70-persistent-net.rules - अगले कॉमा को ATTR {पता} == से निकालें और शामिल करें।

अब जब आप VM को क्लोन करते हैं और मैक एड्रेस को बदलते हैं तो नेटवर्किंग काम करेगी क्योंकि मैक एड्रेस कभी भी फाइल में नहीं लिखा जाता है।


यह मेरे लिए काम करता है - जैसा कि उल्लेख किया गया है, मैक पते को कभी भी फ़ाइल में वापस नहीं लिखा जाता है, इसलिए आप इसे बदल सकते हैं और आपका इंटरफ़ेस उसी कॉन्फिग के साथ "eth0" रहेगा। यह केवल तभी काम करता है जब आपके पास एक नेटवर्क अडैप्टर हो, हालाँकि, अन्यथा मुझे "स्टार्टिंग यूडीवी:" पर एक लंबा बूट डिले मिला और मेरे दूसरे डिवाइस को "रेनमे 3" कहा गया, संभवत: क्योंकि नियमों का सुझाव था कि दोनों डिवाइसों को "eth0" कहा जाना चाहिए। "।
doshea

1 एडाप्टर के लिए व्यावहारिक समाधान। नेट सेटिंग्स में ब्रिज के रूप में कनेक्शन टाइप करना भी न भूलें।
चेरी

3

मैं बहुत सारे CentOS 6 वर्चुअल मशीन बनाता और हटाता हूँ, मैंने VirtualBox में क्लोनिंग पर eth0 को ठीक करने के लिए कुछ Bashfu को लिखा था।

   [root@jp-xm-base ~]# cat fixeth0.sh
if grep -q eth1 /etc/udev/rules.d/70-persistent-net.rules; then
   sed -i '/eth0/d' /etc/udev/rules.d/70-persistent-net.rules;
   sed -i 's/eth1/eth0/g' /etc/udev/rules.d/70-persistent-net.rules;
   ETHERNET=`grep eth0 /etc/udev/rules.d/70-persistent-net.rules | awk -F"," '{print $4}' | awk -F"\"" '{print $2}'`;
   echo Ethernet Addr: $ETHERNET;
   sed -i 's/HWADDR=".*"/HWADDR="'$ETHERNET'"/' /etc/sysconfig/network-scripts/ifcfg-eth0;
   /sbin/start_udev
   /sbin/service network restart;
fi

1

यदि आपकी एकमात्र समस्या मैक एड्रेस है, तो आप इसके समान कुछ चला सकते हैं

TEST=`ifconfig | grep eth | awk '{ print $5}'`; sed "s/HWADDR.*/HWADDR\=$TEST/g" ifcfg-eth0 > TMP; mv TMP ifcfg-eth0

HWADDR प्रविष्टि को अद्यतन करने के लिए।

संपादित करें: चूंकि यह दिखता है कि समस्या वर्चुअल हार्डवेयर में एक वास्तविक बदलाव है जिसे आप निम्नलिखित की कोशिश कर सकते हैं। ( यहां से अप्रकाशित और संदर्भित )

संपादित करें / etc / sysconfig / hwconf और पिछले NIC और rerun kudzu के सभी संदर्भ को हटाकर देखें कि क्या यह नया हार्डवेयर पता लगाता है। आपको रिबूट करने की आवश्यकता हो सकती है।


मैंने उदाहरण के लिए eth0 पर मैक पते को मैन्युअल रूप से बदलने की कोशिश की, लेकिन यह अभी भी काम नहीं किया। "सेवा नेटवर्क बल-पुनः लोड", "ifup eth0" आदि के बाद के प्रयास हमेशा "डिवाइस eth0 में मौजूद नहीं लगते हैं ..." मदद करते हैं?
जोशुआ

आप किस प्रकार के वर्चुअलाइजेशन का उपयोग कर रहे हैं और आपने सिस्टम को कैसे क्लोन किया?
ओल्डवुल्फ

वर्चुअलबॉक्स, लेकिन मुझे नहीं लगता कि वर्चुअलाइजेशन मायने रखता है। यह एक भौतिक बॉक्स को बंद करने, मौजूदा नेटवर्क एडेप्टर को हटाने और अलग-अलग लोगों को जोड़ने जैसा होना चाहिए।
जोशुआ

@ जोश जहां ifcfg- * फाइलें हैं जिन्हें आप संपादित कर रहे हैं क्योंकि संभवतः तीन सेट हैं - चेक आउट / आदि / sysconfig / नेटवर्क-स्क्रिप्ट और / etc / sysconfig / नेटवर्किंग / उपकरण और / etc / sysconfig / नेटवर्किंग / प्रोफाइल / डिफ़ॉल्ट () हाँ, मुझे पता है - ऐसा लगता है कि एडेप्टर को सेटअप करने के लिए आप किस टूल / एस का उपयोग करते हैं। पहले वे होने चाहिए जो अंतर बनाते हैं, लेकिन आपको दूसरों से भी निपटने की आवश्यकता हो सकती है।
Linker3000

1
कारण मैंने पूछा और यह कि वर्चुअलाइजेशन प्रकार मायने रखता है कि यह निर्धारित करता है कि क्लोनिंग प्रक्रिया क्या दिखती है। एक ही होस्ट पर एक VMware क्लोन वर्चुअल नेटवर्क हार्डवेयर को नहीं बदलेगा जब तक कि आपने इसे नहीं बताया। आपके मामले में, समस्या मैक एड्रेस और न ही क्लोनिंग प्रक्रिया नहीं है, यह है कि आप वर्चुअल हार्डवेयर बदल रहे हैं।
ओल्डवुल्फ

1

मैं Vmware का उपयोग नहीं कर रहा हूँ लेकिन KVM वायरश के साथ - यह वही है जो मैंने किया है।

CentOS 6.4 के साथ एक 'आधार' चित्र बनाया गया, यह मेरे सभी क्लोनों का स्रोत है। पहले बूट के बाद मैंने इस तरह से एक स्क्रिप्ट बनाई

cat /etc/init.d/manglemac 
#!/bin/bash
#
# manglemac        This starts and stops mangle-mac
#
# chkconfig: 2345 11 88
# description: This obtains tha mac of eth0 and writes into ifcfg

mac=$(grep -H . /sys/class/net/*/address | grep eth0 | cut   -d ':' -f2-10)
match_mac=$(grep $mac /etc/sysconfig/network-scripts/ifcfg-eth0)

if [ -z "$match_mac" ];
then
   echo HWADDR=$mac >> /etc/sysconfig/network-scripts/ifcfg-eth0
fi

इसे init के साथ जोड़ा

chkconfig --add manglemac

/ Etc / sysconfig / नेटवर्क-स्क्रिप्ट / HWADDR या UUID के ifcfg-eth0 में सभी संदर्भ हटा दिए गए, /etc/udev/rules.d/70/persistent-net.rules से udev नियम भी हटा दिए गए।

इस बिंदु पर मैंने मशीन को बंद कर दिया और क्लोन करना शुरू कर दिया। सभी ठीक काम करता है। मेरे द्वारा बनाई गई स्क्रिप्ट बहुत सरल है, लेकिन ठीक काम करती है, हालांकि यह नेटवर्क के लिए आपके सेटअप के बारे में कुछ धारणाएं बनाता है (केवल eth0)।

मुझे उम्मीद है कि मदद मिलेगी।


0

मैं कई एनआईसी के साथ काम कर रहा था और ऊपर कुछ भी मेरे लिए काम नहीं किया (VMware फ्यूजन 7 / VMware 6 और नीचे), इसलिए मैंने एक स्क्रिप्ट लिखी। टारबॉल यहाँ है

यहाँ यह है READMEकि इसके साथ आता है:

  • यह टैरबॉल और संबंधित स्क्रिप्ट आपके हाल ही में क्लोन किए गए VMware CentOS 6 या मशीन के नीचे (कोई सिस्टम नहीं है) के मैक पते को बदल देगा।
  • आपको केवल उस मशीन में करने की आवश्यकता है जिसे आप केवल एक समय से क्लोन करेंगे:

    1. इंस्टॉल करें I lshw
    2. MAC एड्रेस को अपने सभी /etc/sysconfig/network-scripts/ifcfg-eth?MACDADDY num से बदलें जहाँ num नेटवर्क इंटरफ़ेस की संख्या है। आपको फ़ाइल के लिए नामकरण पैटर्न का पालन करने की आवश्यकता है।
    3. Daud:

      chckconfig change_mac_address on
      

      यह फ़ाइल में निर्दिष्ट उचित स्तर पर सहानुभूति लिंक जोड़ना चाहिए

    4. मशीन को सामान्य मानकर आग लगा दें। यह आपकी प्रत्येक ifcfg-eth?फ़ाइल में मैक पते को बदलना चाहिए ,
      • udv फ़ाइल मिटाएँ,
      • अपने e1000 डिवाइस को rescan करें,
      • और नेटवर्क को पुनरारंभ करें

समस्या:

  • यकीन नहीं क्यों, लेकिन कभी-कभी आपको मान्यता प्राप्त सभी एनआईसी प्राप्त करने के लिए दूसरी बार नेटवर्क को पुनरारंभ करने की आवश्यकता होती है:

    /etc/init.d/network restart
    

    sleep 20की शुरुआत में लगाकर इसे ठीक किया/etc/init.d/network

  • यह मेरे लिए कोई समस्या नहीं है, लेकिन स्क्रिप्ट lshwउसी क्रम में एनआईसी को वापस करने पर निर्भर करती हैifcfg-eth?
  • यह मानता है कि आपके NIC डिवाइस e1000 हैं। VMware मानक?
  • यह आपकी ifcfg-eth?फ़ाइलों की संख्या को स्विच करने के लायक हो सकता है इसलिए वे मेल खाते हैं जो lshwउस अप्रत्याशित घटना में वापस दे रहे हैं कि यह काम नहीं करता है और आप बहुत सारी एनआईसी के साथ बहुत सारी मशीनें कर रहे हैं।
  • एक एनआईसी के साथ यह सिर्फ काम करना चाहिए।
  • पहले स्टार्टअप /usr/bin/change_mac_address.plको स्थानांतरित करने के बाद/usr/bin/change_mac_address.pl.old
  • यह इसे प्रत्येक रिबूट पर चलने से रखेगा भले ही यह कुछ भी नहीं करेगा अगर कोई MACDADDY नहीं है? अपने मेंifcfg-eth?
  • आप भी कर सकते हैं और शायद चलाना चाहिए

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