萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

VMware 克隆 Linux 後 eth0 消失解決:udev 規則與網卡配置同步修正指南

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 等介面

ifconfig 顯示 eth2 而非 eth0

二、根本原因

  • 克隆產生新 MAC 位址
  • udev 規則 /etc/udev/rules.d/70-persistent-net.rules 記錄舊 MAC 對應 eth0,新 MAC 分配 eth2
  • 網卡腳本 ifcfg-eth0 仍綁定舊 MAC(HWADDR)

三、修復步驟

1. 修正 udev 持久化規則

# 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"

2. 修正網卡配置檔

# 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 等

3. 修正主機名(可選)

# vi /etc/sysconfig/network
HOSTNAME=hadoop2

4. 重啟網路服務驗證

# service network restart
# 輸出應顯示 Bringing up interface eth0: [OK]

建議進一步 reboot 確保開機自動生效。

5. 最終驗證

# 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,首次開機自動重建
  • 使用 VMware 「完整克隆」而非「鏈接克隆」
  • 雲環境建議使用 cloud-init 自動配置網路,避免靜態 MAC 綁定
copyright © 萬盛學電腦網 all rights reserved