如何修复克隆的虚拟机中断开的网络?


27

我已经设置了配置了桥接网络的虚拟机。完成八个克隆之后,新计算机将无法连接到网络。

我已指示VirtualBox重新生成计算机的mac地址。

Answers:


26

有一些udev规则阻止新界面出现。

在主计算机中,只需在克隆新计算机之前将其删除即可:

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

来源


70-persistent-net.rules在主机和克隆的vms的下一次引导中出现。你遇到这个问题了吗?
Manish

删除文件使得-f不需要强制标志。
k0pernikus 2014年

即使文件不存在,该-f标志也会使rm命令以状态0成功执行。习惯的力量。:)
Stefano Palazzo

6

使用Virtual Box机器设置刷新您的MAC地址,并删除内核的网络接口规则文件,以便可以重新生成它:

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

它将适用于您的克隆VM。


1
就个人而言,我将规则文件复制到某个地方,而不是直接删除它,以防万一您需要恢复它。
David Edwards

这对我有用!
david.libremone 2014年

@DavidEdwards如果不存在,则文件由操作系统在启动期间创建。如果您确实需要旧副本(MAC地址错误的副本),则始终可以从原始VM中检索它。
MrWonderful 2014年

4

我几个月来一直在处理同一问题,今天我决定找到一个更好的解决方案。这是我在用作模板的计算机上所做的事情。

为了获得良好的管理实践,请在编辑之前备份两个文件。

您有两个违规/目标文件:

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

这适用于staticdhcp地址:

打开 /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。

如果您不使用模板,则可以在实际的VM上完成这些步骤,只需记住在重新启动计算机之前在VM软件中重新初始化NIC。


这看起来是一个更完整的答案。您能否在上一段的“重新初始化NIC”部分中提供更多详细信息?您还使用了哪个VirtualBox版本?
RichVel

仅作说明,我在Ubuntu 16.04中找不到/ etc / sysconfig目录。
MakisH

1
Debian / Ubuntu中的@MakisH网络接口不是由/ etc / sysconfig / network-scripts中的文件定义的(您已经注意到,甚至没有/ etc / sysconfig目录),而是由/ etc / network / interfaces定义的。
Devin Norgarb '18

1

我在VirtualBox的早期版本中遇到了相同的问题,并且我在某处读到一个错误,该错误使“生成新的MAC地址”复选框无效。

我现在使用带有VirtualBox 4.2.10的Ubuntu 12.04。现在我注意到,当我创建克隆时,没有用于“生成新的MAC地址”的复选框。

即使我删除了70-persistent-net.rules,这也给我带来了一些问题,因为系统在启动时会自动使用与原始MAC地址相同的MAC地址来生成文件,从而导致连接失败。

但是我发现,在VirtualBox Manager中,您可以选择克隆,请转到“设置”>“网络”>“高级”,然后在复选框上打勾以生成新的MAC地址。

所以我要做的是先删除70-persistent-net.rules,然后关闭,生成新的MAC地址,然后重新启动,现在可以了。

或者,可以在克隆之前先删除文件。然后生成MAC地址,然后开始克隆。那也应该起作用。


0

我正在构建需要通过ip网络在虚拟机之间进行互连的并行计算环境。

我认为与重新生成机器的mac地址有关。我以前也遇到过类似的问题。

原始虚拟机具有eth0eth1。但是由于重新生成过程,在我的情况下,新克隆的机器具有eth2eth3。您可以通过以下命令进行检查:

ifconfig -a | grep eth

您可以使用ifconfig命令检查新克隆的计算机中是否仅lo已注册。一般来说,你应该有loeth0eth1当你键入ifconfig命令。

认为是由于MAC再生,在克隆机,有eth2eth3以太网接口,而不是eth0eth1在原机。您还可以检查/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,并eth1eth2eth3,这或多或少是这样的:

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

使用Virtual BOX(4.3)克隆3个虚拟机后,我使用相同的IP地址存在问题。因此,我已经关闭了计算机的电源并重新生成了新的mac地址,然后重新启动了它对我的工作。

步骤=>关闭克隆的VM,然后设置=>网络=>高级=>单击刷新MAC地址=>单击确定。然后启动VM。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.