Как автоматически обнаружить новую сетевую карту в CentOS 6 / RedHat?

Как автоматически обнаружить новую сетевую карту в CentOS 6 / RedHat?

Я использую CentOS 6 в виртуальной среде. При клонировании виртуальной версии CentOS старые адаптеры eth "удаляются" и заменяются новыми и сетевыми MAC-адресами. Однако файлы ifcfg-ethn все еще существуют. Я пытаюсь выяснить, как заставить CentOS автоматически пересканировать и воссоздать сетевые адаптеры / файлы eth, как это было при установке.

В противном случае мне придется пройти утомительный процесс, описанный здесь:http://www.centos.org/docs/5/html/Installation_Guide-en-US/s1-s390info-addnetdevice.html

Я знаю, что есть быстрый способ сделать это в GUI, но мы используем сервер, поэтому GUI в данном случае не применим. Помогите?

Редактировать: @OldWolf предложил Kudzu, однако Kudzu был удален в Centos 5, поэтому я бы предпочел избежать этого. Есть процедура, которую Linux запускает при первоначальной установке — может кто-нибудь помочь мне выяснить, что это такое, чтобы я мог вручную запустить ее?

решение1

С CentOS 6 теперь всем управляет udev. Зайдите в файл /etc/udev/rules.d, удалите его 70-persistent-net.rulesи перезагрузитесь. Если вы откроете его заранее, то, скорее всего, увидите исходный MAC-адрес сетевой карты, указанный как , eth0а новый — как eth1.

Теперь вам нужно отредактировать /etc/sysconfig/network-scripts/ifcfg-eth0и вручную обновить MAC-адрес вашей новой сетевой карты.

Удаление файла приводит к повторному запуску процесса обнаружения при загрузке без каких-либо данных, оставшихся от процесса клонирования, а именно старых MAC-адресов сетевой карты.

Мне приходится делать это постоянно с моими клонами CentOS 6 на VMware ESXi 4.1. Это боль, с которой Кудзу справлялся раньше с предыдущими версиями.

решение2

Удалить файл постоянных правил:

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

Редактировать ifcfg-eth0:

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

УДАЛИТЕ эту HWADDRстроку вообще (или измените ее так, чтобы она соответствовала MAC-адресу вашей новой сетевой карты).

Перезагрузите систему:

reboot

Если вы снова меняете сетевую карту, просто повторите шаги № 1 и № 3.

решение3

Вы также можете использовать этот инструмент (это не инструмент с графическим интерфейсом, а инструмент с текстовым пользовательским интерфейсом)

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

Введите указанную выше команду и нажмите Enter.

Затем появится этот экран

введите описание изображения здесь

Выберите Конфигурация устройства и нажмите Enter.

Затем появится этот экран

введите описание изображения здесь

Здесь eth0 относится/etc/sysconfig/network-scripts/ifcfg-eth0

Любое изменение, внесенное в файл eth0, повлияет на него.ifcfg-eth0

решение4

Я создаю и удаляю так много виртуальных машин CentOS 6, что написал Bashfu, чтобы исправить eth0 при клонировании в 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

Связанный контент