Jak naprawić zepsute sieci w sklonowanych maszynach wirtualnych?


27

Skonfigurowałem maszynę wirtualną skonfigurowaną do pracy w sieci mostowej . Po utworzeniu ośmiu klonów nowe maszyny nie mogą połączyć się z siecią.

Poinstruowałem VirtualBox, aby ponownie wygenerował adresy MAC maszyn.

Odpowiedzi:


26

Istnieją udevzasady uniemożliwiające uruchomienie nowego interfejsu.

Na komputerze głównym usuń je przed sklonowaniem nowych komputerów:

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

( źródło )


Reguła 70-persistent-net.rules pojawia się przy następnym rozruchu maszyny nadrzędnej i sklonowanym vms. Czy napotkałeś ten problem?
Manish,

Usunięcie pliku powoduje, że -fflaga wymuszenia staje się niepotrzebna.
k0pernikus

-fFlaga powoduje, że rmkomenda sukces ze statusem 0 nawet jeśli plik nie istnieje. Siła nawyku. :)
Stefano Palazzo

6

Odśwież swój adres MAC za pomocą ustawień maszyny Virtual Box i usuń plik reguł sieciowych interfejsu jądra, aby można go było zregenerować:

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

Będzie działać dla twojej klonowanej maszyny wirtualnej.


1
Osobiście skopiowałbym gdzieś plik reguł, zamiast po prostu go usunąć, na wypadek, gdybyś musiał go przywrócić.
David Edwards

to zadziałało dla mnie!
david.libremone

@DavidEdwards Jeśli nie jest obecny, plik jest tworzony przez system operacyjny podczas uruchamiania. Jeśli naprawdę potrzebujesz starej kopii (tej z niewłaściwym adresem MAC), zawsze możesz odzyskać ją z oryginalnej maszyny wirtualnej.
MrWonderful

4

Miałem do czynienia z tym samym problemem od miesięcy i dzisiaj zdecydowałem, że znajdę lepszy sposób. Oto, co zrobiłem na komputerze, którego używałem jako szablonu.

Dla dobrych praktyk administracyjnych wykonaj kopię zapasową obu plików przed edycją.

Masz dwa niepoprawne / docelowe pliki:

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

Będzie to działać dla adresu staticlub dhcpadresu:

otwarty /etc/sysconfig/network-scripts/ifcfg-eth0

Usuń wiersz adresu MAC: HWADDR=XX:11:22:XX:33:XX
Zapisz plik.

Usuń plik /etc/udev/rules.d/70-persistent-net.rules„zostanie ponownie utworzony po ponownym uruchomieniu maszyny wirtualnej”

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

Możesz teraz sklonować swoje pudełko, a każdy klon poprawnie wdroży i wyświetli eth0.

Jeśli nie używasz szablonu, możesz wykonać te procedury na maszynie wirtualnej, pamiętaj tylko o ponownej inicjalizacji karty sieciowej w oprogramowaniu maszyny wirtualnej przed ponownym uruchomieniem komputera.


To wygląda na bardziej kompletną odpowiedź. Czy możesz podać więcej szczegółów na temat części „Ponowna inicjalizacja karty sieciowej” w ostatnim akapicie? Z której wersji VirtualBox korzystałeś?
RichVel 14.04.16

Dla przypomnienia nie mogę znaleźć katalogu / etc / sysconfig w Ubuntu 16.04.
MakisH,

1
Interfejsy sieciowe @MakisH w Debian / Ubuntu nie są zdefiniowane przez pliki w / etc / sysconfig / network-scripts (jak zauważyłeś, nie ma nawet katalogu / etc / sysconfig), ale przez / etc / network / interfaces.
Devin Norgarb

1

Ten sam problem napotkałem na poprzedniej wersji VirtualBox i gdzieś przeczytałem, że wystąpił błąd, który sprawił, że pole wyboru „generuj nowy adres MAC” jest bezużyteczne.

Używam teraz Ubuntu 12.04 z VirtualBox 4.2.10. Zauważyłem teraz, że kiedy tworzyłem klon, nie było pola wyboru, aby „wygenerować nowy adres MAC”.

Dało mi to pewne problemy, nawet jeśli usunąłem 70-persistent-net.rules, ponieważ system automatycznie wygeneruje plik przy uruchomieniu z tym samym adresem MAC, co oryginał, co uniemożliwiło nawiązanie połączenia.

Ale odkryłem, że w VirtualBox Manager możesz wybrać klon, przejść do Ustawienia> Sieć> Zaawansowane i wygenerować nowy adres MAC, zaznaczając odpowiednie pole.

Więc to, co zrobiłem, to najpierw usunąć 70-persistent-net.rules, zamknąć, wygenerować nowy adres MAC i zacząć od nowa, a teraz działa.

Alternatywnie możesz usunąć plik przed klonowaniem. Następnie wygeneruj adres MAC, a następnie uruchom klon. To też powinno działać.


0

Buduję środowisko obliczeń równoległych, które wymaga połączenia maszyny wirtualnej za pośrednictwem sieci IP.

Myślę, że jest coś związanego z ponownym generowaniem adresów MAC maszyn. Wcześniej miałem podobny problem.

Oryginalna maszyna wirtualna ma eth0i eth1. Ale z powodu procesu regeneracji w moim przypadku nowa sklonowana maszyna ma eth2i eth3. możesz to sprawdzić za pomocą następującego polecenia:

ifconfig -a | grep eth

Możesz sprawdzić ifconfigpoleceniem, że w nowym sklonowanym komputerze lozarejestrowano się tylko . Generalnie, należy mieć lo, eth0i eth1po wpisaniu ifconfigkomendy.

Że ze względu na regenerację MAC że w maszynie klonu, istnieją eth2i eth3Ethernet Interfejsy zamiast eth0i eth1w oryginalnym urządzeniu. Możesz także sprawdzić /etc/network/interfacesw oryginalnej maszynie, która w moim przypadku będzie wyglądać następująco:

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

Być może możesz zmodyfikować swój /etc/network/interfacesplik i zmienić eth0oraz za eth1pomocą eth2i eth3, które mniej więcej w ten sposób:

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

Powodzenia chłopaki!


0

Usunąłem plik 70-persitent-net.rules, ale nie został ponownie utworzony po ponownym uruchomieniu. Następnie przeinstalowałem moduł dodatków gości i ponownie uruchomiłem maszynę wirtualną.


0

Mam problem z tym samym adresem IP po sklonowaniu 3 maszyn wirtualnych za pomocą Virtual BOX (4.3). SO Mam wyłączony komputer i zregenerowałem nowy adres mac i zrestartowałem go, działał dla mnie.

kroki => wyłącz sklonowaną maszynę wirtualną, a następnie ustawienia => sieć => zaawansowane => kliknij odśwież adres MAC => kliknij OK. następnie uruchom VM.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.