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

解決 eth0: ERROR while getting interface flags: No such device 網卡命名衝突問題

編輯:Linux 教學

虛擬機克隆或遷移後,網卡名稱(如 eth1→eth0)與內核記錄的 MAC 地址綁定不匹配,導致 ifup eth0 報錯 No such device。本文提供兩種修復方案:恢復原名或清理 udev 規則重生成。

問題根因

  • 內核通過 MAC 地址識別網卡設備
  • /etc/udev/rules.d/70-persistent-net.rules 記錄了 MAC→設備名映射
  • 修改配置文件名稱(如 ifcfg-eth1→ifcfg-eth0)但未更新 udev 規則,導致內核仍分配舊名稱

方案一:恢復原網卡名稱(快速修復)

# 查看實際設備名
ifconfig -a
# 假設顯示 eth1,將配置文件改回
mv /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1
# 修改文件內 DEVICE=eth1
service network restart

方案二:清理 udev 規則重生成(徹底修復)

# 刪除持久化規則
rm -f /etc/udev/rules.d/70-persistent-net.rules
# 重啟系統(重啟 network 服務不生效,必須重啟機器)
reboot
# 重啟後 udev 會根據當前硬件重新生成規則,eth0 正常識別

驗證步驟

# 確認設備名
ifconfig -a | grep eth
# 確認 udev 規則
cat /etc/udev/rules.d/70-persistent-net.rules
# 測試啟動
ifup eth0

預防最佳實踐

  • 虛擬機克隆後執行 rm -f /etc/udev/rules.d/70-persistent-net.rules 再首次啟動
  • 使用 NAME="eth0" 在 udev 規則中強制指定名稱(現代 systemd 使用 /etc/systemd/network/ link 文件)
  • 配置文件 DEVICE、HWADDR、NAME 三者保持一致
Copyright © Windows教程網 All Rights Reserved