CentOS 6 / RedHat'ta yeni bir ağ kartını otomatik olarak nasıl tespit edersiniz?


46

CentOS 6'yı sanal ortamda kullanıyorum. CentOS’un sanal bir sürümünü klonlarken, eski etik bağdaştırıcıları "kaldırılır" ve yenileri ve net MAC adresleri ile değiştirilir. Ancak, ifcfg-ethn dosyaları hala var. CentOS'un ağ bağdaştırıcılarını / eth dosyalarını yükleme sırasında olduğu gibi otomatik olarak yeniden taramasını ve yeniden oluşturmasını nasıl sağlamaya çalışıyorum.

Aksi takdirde, burada açıklanan sıkıcı işlemden vazgeçtim: http://www.centos.org/docs/5/html/Installation_Guide-en-US/s1-s390info-addnetdevice.html

GUI'de bunu yapmanın hızlı bir yolu olduğunu biliyorum, ancak bu durumda GUI'nin geçerli olmaması için bir sunucu kullanıyoruz. Yardım?

Düzenleme: @OldWolf Kudzu önerdi, ancak Kudzu Centos 5'ten çıkartıldı, bundan kaçınmayı tercih ettim. Linux'un ilk kurulumda çalıştırdığı bir prosedür var - birisi ne olduğunu anlamama yardımcı olabilir mi, böylece onu manuel olarak tetikleyebilir miyim?

Yanıtlar:


52

CentOS 6 ile artık her şey şimdi udev tarafından gerçekleştiriliyor. İçeri girin /etc/udev/rules.dve 70-persistent-net.rulesdosyayı silin ve yeniden başlatın. Elden önce açarsanız, en çok NEN MAC olarak listelenen orijinal eth0olanı ve yeni olanı göreceksiniz eth1.

Şimdi /etc/sysconfig/network-scripts/ifcfg-eth0yeni NIC kartınızın MAC'ini düzenlemeniz ve manuel olarak güncellemeniz gerekiyor.

Dosyayı silmek, klonlama işleminde, yani eski NIC MAC adres (ler )inde bagaj kalmadan bagajın önyüklemesinde tekrar çalışmaya zorlar.

Bunu her zaman VMware ESXi 4.1'deki CentOS 6 klonlarım ile yapmak zorundayım. Kudzu geçmişte sadece önceki sürümlerle başa çıkacak bir acı.


2
Harika tracy geliyordu, ancak açıkladığınız gibi işe yaramadı. Eski ifcfg-eth0 dosyası, orjinal MAC adresi vs. ile doğru yenisi yerine hala duruyordu.
Joshua,

2
Üzgünüm evet unutmuştum. Ayrıca, ifcfg-eth0 içindeki mac adresini MANUALL olarak da güncellemelisiniz. Bu işe yarayacak. Daha kolay bir yol olabilir ama henüz bulamadım ...
Tracy Carlton

Bu iyi bir başlangıçtı. Önyükleme sırasında işlemi otomatikleştirecek bir komut dosyası yazmanız mümkün olabilir (elle tanımlanan bitler bile dahil). Sorun, komut dosyasını yalnızca makine klonlandıktan / taşındıktan sonra etkinleştirmektir. Buna hala tam bir cevap yok ...
Joshua,

5
İçeri girin /etc/udev/rules.dve 70-persistent-net.rulesdosyayı silin ve yeniden başlatmayın. /etc/sysconfig/network-scripts/ifcfg-eth0Yeni NIC kartınızın MAC'ine gidin ve manuel olarak güncelleyin. Yeniden başlat ve ağ canlanmalı.

2
@ Bunun yerine, Sistemi tekrar bir user151091 start_udevsonra service network restartbenim için çalıştı.
doshea

5

Bu aracı da kullanabilirsiniz (Bu bir GUI aracı değil, TUI aracı, Metin Tabanlı Kullanıcı Arabirimi)

[root @ localhost ~] # sistem yapılandırması-ağ-tui

Yukarıdaki komutu yazın ve Enter tuşuna basın

Sonra bu ekran görünecektir

görüntü tanımını buraya girin

Cihaz konfigürasyonu seçeneğini seçin ve Enter tuşuna basın.

Sonra bu ekran görünecektir

görüntü tanımını buraya girin

Burada eth0 ifade eder /etc/sysconfig/network-scripts/ifcfg-eth0

Bu konuda yapılan düzenleme, dosyayı eth0etkileyecektirifcfg-eth0


Bu, bazı insanlar / vakalar için faydalı bir cevap olsa da, bunun amacı, bir TUI / GUI aracılığıyla yapılamayan ağ bağdaştırıcılarının yapılandırmasını kodlamak veya otomatik hale getirmektir. Orijinal yazıyı okuyun: "CentOS'un ağ bağdaştırıcılarını / eth dosyalarını yükleme sırasında olduğu gibi otomatik olarak yeniden taramasını ve yeniden oluşturmasını nasıl sağlamaya çalışacağımı bulmaya çalışıyorum."
Joshua

