Вопрос или проблема
Я хотел бы сконфигурировать образ машины с полным набором функций и затем иметь возможность запускать несколько экземпляров этого образа в VirtualBox. Однако, мне удается запустить только один экземпляр каждой виртуальной машины. Я попробовал клонировать ВМ (и выбрал переинициализацию MAC-адреса) и запустить клоны, однако клон не получает IP-адрес. Поэтому оригинал имеет следующую сетевую конфигурацию:
>ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:92:0a:ec
inet addr:192.168.103.49 Bcast:192.168.255.255 Mask:255.255.0.0
inet6 addr: fe80::a00:27ff:fe92:aec/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5317 errors:0 dropped:0 overruns:0 frame:0
TX packets:68 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:516671 (516.6 KB) TX bytes:10492 (10.4 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:337 (337.0 B) TX bytes:337 (337.0 B)
В то время как у клона нет eth0
, только lo
, и я не могу войти в него по ssh.
Обновление
Мне удалось точно воссоздать вашу проблему. Самое простое решение, которое я нашел, – это просто удалить содержимое /etc/udev/rules.d/70-persistent-net.rules
и перезагрузиться. Этот файл автоматически создается при перезагрузке и сбросит eth0 на текущий назначенный MAC.
Оригинальный ответ
Когда вы клонируете ВМ и переинициализируете MAC, ОС думает, что новый MAC – это новое сетевое устройство. Обычно новый MAC-адрес назначается на eth1. Если eth1 не был правильно настроен, у вас не будет сетевого подключения, и вы не сможете войти через ssh.
Вы можете очистить сетевые правила udev, чтобы заставить ОС забыть о предыдущем MAC и назначить новый MAC на eth0, или вы можете настроить eth1 в качестве основного сетевого интерфейса.
Вот довольно хорошее объяснение, почему правила udev важны и применимы к вашей ситуации: «Например, на компьютере с двумя сетевыми картами, произведенными Intel и Realtek, сетевая карта, произведенная Intel, может стать eth0, а карта Realtek — eth1. В некоторых случаях после перезагрузки карты перенумеруются в обратном порядке. Чтобы этого избежать, создайте правила Udev, которые назначают стабильные имена сетевым картам на основе их MAC-адресов или позиций шины.»
Другой возможной проблемой может быть, если IP-адрес был статически установлен в сетевой конфигурации. Если у вас есть DHCP-сервер, который должен выдавать IP-адреса, убедитесь, что сетевая конфигурация настроена на DHCP.
.
Ответ или решение
Как IT-эксперт, я хотел бы подробно рассказать, как запустить несколько экземпляров образа виртуальной машины в VirtualBox. Учитывая проблему, с которой вы столкнулись, и предоставленное вами описание, давайте поэтапно разберем процесс создания и конфигурации нескольких экземпляров.
Проблема
Вы хотите настроить образ машины с необходимым ПО и затем запускать несколько экземпляров в VirtualBox. Однако, столкнулись с ограничением — возможность запустить только один экземпляр каждой ВМ. Ваши попытки клонирования с пересозданием MAC-адреса привели к тому, что клон не получает IP-адрес. Оригинальная виртуальная машина (ВМ) получает IP через eth0
, в то время как у клона только интерфейс lo
. Это мешает вам подключаться к нему через SSH.
Шаги решения задачи
-
Клонирование ВМ
- Клонируйте виртуальную машину, убедившись, что вы выбрали параметр «Reinitialize MAC Address of all network cards». Это обеспечит уникальность MAC-адреса для каждого экземпляра.
-
Настройка udev для сетевых интерфейсов
- Проблема с сетевыми интерфейсами обычно возникает из-за того, что у операционной системы сохраняются правила для старого MAC-адреса. Удалите содержимое файла
/etc/udev/rules.d/70-persistent-net.rules
в клонированной ВМ. Это принудит ОС «забыть» старый MAC-адрес и назначить новый наeth0
. - После удаления содержимого файла, перезагрузите ВМ.
- Проблема с сетевыми интерфейсами обычно возникает из-за того, что у операционной системы сохраняются правила для старого MAC-адреса. Удалите содержимое файла
-
Проверка конфигурации сети
- Убедитесь, что конфигурация сети нацелена на получение IP-адреса через DHCP (если это уместно в вашей сети). Включите опцию, позволяющую динамическое управление IP через DHCP-клиент, если ваша сеть это поддерживает.
- Перезапустите службу сети, чтобы изменения вступили в силу.
-
Проверка подключения
- После перезагрузки виртуальной машины вновь выполните команду
ifconfig
, чтобы убедиться, что интерфейсeth0
получает IP-адрес. - Проверьте возможность подключения через SSH к клонированному экземпляру с использованием нового IP.
- После перезагрузки виртуальной машины вновь выполните команду
Заключение
Следуя данным шагам, вы сможете успешно запускать несколько экземпляров вашей ВМ в VirtualBox без проблем с сетью. Удаление сети путем очистки udev правил — простое и эффективное решение для обеспечения работоспособности сетевых интерфейсов в клонированных ВМ. Убедитесь, что вы правильно настраиваете IP-адресацию и DHCP, чтобы избежать статических конфликтов в вашей сети.