)
文档教程技术博客【免费下载链接】Linux-Tutorial《Java 程序员眼中的 Linux》项目地址https://gitcode.com/gh_mirrors/li/Linux-Tutorial点击查看免费下载克隆虚拟机是批量搭建 CentOS 测试环境最常用的手段但克隆出来的系统启动后常常发现原本的 eth0 网卡消失只剩下一个陌生的 eth1。本篇指南基于 Linux-Tutorial 仓库中的 CentOS-Virtual-Machine-Copy-Settings.md 实战笔记完整讲解克隆后网卡命名错乱的成因、VMware 复制对话框的正确选择以及 CentOS 6 与 CentOS 7 两套不同的修复流程。读完本文你将能够在一台 VMware 母机上批量复制出多台网卡信息正确、可直接 SSH 管理的 CentOS 虚拟机。概述为什么克隆后 eth0 会消失在需要多台 CentOS 虚拟机时最省力的做法是对已有虚拟机进行克隆或复制。但复制出来的系统存在一个典型问题启动后执行ifconfig发现原来的 eth0 网卡信息没有了只剩下一个 eth1。问题根源在于 Linux 的持久化网卡命名机制。在 CentOS 6 中udev 通过 70-persistent-net.rules 规则文件把网卡接口名eth0/eth1与网卡 MAC 地址绑定。克隆后 VMware 为新的虚拟机生成了一张新 MAC 地址的虚拟网卡老 MAC 不再存在udev 于是在规则文件中追加一条新规则把新 MAC 分配到 eth1而指向旧 MAC 的 eth0 规则自然失效——这就是克隆后只见 eth1、不见 eth0 的原因。此外VMware 在检测到虚拟机配置文件被复制后会弹出确认对话框询问这台虚拟机是被moved移动还是copied复制选择I moved itVMware 认为虚拟机只是换了位置保留原有的 UUID 等身份信息选择I copied it默认高亮选项VMware 认为这是一台全新的虚拟机会重新生成 UUID、MAC 地址等身份信息避免与源虚拟机在网络中冲突。对于复制克隆出来的新虚拟机一般选择copy配置。若不确定按照 VMware 提示框的建议选择 I copied it 即可。图片中展示的正是该标准提示界面。说明本指南的实操步骤与图片均来自仓库 CentOS-Virtual-Machine-Copy-Settings.md网络配置文件的参数详解可参考 CentOS-Network-Settings.md。克隆前的准备在动手修复网卡之前建议先做好两件事确定新虚拟机的主机名与 IP为克隆出的每台机器规划好不冲突的 hostname 和内网 IP例如母机为 linux01克隆机为 linux02。记录 VMware 中的网卡 MAC可在 VMware 的虚拟机设置 → 网络适配器 → 高级中查看当前网卡的 MAC 地址后续配置 HWADDR 时需要与此保持一致。CentOS 6 修改方法CentOS 6 的克隆修复需要同时处理三处信息hostname、udev 持久网卡规则文件、网卡配置文件含 IP、HWADDR、UUID。整个过程建议在 root 或具有 sudo 权限的账号下执行。第一步设置 hostnamehostnamectl --static set-hostname linux02将linux02替换为你为这台克隆机规划的主机名。第二步修改 udev 持久网卡规则文件sudo vim /etc/udev/rules.d/70-persistent-net.rules打开后正常情况下该文件此时应包含两行信息一行的NAMEeth0对应旧网卡旧 MAC另一行的NAMEeth1对应 VMware 生成的新网卡新 MAC。处理方式把NAMEeth0这一行用#注释掉旧规则已失效留着反而会造成干扰把另一行的NAMEeth1改为NAMEeth0记下该行中的ATTRS{address}...属性值这就是新网卡的 MAC 地址后续要写回网卡配置文件。# PCI device 0x1022:0x2000 (pcnet32) # SUBSYSTEMnet, ACTIONadd, DRIVERS?*, ATTR{address}00:0c:29:xx:xx:xx, NAMEeth0 SUBSYSTEMnet, ACTIONadd, DRIVERS?*, ATTR{address}00:0c:29:4c:46:01, NAMEeth0⚠️注意ATTRS{address}中的 MAC 地址每台机子都不一样上面示例中的00:0c:29:4c:46:01只是演示值务必以你机器上实际显示的内容为准不要直接复制示例。第三步修改网卡配置文件 ifcfg-eth0sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0需要修改两处修改 IP 地址改成规划好的新内网 IP把 HWADDR 的值改为第二步记下来的 MAC即00:0c:29:4c:46:01这类值。关于 ifcfg-eth0 中各项参数的含义可结合仓库 CentOS-Network-Settings.md 中给出的完整示例理解DEVICEeth0 # 设备名与文件名对应 TYPEEthernet # 以太网类型 UUID... # 网卡唯一标识 ONBOOTyes # 开机自动激活默认是 no需改为 yes NM_CONTROLLEDyes # 允许 NetworkManager 管理 BOOTPROTOnone # 手动指定 IP默认 dhcp USERCTLno # 禁止普通用户控制 IPV6INITno # 关闭 IPv6 初始化 NETMASK255.255.255.0 # 子网掩码 IPADDR192.168.0.110 # 内网 IP 地址 GATEWAY192.168.0.1 # 默认网关 DNS1114.114.114.114 # DNS 服务器 HWADDR00:0C:29:A9:37:D4 # 网卡 MAC 地址本例需改为新 MAC第四步检查并修正 UUID克隆产生的重复 UUID 会造成网络管理混乱需要检查当前系统识别的网卡 UUID 并与配置文件比对nmcli con /opt/info.txt查看输出如果显示两行 UUID 信息复制不是 System eth0 的那一行 UUID 值即新网卡的 UUID。然后再次编辑网卡配置文件sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0把文件中的UUID值改为上面复制的新 UUID。第五步保存并重启保存所有配置文件后重启系统或执行service network restart验证效果。正常情况下ifconfig应该能重新看到 eth0且 IP 为规划值。CentOS 7 修改方法CentOS 7 的网络接口命名从 eth0 换成了基于固件/PCI 位置的可预测命名如 ens33且默认不再依赖 70-persistent-net.rules 这种持久化规则。因此在 VMware 15 Pro 中直接 copy 克隆后只需修改网卡配置文件即可步骤比 CentOS 6 简单得多。编辑网卡配置文件vim /etc/sysconfig/network-scripts/ifcfg-ens33把 IP 地址修改为规划好的新值即可。以下是仓库 CentOS-Network-Settings.md 给出的 ifcfg-ens33 完整参考配置IP 段需替换为你自己的网络情况TYPEEthernet PROXY_METHODnone BROWSER_ONLYno BOOTPROTOstatic IPADDR192.168.0.127 NETMASK255.255.255.0 GATEWAY192.168.0.1 DNS18.8.8.8 DNS1114.114.114.114 DEFROUTEyes PEERDNSyes PEERROUTESyes IPV4_FAILURE_FATALno IPV6INITyes IPV6_AUTOCONFyes IPV6_DEFROUTEyes IPV6_PEERDNSyes IPV6_PEERROUTESyes IPV6_FAILURE_FATALno IPV6_ADDR_GEN_MODEstable-privacy NAMEens33 UUIDb9f01b7d-4ebf-4d3a-a4ec-ae203425bb11 DEVICEens33 ONBOOTyes重启网络服务systemctl restart network.service提示CentOS 7 默认可能不带 ifconfig 命令参考 CentOS6-and-CentOS7.md可用ip a查看网卡与 IP或安装 net-tools 后使用 ifconfigyum install -y net-tools验证与克隆后的常规收尾修复网卡后建议按以下清单收尾保证克隆机可正常纳入集群环境确认网卡状态CentOS 6 用ifconfigCentOS 7 用ip a确认 eth0/ens33 已出现且 IP 正确确认 hostnamecat /etc/hostnameCentOS 7或cat /etc/redhat-release查看系统版本信息详见 CentOS6-and-CentOS7.md测试网络连通ping网关与外部地址确认 DNS 解析正常配置 SSH 免密多台克隆机批量管理时可参照仓库 SSH-login-without-password.md 为母机生成密钥并ssh-copy-id到各克隆机实现免密登录。常见问题排查现象可能原因处理建议重启后 eth0 仍不出现70-persistent-net.rules 中 eth0 行未注释干净或 NAME 未改为 eth0重新检查规则文件确保旧 eth0 行已注释、新行 NAMEeth0 且 ATTRS{address} 为当前 MACifcfg-eth0 的 HWADDR 与规则文件不一致复制了示例 MAC以ATTRS{address}...实际值为准两者必须一致网络服务重启失败UUID 重复或配置语法错误用nmcli con确认 UUID 唯一后写回 ifcfg 文件VMware 再次提示 moved/copied虚拟机文件被再次复制或移动新克隆机选 I copied it仅移动位置选 I moved it总结克隆后网卡 eth0 消失本质是 udev 持久网卡命名规则与 MAC 地址重新绑定导致的名字错位。CentOS 6 需要同步修正 70-persistent-net.rules、ifcfg-eth0 的 IP/HWADDR/UUID 三处信息CentOS 7 采用可预测命名后只需直接编辑 ifcfg-ens33 修改 IP。掌握这套流程后即可在 VMware 中批量克隆 CentOS 虚拟机快速搭建多节点的开发与测试环境。相关网络配置参数与 CentOS 6/7 差异的更多细节可继续阅读仓库内的 CentOS-Network-Settings.md 与 CentOS6-and-CentOS7.md。赞分享文档教程技术博客【免费下载链接】Linux-Tutorial《Java 程序员眼中的 Linux》项目地址https://gitcode.com/gh_mirrors/li/Linux-Tutorial点击查看免费下载上一篇深度解析WarcraftHelper引擎架构现代系统兼容性解决方案下一篇2026年终极指南如何免费解锁WeMod专业版完整功能创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考