Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

VMware 克隆 Linux 後 eth0 消失解決方案:70-persistent-net.rules 與網卡配置同步修復

編輯:關於 Linux

VMware 克隆 Linux 虛擬機後,常發生網卡裝置名稱漂移 (如 eth0 變 eth2),導致 ifconfig 找不到 eth0、靜態 IP 配置失效。根因:克隆產生新 MAC 位址,udev 規則 (70-persistent-net.rules) 記錄舊 MAC 對應 eth0,新介面獲新編號。解決核心:同步修改 udev 規則與網卡配置檔案的 MAC 位址與裝置名稱對應。

問題現象

# ifconfig
eth2: ...   # 原本應為 eth0

# ifconfig eth0
eth0: error fetching interface information: Device not found

根因分析

  1. 克隆產生新 MAC 位址 (如 00:0C:29:AB:C5:2C)
  2. /etc/udev/rules.d/70-persistent-net.rules 仍記錄舊 MAC 對應 eth0
  3. 核心偵測到新 MAC 無對應規則,分配新編號 eth2
  4. /etc/sysconfig/network-scripts/ifcfg-eth0 仍設定舊 MAC 或無 MAC,啟動失敗

修復步驟

步驟 1:查看當前網卡資訊

ifconfig -a
# 記錄實際存在的介面名稱 (如 eth2) 及其 MAC 位址 (如 00:0C:29:AB:C5:2C)

步驟 2:修改 udev 持久化規則

vi /etc/udev/rules.d/70-persistent-net.rules

# 找到類似行:
# PCI device 0x1022:0x2000 (vmxnet)
# SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0C:29:AB:C5:2C", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"

# 修改為:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0C:29:AB:C5:2C", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# 註解掉舊的 eth0 規則行 (若存在)
# SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="OLD_MAC", ..., NAME="eth0"

步驟 3:修改網卡配置檔

vi /etc/sysconfig/network-scripts/ifcfg-eth0

# 關鍵欄位:
DEVICE=eth0
HWADDR=00:0C:29:AB:C5:2C    # 必須與 udev 規則、實際 MAC 完全一致
IPADDR=192.168.0.102       # 靜態 IP
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
ONBOOT=yes
BOOTPROTO=static

步驟 4:修改主機名 (可選)

vi /etc/sysconfig/network
HOSTNAME=cloned-host

步驟 5:重啟網路服務驗證

service network restart
# 輸出應顯示:
# Bringing up interface eth0:  Active connection state: activating ... state: activated

步驟 6:完全重啟系統 (建議)

reboot

步驟 7:最終驗證

ifconfig
# eth0 應正常顯示,含正確 IP、MAC、RX/TX 封包統計

CentOS 7 / RHEL 7 + (systemd + 可預測命名) 差異

  • 介面命名規則:ens33, enp0s3 等 (非 ethX)
  • 修改檔案:/etc/sysconfig/network-scripts/ifcfg-ens33
  • udev 規則同樣位於 /etc/udev/rules.d/70-persistent-net.rules
  • 或使用 nmcli / ip link set dev ens33 name eth0 重命名 (需配合 udev 規則)

預防措施:克隆前準備

  1. 來源虛擬機關機狀態下克隆
  2. 克隆選項選擇「產生新的 MAC 位址」
  3. 克隆後立即按上述流程修復,再投入生產

總結

核心邏輯:實際 MAC = udev 規則 MAC = ifcfg-eth0 HWADDR = 目標裝置名稱 (eth0)。三者嚴格一致,網路服務即可正常啟動指定介面。

Copyright © Windows教程網 All Rights Reserved