Як виправити зламані мережі в клонованих віртуальних машинах?


27

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

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

Відповіді:


26

Існують udevправила, які не дозволяють створювати новий інтерфейс.

У машині Master просто видаліть їх перед тим, як клонувати нові машини:

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

( джерело )


70-стійкі-net.rules з'являються в наступному завантаженні головного автомата і клоновані vms. Чи стикалися ви з цією проблемою?
Manish

Видалення файлу робить -fпрапор сили непотрібним.
k0pernikus

-fПрапор робить rmкоманду успіху зі статусом 0 , навіть якщо файл не існує. Сила звички. :)
Стефано Палацо

6

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

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

Він буде працювати для вашого клона VM.


1
Особисто я би скопіював файл правил кудись, а не просто видалив його прямо, на випадок, якщо вам потрібно буде відновити його.
Девід Едвардс

це працювало для мене!
david.libremone

@DavidEdwards Якщо немає, файл створюється ОС під час запуску. Якщо вам справді потрібна стара копія (та, яка має неправильну MAC-адресу,), ви завжди зможете отримати її з оригінальної VM.
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"він буде відтворений після перезавантаження VM"

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

Тепер ви можете клонувати свою скриньку, і кожен клон буде правильно розгортати та відображати eth0.

Якщо ви не використовуєте шаблон, ви можете виконати ці процедури на фактичному VM, просто пам’ятайте про повторну ініціалізацію свого NIC у програмному забезпеченні VM перед перезавантаженням машини.


Це виглядає як більш повна відповідь. Чи можете ви надати більш детальну інформацію про частину "повторної ініціалізації NIC" в останньому абзаці? Також, яку версію VirtualBox ви використовували?
RichVel

Як і примітка, я не можу знайти каталог / etc / sysconfig в Ubuntu 16.04.
MakisH

1
Мережеві інтерфейси @MakisH в Debian / Ubuntu не визначаються файлами в / etc / sysconfig / network-script (як ви вже помітили, немає навіть каталогу / etc / sysconfig), а через / etc / network / interfaces.
Девін Норгарб

1

У попередній версії VirtualBox я зіткнувся з тією ж проблемою, і десь прочитав, що сталася помилка, яка поставила галочку "генерувати нову MAC-адресу" непотрібною.

Зараз я використовую Ubuntu 12.04 з VirtualBox 4.2.10. Зараз я помітив, що коли я створив клон, не було галочки, щоб "генерувати нову MAC-адресу".

Це дало мені певні проблеми, навіть якщо я видалив 70-стійкі-net.rules, оскільки система автоматично генерувала файл при запуску з тією ж MAC-адресою, що й оригінал, через що не вдалося підключитися.

Але я виявив, що у VirtualBox Manager ви можете обрати клон, перейти в Налаштування> Мережа> Додатково та генерувати нову MAC-адресу, поставивши галочку біля поля.

Тому я спершу видалив 70-стійкі-net.rules, вимкнути, створити нову MAC-адресу та запустити заново, і тепер це працює.

Ви також можете спочатку видалити файл перед клонуванням. Потім генеруйте MAC-адресу, а потім запустіть клон. Це також повинно працювати.


0

Я будую паралельне обчислювальне середовище, яке потребує взаємозв'язку між віртуальною машиною через ip мережу.

Я думаю, що є щось, пов’язане з повторним генеруванням мак-адрес машин. Я раніше стикався з подібною проблемою.

На оригінальній віртуальній машині є 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 файл, але його не було створено після перезавантаження. Тоді для мене працювала перевстановлення модуля доповнень для гостей та перезавантаження VM.


0

У мене є проблема з тим же ip-адресою після клонування 3 VM з Virtual BOX (4.3). Так що я вимкнув електроенергію та відновив нову мак-адресу та перезапустив, що вона працювала на мене.

кроки => вимкнути клонований VM, а потім налаштування => мережа => розширений => натисніть на оновити MAC-адресу => клацніть OK. потім запустіть VM.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.