Я использую CentOS 6.2 с VMware. Мне часто приходится клонировать свои системы. Каждый раз, когда я клонирую, он добавляет новое правило в файл 70-persistent-net.rules, вот так.
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:0c:f1:5e", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
В моей системе никогда не бывает более одного интерфейса, так что это меня очень раздражает. Я знаю, что есть способ изменить правило, чтобы оно зависело от шины PCI, а не от MAC, потому что я уже сделал это один раз, но я не могу найти нигде, как это сделать.
Я понимаю причины такой реализации правил udev. Это имеет смысл в физических системах, но на виртуальных машинах становится неприятным. Пожалуйста помоги.
Вместо этого идентифицируйте устройство по адресу PCI. Что-то вроде:
SUBSYSTEM=="net", BUS=="PCI", ID=="0000:04:00.0", ...
Запустив CentOS 6.5 на Virtualbox, я достиг такой нирваны:
1) Запретить /lib/udev/rules.d/75-persistent-net-generator.rules от перезаписи /etc/udev/rules.d/70-persistent-net.rules - просто создайте пустой /etc/udev/rules.d/75-persistent-net-generator.rules
2) Редактировать /etc/udev/rules.d/70-persistent-net.rules:
# Map ethernet devices according to kernel enumeration
# this should match the adaptor numbering in the virtualbox console
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{type}=="1", KERNEL=="eth0*", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{type}=="1", KERNEL=="eth1*", NAME="eth1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{type}=="1", KERNEL=="eth2*", NAME="eth2"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{type}=="1", KERNEL=="eth3*", NAME="eth3"
3) Редактировать / etc / sysconfig / network-scripts / ifcfg-eth [0-3] в зависимости от ситуации, удалив все бессмысленные HWADDR или MACADDRESS.
Это не идеально, поскольку порядок перечисления ядра МОЖЕТ и, вероятно, БУДЕТ изменяться, если вы внесете изменения в настройки VirtualBox на другом устройстве до выполнения клонирования - и обнаружение ядра не совсем соответствует порядку адаптера Virtualbox (на мой взгляд, это обеспечить регресс). Но в остальном он, кажется, ведет себя последовательно, что должно быть по крайней мере «достаточно хорошим».
Больше объяснений и мудрости здесь:
Этого должно быть достаточно для того, что вы хотите:
DRIVERS=="?*", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
Я редко клонирую системы Linux с помощью VMWare. Перестроить (кикстарт + Puppet / CFEngine) достаточно просто, так что заново подготовить систему почти быстрее, чем клонировать.
Но как вы клонируете? Вы делаете это из шаблона виртуальной машины? Обычно при клонировании из шаблона у меня не возникало проблем, связанных с сетевой картой.
Я тоже столкнулся с этой проблемой. используйте этот cmd после клонирования гостя centos 6
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
пожалуйста, измените свой IP и имя хоста в следующей строке
sed -i s/192.168.42.100/192.168.42.101/g /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i s/node01/node02/g /etc/sysconfig/network