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

Hoe detecteer je automatisch een nieuwe netwerkkaart in CentOS 6 / RedHat?

Ik gebruik CentOS 6 in een virtuele omgeving. Bij het klonen van een virtuele versie van CentOS worden de oude eth-adapters “verwijderd” en vervangen door nieuwe en netto MAC-adressen. De ifcfg-ethn bestanden bestaan echter nog steeds. Ik probeer uit te zoeken hoe ik CentOS zo ver kan krijgen dat hij de netwerkadapters / eth-bestanden automatisch herscant en hermaakt, net als bij de installatie.

Anders blijf ik achter met het vervelende proces zoals hier beschreven: http://www.centos.org/docs/5/html/Installation_Guide-en-US/s1-s390info-addnetdevice.html

Ik weet dat er een snelle manier is om dit te doen in de GUI, maar we gebruiken een server dus GUI is niet van toepassing in dit geval. Help?

bewerken: @OldWolf stelde Kudzu voor, maar Kudzu is vanaf Centos 5 verwijderd, dus dat wil ik liever vermijden. Er is een procedure die Linux draait bij de eerste installatie - kan iemand me helpen om uit te zoeken wat dat is, zodat ik het handmatig kan activeren?

Antwoorden (8)

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

Met CentOS 6 wordt alles nu door udev afgehandeld. Ga naar /etc/udev/rules.d en verwijder het 70-persistent-net.rules-bestand en herstart. Als je het bestand opent zul je de original NIC MAC zien staan als eth0 en de nieuwe als eth1.

Nu moet je /etc/sysconfig/network-scripts/ifcfg-eth0 bewerken en handmatig updaten naar de MAC van je nieuwe NIC kaart.

Het verwijderen van het bestand dwingt het detectieproces weer op te starten zonder dat er nog bagage over is van het kloonproces, namelijk de oude NIC MAC adres(sen).

Ik moet het de hele tijd doen met mijn CentOS 6 klonen op VMware ESXi 4.1. Het is een pain kudzu zou het in het verleden gewoon afhandelen met eerdere versies.

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

U kunt deze tool ook gebruiken (dit is geen GUI-tool, zijn TUI-tool, Tekstgebaseerde gebruikersinterface)

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

Type bovenstaand commando en druk Enter

Dan verschijnt dit scherm

Selecteer apparaatconfiguratie en druk Enter

Dan verschijnt dit scherm

Hier verwijst eth0 naar /etc/sysconfig/network-scripts/ifcfg-eth0

Wat de bewerking in eth0 is die van invloed is op het ifcfg-eth0-bestand

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

Het wijzigen van bestanden na het klonen zou niet werken voor mijn use-case, dus ik heb het probleem als volgt opgelost.

Je moet twee bestanden wijzigen, waarbij je de verwijzingen naar de Mac adressen in elk van deze bestanden verwijdert:

/etc/sysconfig/network-scripts/ifcfg-eth0 - verwijder de regel HWADDR=.

/etc/udev/rules.d/70-persistent-net.rules - verwijder van ATTR{adres}== tot en met de volgende komma.

Nu wanneer je de VM kloont en het mac adres wijzigt zal het netwerk werken, omdat het Mac adres nooit naar een van beide bestanden wordt geschreven.

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

Verwijder het persistente regelsbestand:

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

Bewerk ifcfg-eth0:

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

REMOVE de HWADDR regel in zijn geheel (of verander deze zodat deze overeenkomt met het MAC-adres van uw nieuwe NIC).

Herstart uw systeem:

reboot

Als u de NIC opnieuw wijzigt, herhaal dan gewoon stap #1 en #3.

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

Ik maak en verwijder zoveel CentOS 6 virtuele machines dat ik wat Bashfu heb geschreven om eth0 op te lossen bij het klonen in VirtualBox.

[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

Ik gebruik geen Vmware maar KVM met virsh - dit is wat ik heb gedaan.

Een ‘basis’ beeld gemaakt met CentOS 6.4, dit is de bron van al mijn klonen. Na het eerste opstarten heb ik een script als dit gemaakt

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

Toegevoegd om te beginnen met

chkconfig --add manglemac

Verwijder alle verwijzingen naar /etc/sysconfig/network-scripts/ifcfg-eth0 van HWADDR of UUID, verwijderde ook de udev regels uit /etc/udev/rules.d/70-persistent-net.rules.

Op dit punt heb ik de machine uitgeschakeld en ben ik begonnen met het klonen. Alles werkt prima. Het script dat ik gemaakt heb is erg simpel maar werkt prima, maar het maakt wel een paar aannames over je opstelling voor netwerk (alleen eth0).

hoop ik dat het zal helpen.

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

Als je enige probleem het mac adres is, kun je iets soortgelijks draaien als

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

Om de HWADDR entry te updaten.

Edit: Omdat het lijkt alsof het probleem een daadwerkelijke verandering in virtuele hardware is, kun je het volgende proberen. (niet getest en gerefereerd aan hier )

bewerk /etc/sysconfig/hwconf en verwijder alle verwijzingen naar de vorige NIC en herhaal kudzu om te zien of het de nieuwe hardware detecteert. Mogelijk moet u herstarten.

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

Ik had te maken met meerdere NIC’s en niets boven werkte voor mij (VMware Fusion 7/VMware 6 en lager), dus ik schreef een script. De tarball is hier .

Hier is de README die erbij hoort:

  • Deze tarball en gerelateerde scripts zullen het MAC-adres van je recent gekloonde VMware CentOS 6 of onder de machine wijzigen (geen systemd. )
  • Alles wat je hoeft te doen in de machine zal slechts één keer gekloond worden:

Problemen:

  • Niet zeker waarom, maar soms moet je het netwerk een tweede keer herstarten om alle NIC’s herkend te krijgen:

  • Dit is voor mij geen probleem geweest, maar het script vertrouwt erop dat lshw de NIC’s in dezelfde volgorde als ifcfg-eth? terugstuurt - Dit gaat ervan uit dat je NIC-apparaat (-apparaten) e1000 zijn. VMware standaard?

  • Het kan de moeite waard zijn om de nummering van uw ifcfg-eth? bestanden te veranderen zodat ze overeenkomen met wat lshw teruggeeft in het onwaarschijnlijke geval dat het niet werkt en u veel machines doet met veel NIC’s.

  • Met één NIC zou het gewoon moeten werken.

  • Na de eerste keer opstarten wordt de /usr/bin/change_mac_address.pl verplaatst naar /usr/bin/change_mac_address.pl.old

  • Dit zorgt ervoor dat het niet meer werkt bij elke herstart, ook al doet het niets als er geen MACDADDY? in uw ifcfg-eth?

  • U kunt en moet waarschijnlijk ook draaien.