Como faço para corrigir redes quebradas em máquinas virtuais clonadas?


27

Eu configurei uma máquina virtual configurada com rede em ponte . Depois de fazer oito clones, as novas máquinas não podem se conectar à rede.

Eu instruí o VirtualBox a gerar novamente os endereços MAC das máquinas.

Respostas:


26

Existem udevregras que impedem a criação da nova interface.

Na máquina Master, basta excluí-los antes de clonar as novas máquinas:

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

( fonte )


O 70-persistent-net.rules aparece na próxima inicialização da máquina mestre e dos cliques em vms. Você enfrentou esse problema?
Manish

A exclusão de um arquivo torna o -fsinalizador de força desnecessário.
K0pernikus

O -fsinalizador faz com que o rmcomando seja bem-sucedido com o status 0, mesmo que o arquivo não exista. Força do hábito. :)
Stefano Palazzo

6

Atualize seu endereço MAC usando as configurações da máquina do Virtual Box e remova o arquivo de regras de interface de rede do kernel para que ele possa ser regenerado:

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

Ele funcionará para sua VM clone.


11
Pessoalmente, eu copiaria o arquivo de regras em algum lugar, em vez de excluí-lo completamente, caso você precise restaurá-lo.
David Edwards

isso funcionou para mim!
David.libremone

@DavidEdwards Se não estiver presente, o arquivo será criado pelo sistema operacional durante a inicialização. Se você realmente precisa da cópia antiga (aquela com o endereço MAC errado), sempre pode recuperá-la da VM original.
precisa saber é o seguinte

4

Eu estava lidando com o mesmo problema há meses e hoje decidi encontrar uma solução melhor. Aqui está o que eu fiz na máquina que estava usando como modelo.

Para boas práticas de administração, faça backup dos dois arquivos antes da edição.

Você tem dois arquivos ofensivos / de destino:

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

Isso funcionará para um endereço staticou dhcp:

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

Exclua a linha de endereço MAC: HWADDR=XX:11:22:XX:33:XX
salve o arquivo.

Exclua o arquivo /etc/udev/rules.d/70-persistent-net.rules"ele será recriado depois de reiniciar a VM"

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

Agora você pode clonar sua caixa e cada clone será implantado corretamente e exibirá eth0.

Se você não usar um modelo, poderá concluir estes procedimentos na VM real. Lembre-se de reinicializar a NIC no software da VM antes de reiniciar a máquina.


Parece uma resposta mais completa. Você pode fornecer mais detalhes sobre a parte "reinicializar a NIC" no último parágrafo? Também qual versão do VirtualBox você estava usando?
RichVel

Apenas como observação, não consigo encontrar o diretório / etc / sysconfig no Ubuntu 16.04.
MakisH

11
As interfaces de rede @MakisH no Debian / Ubuntu não são definidas por arquivos em / etc / sysconfig / network-scripts (como você notou, não há nem um diretório / etc / sysconfig), mas por / etc / network / interfaces.
Devin Norgarb

1

Encontrei o mesmo problema em uma versão anterior do VirtualBox e li em algum lugar que havia um bug que tornava a caixa de seleção "gerar novo endereço MAC" inútil.

Agora estou usando o Ubuntu 12.04 com o VirtualBox 4.2.10. Notei agora que quando criei o clone, não havia uma caixa de seleção para "gerar novo endereço MAC".

Isso me causou alguns problemas, mesmo que eu excluísse o 70-persistent-net.rules porque o sistema geraria automaticamente o arquivo na inicialização com o mesmo endereço MAC do original, o que causou uma falha na conexão.

Mas eu descobri que no VirtualBox Manager, você pode selecionar o clone, acessar Configurações> Rede> Avançado e gerar um novo endereço MAC marcando a caixa.

Então, o que fiz foi excluir o 70-persistent-net.rules primeiro, desligar, gerar um novo endereço MAC e começar de novo, e agora funciona.

Como alternativa, você pode excluir o arquivo primeiro antes de clonar. Em seguida, gere o endereço MAC e inicie o clone. Isso deve funcionar também.


0

Estou construindo um ambiente de computação paralela que precisa de interconexão entre a máquina virtual através da rede IP.

Eu acho que há algo relacionado à re-geração dos endereços MAC das máquinas. Eu já havia enfrentado o mesmo problema antes.

A máquina virtual original possui eth0e eth1. Mas, devido ao processo de regeneração, no meu caso, a nova máquina clonada possui eth2e eth3. você pode verificá-lo com o seguinte comando:

ifconfig -a | grep eth

Você pode verificar com o ifconfigcomando que na nova máquina clonada somente se loregistrou. Geralmente, você deve ter lo, eth0e eth1quando você digita ifconfigcomandos.

Isso ocorre devido à regeneração do MAC que, na máquina clone, existem interfaces Ethernet eth2e eth3não na máquina original eth0e eth1na máquina original. Você também pode verificar /etc/network/interfacesna máquina original que, no meu caso, aparecerá como:

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

Pode ser que você possa modificar seu /etc/network/interfacesarquivo e alterar the eth0e eth1with eth2e eth3, que são mais ou menos assim:

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

Então, boa sorte pessoal!


0

Excluí o arquivo 70-persitent-net.rules, mas ele não foi recriado após a reinicialização. Em seguida, reinstalar o módulo de adições de convidados e reiniciar a VM funcionou para mim.


0

Eu tenho problema com o mesmo endereço IP após a clonagem de 3 VMs com o Virtual BOX (4.3). SO eu desliguei as máquinas e regenerei o novo endereço mac e o reiniciei funcionou para mim.

etapas => desligue a VM clonada e depois configurações => rede => avançado => clique em atualizar o endereço MAC => clique em OK. depois inicie a VM.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.