Как исправить поврежденную сеть в клонированных виртуальных машинах?

27

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

Я поручил VirtualBox заново сгенерировать mac-адреса машин.

Стефано Палаццо
источник

Ответы:

26

Существуют udevправила, запрещающие запуск нового интерфейса.

В основной машине просто удалите их, прежде чем клонировать новые машины:

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

( источник )

Стефано Палаццо
источник
70-persistent-net.rules появляется в следующей загрузке главной машины и клонирует vms. Вы сталкивались с этой проблемой?
Маниш
Удаление файла делает -fненужным флаг форсирования .
k0pernikus
-fФлаг делает rmкоманду успеха со статусом 0 , даже если файл не существует. Сила привычки. :)
Стефано Палаццо
6

Обновите свой MAC-адрес, используя настройки компьютера Virtual Box, и удалите файл правил сетевого интерфейса ядра, чтобы его можно было восстановить:

sudo rm -f /etc/udev/rules.d/70-persistent-net.rules
sudo reboot

Это будет работать для вашей клоновой виртуальной машины.

user226173
источник
1
Лично я бы скопировал файл правил куда-нибудь, а не просто удалил его на всякий случай, на тот случай, если вам нужно его восстановить.
Дэвид Эдвардс
это сработало для меня!
david.libremone
@DavidEdwards Если файл отсутствует, файл создается ОС при запуске. Если вам действительно нужна старая копия (та, у которой неправильный MAC-адрес), вы всегда можете получить ее с оригинальной виртуальной машины.
MrWonderful
4

Я несколько месяцев сталкивался с той же проблемой, и сегодня решил, что найду лучшее решение. Вот что я сделал на машине, которую использовал в качестве шаблона.

Для хорошей практики администрирования сделайте резервную копию обоих файлов перед редактированием.

У вас есть два оскорбительных / целевых файла:

  1. /etc/sysconfig/network-scripts/ifcfg-eth0
  2. /etc/udev/rules.d/70-persistent-net.rules

Это будет работать для staticили dhcpадрес:

открыто /etc/sysconfig/network-scripts/ifcfg-eth0

Удалить строку MAC-адреса: HWADDR=XX:11:22:XX:33:XX
сохранить файл.

Удалите файл /etc/udev/rules.d/70-persistent-net.rules«он будет воссоздан после перезагрузки виртуальной машины»

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

Теперь вы можете клонировать свой ящик, и каждый клон будет правильно развернут и отобразит eth0.

Если вы не используете шаблон, вы можете выполнить эти процедуры на фактической виртуальной машине, просто не забудьте повторно инициализировать сетевой адаптер в программном обеспечении виртуальной машины перед перезагрузкой компьютера.

Дьюэйн Коу
источник
Это выглядит как более полный ответ. Можете ли вы предоставить более подробные сведения о части «повторная инициализация NIC» в последнем абзаце? Также какую версию VirtualBox вы использовали?
RichVel
Как примечание, я не могу найти каталог / etc / sysconfig в Ubuntu 16.04.
MakisH
1
Сетевые интерфейсы @MakisH в Debian / Ubuntu определяются не файлами в / etc / sysconfig / network-scripts (как вы заметили, там даже нет каталога / etc / sysconfig), а в / etc / network / interfaces.
Девин Норгарб,
1

Я столкнулся с той же проблемой в предыдущей версии VirtualBox и где-то читал, что была ошибка, из-за которой флажок «генерировать новый MAC-адрес» был бесполезен.

Я сейчас использую Ubuntu 12.04 с VirtualBox 4.2.10. Теперь я заметил, что когда я создавал клон, не было галочки для «генерации нового MAC-адреса».

Это доставило мне некоторые проблемы, даже если я удалил 70-persistent-net.rules, потому что система автоматически создаст файл при запуске с тем же MAC-адресом, что и исходный, что не позволило установить соединение.

Но я обнаружил, что в VirtualBox Manager вы можете выбрать клона, перейти в «Настройки»> «Сеть»> «Дополнительно» и сгенерировать новый MAC-адрес, установив флажок.

Поэтому я сначала удалил 70-persistent-net.rules, завершил работу, сгенерировал новый MAC-адрес и снова запустил, и теперь он работает.

Кроме того, вы можете удалить файл, прежде чем клонировать. Затем сгенерируйте MAC-адрес, затем запустите клонирование. Это должно сработать.

Энди ты
источник
0

Я создаю параллельную вычислительную среду, которая нуждается во взаимосвязи между виртуальной машиной через IP-сеть.

Я думаю, что есть что-то, связанное с повторной генерацией MAC-адресов машин. Я сталкивался с подобной проблемой раньше.

Оригинальная виртуальная машина имеет eth0и eth1. Но благодаря процессу регенерации, в моем случае, новая клонированная машина имеет eth2и eth3. Вы можете проверить это с помощью следующей команды:

ifconfig -a | grep eth

Вы можете проверить с помощью ifconfigкоманды, что в новой клонированной машине только loзарегистрированные. Как правило, вы должны иметь lo, eth0и eth1при вводе ifconfigкоманды.

Это происходит из-за регенерации MAC, что в машине-клоне есть eth2и eth3интерфейсы Ethernet вместо eth0и eth1в исходной машине. Вы также можете проверить /etc/network/interfacesв оригинальной машине, что в моем случае будет выглядеть так:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static

address 192.168.xxx.xxx
netmask 255.xxx.xxx.0
network 192.168.xxx.0
broadcast 192.168.xxx.255
gateway 10.0.x.xx

Может быть, вы можете изменить свой /etc/network/interfacesфайл и изменить eth0и eth1с eth2и eth3, что более или менее похоже на это:

auto lo
iface lo inet loopback

auto eth2
iface eth2 inet dhcp

auto eth3
iface eth3 inet static

address 192.168.xxx.xxx
netmask 255.xxx.xxx.0
network 192.168.xxx.0
broadcast 192.168.xxx.255
gateway 10.0.x.xx

Так что, удачи, ребята!

Сантоса Сэнди
источник
0

Я удалил файл 70-persitent-net.rules, но после перезагрузки он не был создан заново. Затем переустановка гостевого модуля дополнений и перезагрузка виртуальной машины работали для меня.

Марсело дель Посо
источник
0

У меня проблема с тем же ip-адресом после клонирования 3 виртуальных машин с помощью Virtual BOX (4.3). Так что я выключил машины и восстановил новый MAC-адрес и перезапустил, он работал для меня.

шаги => отключить клонированную виртуальную машину и затем настройки => сеть => расширенные => нажать обновить MAC-адрес => клик ОК. затем запустите ВМ.

БВР
источник