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

Come si fa a rilevare automaticamente una nuova scheda di rete in CentOS 6 / RedHat?

Advertisement

Sto utilizzando CentOS 6 in un ambiente virtuale. Quando si clona una versione virtuale di CentOS, i vecchi adattatori di eth vengono “rimossi” e sostituiti con nuovi adattatori e indirizzi MAC di rete. Tuttavia, i file ifcfg-ethn esistono ancora. Sto cercando di capire come far sì che CentOS riesca a riscanare e ricreare automaticamente gli adattatori di rete / i file eth, proprio come ha fatto al momento dell'installazione.

Altrimenti mi rimane il noioso processo come descritto qui: http://www.centos.org/docs/5/html/Installation_Guide-en-US/s1-s390info-addnetdevice.html

So che c'è un modo veloce per farlo nella GUI, ma stiamo usando un server, quindi la GUI non si applica in questo caso. Aiuto?

Modifica: @OldWolf ha suggerito Kudzu, tuttavia Kudzu è stato rimosso a partire da Centos 5, quindi preferisco evitarlo. C'è una procedura che Linux funziona all'installazione iniziale - qualcuno può aiutarmi a capire di cosa si tratta in modo da poterla attivare manualmente?

Advertisement
Advertisement

Risposte (8)

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

Con CentOS 6 ora tutto è gestito da udev. Andare in /etc/udev/rules.d e cancellare il file 70-persistent-net.rules e riavviare. Se lo aprite a mano vedrete il MAC originale NIC MAC elencato come eth0 e quello nuovo come eth1.

Ora dovete modificare /etc/sysconfig/network-scripts/ifcfg-eth0 e aggiornare manualmente il MAC della vostra nuova scheda NIC.

L'eliminazione del file costringe il processo di rilevamento a ripartire all'avvio senza lasciare alcun bagaglio dal processo di clonazione, cioè il vecchio NIC MAC address(i).

Devo farlo sempre con i miei CentOS 6 cloni su VMware ESXi 4.1. È un dolore che il kudzu lo gestirebbe solo in passato con le versioni precedenti.

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

È possibile utilizzare anche questo strumento (Non è uno strumento GUI, il suo strumento TUI, Interfaccia utente basata sul testo)

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

Digitare il comando sopra e premere Invio

Poi questa schermata apparirà

Selezionare la configurazione del dispositivo e premere Invio

Poi questa schermata apparirà

Qui eth0 si riferisce /etc/sysconfig/network-scripts/ifcfg-eth0

Qualunque sia la modifica effettuata in eth0 che influirà sul file ifcfg-eth0

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

Modificare i file dopo il clone non funzionerebbe per il mio caso d'uso, quindi ho risolto il problema come segue.

È necessario modificare due file, rimuovendo i riferimenti agli indirizzi Mac in ciascuno:

/etc/sysconfig/network-scripts/ifcfg-eth0 - rimuovere la riga HWADDR=.

/etc/udev/rules.d/70-persistent-net.rules - rimuovere da ATTR{address}== fino alla virgola successiva inclusa.

Ora quando si clona la VM e si cambia il mac address networking funzionerà come l'indirizzo Mac non viene mai scritto in nessuno dei due file.

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

Cancellare il file delle regole persistenti:

rm /etc/udev/rules.d/70-persistent-net.rules
``` ```
nano /etc/sysconfig/network-scripts/ifcfg-eth0

Modifica ifcfg-eth0:

reboot
``` &001 


RIMUOVERE del tutto la riga `HWADDR` (o modificarla in modo che corrisponda al nuovo indirizzo MAC della vostra nuova NIC). 


Riavviare il sistema: 


&001 &001 


Se si cambia di nuovo la NIC, è sufficiente ripetere i passi #1 e #3.
3
Advertisement
3
3
2013-05-21 15:57:29 +0000
Advertisement

Ho creato e cancellato così tante macchine virtuali CentOS 6 che ho scritto un po’ di Bashfu per fissare eth0 sulla clonazione 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

Non sto usando Vmware ma KVM con virsh - questo è quello che ho fatto.

Ho creato un'immagine ‘base’ con CentOS 6.4, questa è la fonte di tutti i miei cloni. Dopo il primo avvio ho creato uno script come questo

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
``` ```
chkconfig --add manglemac

L'ho aggiunto all'init con

&001 &001

Ho cancellato tutti i riferimenti in /etc/sysconfig/networkk-scripts/ifcfg-eth0 di HWADDR o UUID, ho anche cancellato le regole udev da /etc/udev/rules.d/70-persistent-net.rules.

A questo punto ho spento la macchina e ho iniziato a clonare. Tutto funziona bene. Lo script che ho fatto è molto semplice ma funziona bene, tuttavia fa alcune supposizioni sulla vostra configurazione per la rete (solo eth0).

Spero che vi sarà d'aiuto.

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

Se il vostro unico problema è l'indirizzo mac, potete eseguire qualcosa di simile a

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

Per aggiornare la voce HWADDR.

Edit: Poiché sembra che il problema sia un cambiamento effettivo dell'hardware virtuale potete provare quanto segue. (non testato e referenziato da qui )

modificare /etc/sysconfig/hwconf e rimuovere ogni riferimento alla NIC precedente e rieseguire kudzu per vedere se rileva il nuovo hardware. Potrebbe essere necessario riavviare.

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

Avevo a che fare con più NIC e niente di quanto sopra ha funzionato per me (VMware Fusion 7/VMware 6 e inferiori), così ho scritto uno script. Il tarball è qui .

Ecco il README che viene fornito con esso:

  • Questo tarball e i relativi script cambieranno l'indirizzo MAC della vostra macchina VMware CentOS 6 o inferiore recentemente clonata (no systemd. )
  • Tutto quello che dovete fare nella macchina che clonerete da una sola volta:

Problemi:

  • Non so perché, ma a volte è necessario riavviare la rete una seconda volta per far riconoscere tutte le NIC:

  • Questo non è stato un problema per me, ma lo script si basa su lshw che restituisce le NIC nello stesso ordine di ifcfg-eth?

  • Questo presuppone che i vostri dispositivi NIC siano e1000. VMware standard?

  • Potrebbe valere la pena di cambiare la numerazione dei vostri file ifcfg-eth? in modo che corrispondano a ciò che lshw restituisce nel caso improbabile che non funzioni e che stiate facendo molte macchine con molte NIC.

  • Con una sola NIC dovrebbe funzionare.

  • Dopo il primo avvio il /usr/bin/change_mac_address.pl viene spostato in /usr/bin/change_mac_address.pl.old

  • Questo lo impedirà di funzionare ad ogni riavvio anche se non farà nulla se non c'è MACDADDY? nel vostro ifcfg-eth?

  • Potete anche e probabilmente dovreste eseguire

Advertisement

Domande correlate

3
13
5
11
3
Advertisement