VMware 克隆虛擬機後,MAC 位址改變導致 udev 規則產生新介面名稱(如 eth2),而 /etc/sysconfig/network-scripts/ifcfg-eth0 仍綁定舊 MAC,造成網卡介面不匹配、ifconfig 找不到 eth0。本文提供標準修復流程:修正 70-persistent-net.rules、同步 ifcfg-eth0 MAC 與 IP、修正主機名、重啟網路服務驗證。
$ ifconfig eth0
eth0: error fetching interface information: Device not found
$ ifconfig
# 僅顯示 eth2、lo 等介面

/etc/udev/rules.d/70-persistent-net.rules 記錄舊 MAC 對應 eth0,新 MAC 分配 eth2ifcfg-eth0 仍綁定舊 MAC(HWADDR)# vi /etc/udev/rules.d/70-persistent-net.rules
# 將舊裝置行(PCI device ... vmxnet)以 # 註解
# 將新裝置行的 NAME="eth2" 改為 NAME="eth0"
# 記錄新 MAC 位址 ATTR{address}=="00:0c:29:ab:c5:2c"
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
# 修正 IP 位址(視網路規劃)
IPADDR=192.168.0.102
# 修正 MAC 位址對應 udev 規則
HWADDR=00:0C:29:AB:C5:2C
# 其他參數保持:BOOTPROTO=static, ONBOOT=yes 等
# vi /etc/sysconfig/network
HOSTNAME=hadoop2
# service network restart
# 輸出應顯示 Bringing up interface eth0: [OK]
建議進一步 reboot 確保開機自動生效。
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:AB:C5:2C
inet addr:192.168.0.102 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
...
#!/bin/bash
# fix-clone-net.sh
NEW_MAC=$(ip link show eth0 | awk '/ether/ {print $2}')
sed -i '/NAME="eth0"/d' /etc/udev/rules.d/70-persistent-net.rules
echo "SUBSYSTEM==\"net\", ACTION==\"add\", DRIVERS==\"?*\", ATTR{address}==\"$NEW_MAC\", ATTR{type}==\"1\", KERNEL==\"eth*\", NAME=\"eth0\"" >> /etc/udev/rules.d/70-persistent-net.rules
sed -i "s/^HWADDR=.*/HWADDR=$NEW_MAC/" /etc/sysconfig/network-scripts/ifcfg-eth0
service network restart
70-persistent-net.rules,首次開機自動重建cloud-init 自動配置網路,避免靜態 MAC 綁定