
Я использую 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