@Joshua özür dilerim ... + 1
maks

@ max, aynı system-config-networkzamanda bu arayüzü açıyor gibi görünüyor.
Acumenus

2
@QiFan Bu komutu deneyum install system-config-network-tui
en fazla

1
@QiFan Hangi paketi bu komutu içerdiğini bulmak için şunu deneyinyum whatprovides */system-config-network-tui
en fazla

4

Kalıcı kurallar dosyasını silin:

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

İfcfg-eth0 öğesini düzenleyin:

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

KALDIR HWADDRtamamen çizgiyi (veya yeni NIC MAC adresini eşleşecek şekilde değiştirin).

Sisteminizi yeniden başlatın:

reboot

NIC'yi tekrar değiştirirseniz, sadece # 1 ve # 3 adımlarını tekrarlayın.


Gerçekten yeniden başlatmaya ihtiyacınız var mı? Neden sadece şebeke servisini yeniden başlatmıyorsunuz?
Kasım’da 19:12

Bu, bazı insanlar / vakalar için faydalı bir cevap olsa da, bunun amacı, ağ bağdaştırıcılarının yapılandırmasını komut dosyası veya otomatikleştirmek oldu. Orijinal gönderiden: "CentOS'un ağ bağdaştırıcılarını / eth dosyalarını yükleme sırasında olduğu gibi otomatik olarak yeniden taramasını ve yeniden oluşturmasını nasıl sağladığımı bulmaya çalışıyorum."
Joshua

@vgoff evet, ağ servisini yeniden başlatmak açık bir şekilde iyi çalışıyor :) Belki ağ aygıtını yeniden başlatmayı kast ediyor, örneğin "ifup eth0" vb.
Joshua

Olabilir, ama 'sistem' değil 'cihaz' diyor.
vgoff

Hatalı olabilirim, ancak 'hizmet ağı yeniden başlat' seçeneğinin, kalıcı kurallar dosyasını kaldırdıktan sonra bağdaştırıcılarınızın yeniden adlandırılmasına neden olmayacağını ve yeniden adlandırılmaları veya 'start_udev' öğelerinin yeniden adlandırılmasını sağlamak için gerekli olduğunu düşünüyorum.
doshea

4

Klondan sonra dosyaları değiştirmek benim kullanım durumum için işe yaramaz, bu yüzden sorunu aşağıdaki gibi çözdüm

Her birinde Mac adreslerine yapılan başvuruları kaldırarak iki dosyayı düzenlemeniz gerekir:

/etc/sysconfig/network-scripts/ifcfg-eth0 - HWADDR = satırı kaldır.

/etc/udev/rules.d/70-persistent-net.rules - ATTR’den kaldır {{}} == bir sonraki virgül ile birlikte.

Şimdi VM'yi klonladığınızda ve mac adresini değiştirdiğinizde ağ iletişimi, Mac adresi hiçbir zaman bir dosyaya yazılmadığından çalışacaktır.


Bu benim için işe yaradı - belirtildiği gibi, MAC adresi hiçbir zaman herhangi bir dosyaya geri yazılmayacak, böylece değiştirmeye devam edebilirsiniz ve ara yüzünüz aynı yapılandırma ile "eth0" kalacaktır. Bu, yalnızca bir ağ bağdaştırıcınız varsa çalışır, aksi halde "Başlarken udev:" de uzun bir önyükleme gecikmesi var ve ikinci cihazım "yeniden adlandır 3" olarak adlandırılıyordu, çünkü muhtemelen kuralların her iki cihazın da çağırılması gerektiğini belirtti "eth0 ".
doshea

1 adaptör için uygulanabilir çözüm. Ayrıca net ayarlarda bağlantı tipini Bridge olarak yapmayı da unutmayın.
Vişne

3

