我在 VMware Fusion(适用于 Mac)和 VMware ESXi/vSphere 上都遇到了以下问题。许多人都熟悉这个问题,VMware KB 中对此进行了描述:“ Networking does not work in a cloned Linux virtual machine (2002767) ”。
- 创建一个 CentOS 虚拟机。
- 这是一个简单的虚拟机,具有最少的软件集和正常运行的网络堆栈。我们的想法是我们采用最小的虚拟机,克隆它并稍后添加更多软件。
- 克隆该虚拟机
- VMware Fusion 或 vCenter 将为克隆的 VM 上的网络接口分配一个新的 MAC 地址。
- Linux 不知道这个新的 MAC 地址,因此网络无法工作。该文件
/etc/sysconfig/network-scripts/ifcfg-ethN
具有第一台机器上接口的 MAC 地址。 - 要解决此问题,我需要找到新 VM 的 MAC 地址,编辑
ifcfg-ethN
此 MAC 并将其添加到HWADDR=
字段中。我不能简单地将 MAC 剪切并粘贴到字段中,因此这可能是一项容易出错的任务,尤其是当我忘记用笔和纸写下 MAC 时。 - (加分项)在新 VM 上,经常 eth0、eth1 等以错误的顺序显示。解决这个问题需要围绕一个神秘的舞蹈
/etc/udev/rules.d
我可以这样做,但是当我只是想启动一个新的 VM 来测试某些东西时,它很容易出错并且有点痛苦。
有没有办法简化这个手动过程?克隆新机器时,如何解决 MAC 地址问题?
由于设备持久性的东西只是阻碍了这些虚拟机,把它撕掉:
HWADDR
和UUID
行,并且ifcfg
/etc/udev/rules.d/70-persistent-net.rules
克隆前删除这应该让具有新 MAC 地址的 eth0
ifcfg-eth0
在初始启动时实际使用。