Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Linux 虛擬機複製後網卡失效問題排查與修復

編輯:Linux 系統常見問題解答

故障現象

  • ifconfig 僅顯示 lo 回環接口,無 eth0。
  • service network restart 提示 device "eth0" does not seem to be present, delaying initialization.

根因分析

虛擬機複製相當於更換了網卡硬件 (MAC 地址改變),但系統配置文件仍保留舊 MAC:

  • /etc/sysconfig/network-scripts/ifcfg-eth0 中 HWADDR 為舊 MAC。
  • /etc/udev/rules.d/70-persistent-net.rules 由 udev 自動生成,綁定新 MAC 為 eth0 (或 eth1),與 ifcfg-eth0 不一致。

啟動腳本讀取 ifcfg-eth0 尋找舊 MAC 設備失敗,導致網卡未掛載。

修復步驟

  1. 查看 udev 規則獲取新 MAC:
    cat /etc/udev/rules.d/70-persistent-net.rules
    # 輸出示例:
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:78:86:e9", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
    
    記錄 ATTR{address} 值 (新 MAC)。
  2. 修改網卡配置文件:
    vi /etc/sysconfig/network-scripts/ifcfg-eth0
    # 修改 HWADDR 為新 MAC
    HWADDR=00:0c:29:78:86:e9
    # 若無 HWADDR 行則新增;若有 UUID 行建議刪除 (避免衝突)
    
  3. 可選:清理 udev 規則 (重啟後自動重建):
    rm /etc/udev/rules.d/70-persistent-net.rules
    
  4. 重啟網絡服務或重啟系統:
    service network restart
    # 或
    reboot
    

預防建議

  • 克隆虛擬機前,刪除 /etc/udev/rules.d/70-persistent-net.rules 及 ifcfg-eth0 中的 HWADDR/UUID,首次啟動自動檢測生成。
  • 使用雲初始化工具或腳本自動化網絡配置重置。
  • 新版系統 (systemd, predictable network interface names) 可能使用 ens33 等命名,原理同樣適用。
Copyright © Windows教程網 All Rights Reserved