如何在 VirtualBox 中启动 VM 映像的多个实例?

如何在 VirtualBox 中启动 VM 映像的多个实例?

我想配置一个具有所有附加功能的机器映像,然后能够在 VirtualBox 中启动它的多个实例。但是,它只允许我启动每个 VM 的一个实例。我尝试克隆 VM(并选择重新初始化 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 进入它。

答案1

更新

我能够完全重现您的问题。我发现最简单的解决方案就是删除内容/etc/udev/rules.d/70-persistent-net.rules并重新启动。重新启动时会自动生成此文件,它会将 eth0 重置为当前分配的 MAC。

原始答案

当您克隆虚拟机并重新初始化 mac 时,操作系统会认为新的 mac 是新的网络设备。它通常会将新的 mac 地址分配给 eth1。如果 eth1 未正确配置,您将无法进行任何网络连接,也无法通过 ssh 登录。

您可以清除 udev 网络规则以强制操作系统忘记以前的 MAC 并将新的 MAC 分配给 eth0,或者您可以将 eth1 配置为主要网络接口。

这里很好地解释了为什么 udev 规则很重要并且适用于您的情况:“例如,在一台拥有英特尔和 Realtek 制造的两块网卡的计算机上,英特尔制造的网卡可能变为 eth0,而 Realtek 网卡变为 eth1。在某些情况下,重新启动后,卡会以相反的方式重新编号。为了避免这种情况,请创建 Udev 规则,根据网卡的 MAC 地址或总线位置为网卡分配稳定的名称。”

另一个可能的问题是 IP 地址是否在网络配置中静态设置。如果您有一台应该分发 IP 地址的 DHCP 服务器,那么请确保网络配置设置为 DHCP。

引用源和 udev 规则文档

相关内容