VMware 克隆 Linux 虛擬機後常發生網卡啟動失敗,提示 device eth0 does not seem to be present。本文深度解析 MAC 地址衝突根因,提供標準化修復流程。
service network start
# Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization. [FAILED]
/etc/udev/rules.d/70-persistent-net.rules 記錄舊 MAC 綁定 eth0eth1 並追記規則/etc/sysconfig/network-scripts/ifcfg-eth0 仍配置舊 MAC (HWADDR)eth0 對應 MAC 不存在,eth1 有 MAC 但無配置文件 → 網卡啟動失敗vim /etc/udev/rules.d/70-persistent-net.rules
# 刪除包含舊 MAC 的行 (NAME="eth0")
# 將新 MAC 對應行的 NAME="eth1" 改為 NAME="eth0"
# 保存退出
vim /etc/sysconfig/network-scripts/ifcfg-eth0
# 修改 HWADDR 為新 MAC 地址
# 確保 DEVICE="eth0"
# 保存退出
reboot
# 或
systemctl restart network
ip link show eth0
# 驗證 MAC 地址匹配
#!/bin/bash
# fix_cloned_nic.sh
NEW_MAC=$(ip link show | grep -A1 'eth[01]:' | grep link/ether | awk '{print $2}' | head -1)
[ -z "$NEW_MAC" ] && echo "No NIC found" && exit 1
# 更新 udev 規則
sed -i "/$NEW_MAC/ s/NAME=\"eth1\"/NAME=\"eth0\"/" /etc/udev/rules.d/70-persistent-net.rules
sed -i '/NAME="eth0"/ { /'"$NEW_MAC"'/!d }' /etc/udev/rules.d/70-persistent-net.rules
# 更新網卡配置
sed -i "s/HWADDR=.*/HWADDR=$NEW_MAC/" /etc/sysconfig/network-scripts/ifcfg-eth0
echo "Fixed. New MAC: $NEW_MAC. Reboot required."
/etc/network/interfaces 或 Netplan /etc/netplan/*.yamlnetplan applyrm /etc/udev/rules.d/70-persistent-net.rules (源機)virt-sysprep 通用化模板cloud-init 自動配置網絡enp3s0 等)# 現代系統 (systemd/udev 197+)
ip link show
# 2: enp3s0: ...
# 3: enp4s0: ...
# 名稱基於拓撲位置,克隆後自動一致,無需修改配置
掌握克隆後網卡修復,讓虛擬機部署不再因網絡故障停滯。