Çok fazla CentOS 6 sanal makinesi oluşturup siliyorum VirtualBox'da klonlama sırasında eth0'u düzeltmek için bazı Başfu yazdım.

   [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

Tek sorunun mac adresi ise, buna benzer bir şey çalıştırabilirsiniz

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

HWADDR girişini güncellemek için.

Düzenleme: Sorun göründüğü için sanal donanımda gerçek bir değişiklik olduğu için aşağıdakileri deneyebilirsiniz. (denenmemiş ve buradan referans alınmıştır )

/ etc / sysconfig / hwconf dosyasını düzenleyin ve önceki NIC'ye yapılan tüm referansları kaldırın ve yeni donanımı tespit edip etmediğini görmek için kudzu tekrar çalıştırın. Yeniden başlatmanız gerekebilir.


Örneğin MAC adresini el ile eth0 üzerinde değiştirmeyi denedim, ancak hala işe yaramadı. "Servis ağı zorla yeniden yükleme", "ifup eth0" vb.
Joshua,

Ne tür sanallaştırma kullanıyorsunuz ve sistemi nasıl klonladınız?
OldWolf

VirtualBox, ama sanallaştırmanın önemli olduğunu sanmıyorum. Bu fiziksel bir kutuyu kapatmak, mevcut ağ bağdaştırıcılarını çıkarmak ve farklı olanları eklemek gibi olmalıdır.
Joshua,

@Josh Muhtemelen üç set olduğu için düzenlediğiniz ifcfg- * dosyaları nerede - / etc / sysconfig / network komut dosyaları ve / etc / sysconfig / network / devices ve / etc / sysconfig / network / profilleri / default komutunu inceleyin ( evet, biliyorum - bu uyarlayıcıları ayarlamak için hangi araçları / araçları kullanacağınızla ilgili). Birincisi, farkı yaratanlar olmalı, ancak diğerleriyle de ilgilenmeniz gerekebilir.
Linker3000

1
Sormamın nedeni ve sanallaştırma türünün önemli olması, klonlama işleminin nasıl görüneceğini belirlemesi. Aynı ana bilgisayardaki bir VMware klonu, siz söylemeden sanal ağ donanımını değiştirmez. Sizin durumunuzda sorun mac adresi ya da klonlama işlemi değil, sanal donanımı değiştiriyor olmanızdır.
OldWolf

1

Vmware kullanmıyorum ama virg ile KVM - yaptığım şey bu.

CentOS 6.4 ile bir 'temel' resim oluşturduğumda bu, tüm klonlarımın kaynağı. İlk açılıştan sonra böyle bir script yarattım

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

İle init'e ekledi

chkconfig --add manglemac

HWADDR veya UUID’nin / etc / sysconfig / network-scripts / ifcfg-eth0 içindeki tüm başvuruları silindi, udev kurallarını /etc/udev/rules.d/70-persistent-net.rules dizininden silindi.

Bu noktada makineyi kapattım ve klonlamaya başladım. Her şey yolunda. Yaptığım komut dosyası çok basit ama iyi çalışıyor, ancak ağ kurulumunuz hakkında birkaç varsayımda bulunuyor (yalnızca eth0).

Umarım yardımcı olur.


0

Birden fazla NIC ile uğraşıyordum ve yukarıda hiçbir şey benim için işe yaramadı (VMware Fusion 7 / VMware 6 ve altı), bu yüzden bir senaryo yazdım. Tarball burada .

İşte READMEbununla geliyor:

  • Bu tarball ve ilgili komut dosyaları, yakın zamanda kopyaladığınız VMware CentOS 6 veya altı makinenizin MAC adresini değiştirecek (sistemsiz).
  • Makinede tek yapmanız gereken tek seferde klonlayacaksınız:

    1. Yüklemek lshw
    2. hepsinde MAC adresini /etc/sysconfig/network-scripts/ifcfg-eth?MACDADDY num ile değiştirin, burada num ağ arayüzü sayısıdır. Dosya için adlandırma modelini izlemeniz gerekir.
    3. Çalıştırmak:

      chckconfig change_mac_address on
      

      Bu, dosyada belirtilen uygun çalışma seviyelerinde sym linkleri eklemelidir.

    4. Makineyi normal şekilde klonlayın ve ateşleyin. Her bir ifcfg-eth?dosyadaki MAC adresini değiştirmeli ,
      • udev dosyasını silmek,
      • e1000 cihazınızı yeniden tarayın,
      • ve ağı yeniden başlatın

sorunlar:

  • Neden olduğundan emin değilim, ancak bazen tüm NIC'lerin tanınması için ağı ikinci kez yeniden başlatmanız gerekebilir:

    /etc/init.d/network restart
    

    Bunun sleep 20başına bir koyarak/etc/init.d/network

  • Bu benim için bir sorun değildi, ancak senaryo lshwNIC’leri aynı sırayla iade etmeye dayanıyorifcfg-eth?
  • Bu, NIC cihazınızın / cihazlarının e1000 olduğunu varsayar. VMware standardı?
  • ifcfg-eth?Dosyalarınızın numaralandırılması değiştirilmeye değer olabilir, bu nedenle lshwolası bir durumda çalışmaz ve geri döndüğü NIC'leri olan çok sayıda makine yapıyorsunuz.
  • Bir NIC ile sadece çalışması gerekir.
  • İlk başlangıçta sonra /usr/bin/change_mac_address.pltaşınır/usr/bin/change_mac_address.pl.old
  • MACDADDY olmasa bile hiçbir şey yapmamasına rağmen her yeniden başlatmada çalışmasını önleyecektir? senin içindeifcfg-eth?
  • Ayrıca ve muhtemelen koşmalısınız

    chkconfig change_mac_address off
    
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.