2011-09-06 18:56:31 +0000 2011-09-06 18:56:31 +0000
46
46

Jak automatycznie wykryć nową kartę sieciową w CentOS 6 / RedHat?

Używam CentOS 6 w środowisku wirtualnym. Podczas klonowania wirtualnej wersji systemu CentOS stare karty etyczne są “usuwane” i zastępowane nowymi oraz sieciowymi adresami MAC. Jednak pliki ifcfg-ethn nadal istnieją. Próbuję dowiedzieć się, jak sprawić, aby CentOS automatycznie przeskanował i odtworzył karty sieciowe / pliki ethernet, tak jak to miało miejsce przy instalacji.

W przeciwnym razie pozostaje mi żmudny proces opisany tutaj: http://www.centos.org/docs/5/html/Installation\_Guide-en-US/s1-s390info-addnetdevice.html

Wiem, że istnieje szybki sposób, aby to zrobić w GUI, ale używamy serwera, więc GUI nie ma zastosowania w tym przypadku. Pomoc?

Edycja: @OldWolf zaproponował Kudzu, jednak Kudzu zostało usunięte z Centos 5, więc wolałbym tego uniknąć. Istnieje procedura, którą Linux uruchamia po pierwszej instalacji - czy ktoś może mi pomóc dowiedzieć się co to jest, abym mógł go ręcznie uruchomić?

Odpowiedzi (8)

52
52
52
2011-09-08 19:34:54 +0000

Z CentOS 6 wszystko jest teraz obsługiwane przez Udev. Wejdź do /etc/udev/rules.d i usuń plik 70-persistent-net.rules oraz zrestartuj komputer. Jeśli otworzysz go do ręki, to z pewnością spodoba Ci się oryginał NIC MAC wymieniony jako eth0, a nowy jako eth1.

Teraz musisz edytować /etc/sysconfig/network-scripts/ifcfg-eth0 i ręcznie aktualizować do MAC swojej nowej karty NIC.

Usunięcie pliku wymusza ponowne uruchomienie procesu wykrywania przy starcie systemu, bez pozostawiania bagażu po procesie klonowania, a mianowicie starego NIC MAC adresu(ów).

Muszę to robić cały czas z moimi klonami CentOS 6 na VMware ESXi 4.1. To jest ból kudzu, który w przeszłości po prostu radziłby sobie z poprzednimi wersjami.

5
5
5
2012-11-19 06:44:46 +0000

Możesz również korzystać z tego narzędzia (nie jest to narzędzie GUI, lecz TUI, Text-based User Interface)

[root@localhost ~]# system-config-network-tui

Wpisz powyższe polecenie i naciśnij Enter

Następnie pojawi się ten ekran

Wybierz konfigurację urządzenia i naciśnij Enter

Następnie pojawi się ten ekran

Tutaj eth0 odnosi się do /etc/sysconfig/network-scripts/ifcfg-eth0

Niezależnie od tego, jaka edycja została dokonana w eth0, która będzie miała wpływ na plik ifcfg-eth0

4
4
4
2013-03-13 00:47:09 +0000

Modyfikacja plików po sklonowaniu nie działała dla mojego przypadku użytkowego, dlatego rozwiązałem problem w następujący sposób.

Musisz edytować dwa pliki, usuwając odniesienia do adresów Mac w każdym z nich:

/etc/sysconfig/network-scripts/ifcfg-eth0 - usuń linię HWADDR=.

/etc/udev/rules.d/70-persistent-net.rules - usuń z ATTR{adresu}= do następnego przecinka włącznie.

Teraz, gdy sklonujesz maszynę wirtualną i zmienisz adres Mac, sieć będzie działać, ponieważ adres Mac nigdy nie zostanie zapisany do żadnego z plików.

4
4
4
2012-11-19 06:21:11 +0000

Usuń plik z regułami trwałymi:

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

Edycja ifcfg-eth0:

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

Usuń całkowicie linię HWADDR (lub zmień ją tak, aby odpowiadała adresowi MAC nowej karty NIC).

Zrestartuj system:

reboot

Jeśli zmienisz kartę NIC ponownie, powtórz krok #1 i #3.

3
3
3
2013-05-21 15:57:29 +0000

Tworzę i usuwam tak wiele maszyn wirtualnych z CentOS 6, że napisałem kilka Bashfu, aby naprawić eth0 przy klonowaniu w VirtualBoxie.

[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
1
1
2013-09-01 01:17:52 +0000

Nie używam Vmware, ale KVM z virsh'em - oto co zrobiłem.

Stworzyłem ‘bazowy’ obraz z CentOS 6.4, to jest źródło wszystkich moich klonów. Po pierwszym uruchomieniu stworzyłem skrypt jak ten

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

Dodałem go do init z

chkconfig --add manglemac

Skasowałem wszystkie odwołania do /etc/sysconfig/network-scripts/ifcfg-eth0 HWADDR lub UUID, skasowałem również reguły udev z /etc/udev/rules.d/70-persistent-net.rules.

W tym momencie wyłączyłem maszynę i zacząłem klonować. Wszystko działa dobrze. Skrypt, który zrobiłem jest bardzo prosty, ale działa dobrze, jednak zawiera kilka założeń dotyczących twojej konfiguracji sieci (tylko eth0).

Mam nadzieję, że pomoże.

1
1
1
2011-09-06 21:04:42 +0000

Jeśli Twoim jedynym problemem jest adres mac, możesz uruchomić coś podobnego do

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

Aby zaktualizować wpis HWADDR.

Edit: Ponieważ wygląda na to, że problem jest rzeczywistą zmianą w wirtualnym sprzęcie, możesz spróbować następującego rozwiązania. (untested and referenced from here )

edit /etc/sysconfig/hwconf and remove all reference to the previous NIC and rerun kudzu to see if it detects the new hardware. Może być konieczne ponowne uruchomienie komputera.

0
0
0
2015-05-01 00:14:57 +0000

Miałem do czynienia z wieloma NIC-ami i nic powyżej nie działało dla mnie (VMware Fusion 7/VMware 6 i niżej), więc napisałem skrypt. Tarball jest tutaj .

Tutaj jest README, który jest do niego dołączony:

  • Ten tarball i związane z nim skrypty zmienią adres MAC twojej niedawno sklonowanej maszyny VMware CentOS 6 lub niżej (bez systemd. )

  • Wszystko co musisz zrobić na maszynie, którą sklonujesz od razu:

Problemy:

  • Nie wiem dlaczego, ale czasami trzeba zrestartować sieć po raz drugi, aby wszystkie NIC-y zostały rozpoznane:

  • To nie był dla mnie problem, ale skrypt polega na tym, że lshw zwraca NIC-y w tej samej kolejności co ifcfg-eth?

  • Zakłada się, że urządzenia NIC są e1000. Standard VMware?

  • Być może warto zmienić numerację twoich plików ifcfg-eth? tak, aby pasowały do tego, co daje lshw w mało prawdopodobnym przypadku, że nie działa i robisz wiele maszyn z dużą ilością NIC-ów.

  • Z jednym NIC-em to powinno po prostu działać.

  • Po pierwszym uruchomieniu /usr/bin/change_mac_address.pl zostaje przeniesiony do /usr/bin/change_mac_address.pl.old

  • To powstrzyma go przed uruchomieniem przy każdym restarcie, nawet jeśli nie będzie robił nic jeśli nie ma MACDADDY? w twoim ifcfg-eth?

  • Możesz i prawdopodobnie powinieneś uruchomić