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

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

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

В противном случае я остаюсь с утомительным процессом, как описано здесь: _COPY9_Guide-en-US/s1-s390info-addnetdevice.html

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

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

Ответы (8)

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

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

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

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

Я должен делать это с моими клонами CentOS 6 на VMware ESXi 4.1 все время. Это боль кудзу будет просто обрабатывать его в прошлом с предыдущими версиями.

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

Вы можете использовать и этот инструмент (Это не GUI-инструмент, это его TUI-инструмент, Текстовый интерфейс пользователя)

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

Тип выше команды и нажмите Enter

Тогда на экране появится

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

Тогда на экране появится

Здесь eth0 ссылается на /etc/sysconfig/network-scripts/ifcfg-eth0

Какое бы редактирование, сделанное в eth0, которое повлияет на ifcfg-eth0 файл

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

Изменение файлов после клонирования не будет работать в моём случае использования, поэтому я решил проблему следующим образом.

Вам нужно отредактировать два файла, удалив ссылки на адреса Mac в каждом:

/etc/sysconfig/network-scripts/ifcfg-eth0 - удалите строку HWADDR=.

/etc/udev/rules.d/70-persistent-net.rules - удалите из ATTR{address}== до следующей запятой включительно.

Теперь, когда вы клонируете ВМ и меняете сетевой Mac-адрес, будет работать, так как Mac-адрес никогда не будет записан ни в один из файлов.

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

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

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

Правка ifcfg-eth0:

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

Удалить строку HWADDR (или изменить ее на MAC-адрес новой сетевой карты).

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

reboot

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

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

Я создал и удалил так много виртуальных машин 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
```.
1
1
1
2013-09-01 01:17:52 +0000

Я не использую Vmware, а KVM с virsh - вот что я сделал.

Создал “базовый” образ с CentOS 6.4, это источник всех моих клонов. После первой загрузки я создал такой скрипт

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

Добавил его в init с

chkconfig --add manglemac

Удал все ссылки в /etc/sysconfig/network-scripts/ifcfg-eth0 из HWADDR или UUID, а также удалил правила udev из /etc/udev/rules.d/70-persistent-net.rules.

В этот момент я выключил машину и начал клонировать. Все работает нормально. Скрипт, который я сделал, очень прост, но работает нормально, однако он делает несколько предположений о вашей настройке для сети (только для eth0).

, надеюсь, поможет.

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

Если ваша единственная проблема - это mac-адрес, вы можете запустить нечто похожее на

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

Для обновления записи HWADDR.

Edit: Так как похоже, что проблема - это фактическое изменение в виртуальном оборудовании, вы можете попробовать следующее. (непроверенную и снабженную ссылками из здесь )

отредактируйте /etc/sysconfig/hwconf и удалите все ссылки на предыдущую сетевую карту и повторно запустите kudzu, чтобы посмотреть, обнаруживает ли она новое аппаратное обеспечение. Возможно, вам понадобится перезагрузиться.

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

Я имел дело с несколькими сетевыми картами и ничто выше не работало на меня (VMware Fusion 7/VMware 6 и ниже), поэтому я написал сценарий. Tarball это здесь .

. Вот README, который идет с ним:

  • Этот tarball и связанные с ним скрипты изменят MAC-адрес вашей недавно клонированной машины VMware CentOS 6 или ниже (нет systemd. )
  • Все, что вам нужно сделать на машине, которую вы клонируете только один раз:

Проблемы:

  • Не знаю почему, но иногда вам нужно перезагрузить сеть второй раз, чтобы все сетевые карты были распознаны:

  • Это не было проблемой для меня, но скрипт полагается на то, что lshw вернет сетевые карты в том же порядке, что и ifcfg-eth?

  • Это предполагает, что ваша сетевая карта устройства e1000. VMware стандарт?

  • Возможно, стоит поменять нумерацию ваших ifcfg-eth? файлов так, чтобы они соответствовали тому, что lshw возвращает в маловероятном случае, если это не работает, и вы делаете много машин с большим количеством сетевых карт.

  • С одной сетевой картой это должно просто работать.

  • После первого запуска /usr/bin/change_mac_address.pl будет перемещена в /usr/bin/change_mac_address.pl.old

  • Это не позволит ей работать при каждой перезагрузке, даже если в вашей ifcfg-eth?

&007 нет MACDADDY - Вы также можете и, вероятно, должны запустить

Похожие вопросы

3
13
5
11
3