1. 程式人生 > 其它 ># Linux啟動網絡卡時出現RTNETLINK answers: File exists錯誤解決方法

# Linux啟動網絡卡時出現RTNETLINK answers: File exists錯誤解決方法

一、問題描述
VMware中克隆虛擬機器,或者VitualBOX裡面複製虛擬機器,然後使用VMware直接開啟使用,但問題出來了,開啟這些複製(克隆)的虛擬機器全部會出現網路無法啟動的問題。使用 service network start 命令出現報錯如下:

device eth0 does not seem to be present
RTNETLINK answers: File exists 
RTNETLINK answers: File exists 
RTNETLINK answers: File exists

改MAC地址不能解決,查百度,很多方法都是說與NetworkManager服務衝突導致,服務停止即可,可是我的linux裡面是最小化安裝,沒有這個服務。後找在百度找到了原因。

二、原因分析

使用VMware 打開復制過來的作業系統檔案,VMware會為新產生的虛擬機器配置一個與原始虛擬機器網絡卡MAC地址不同的網絡卡。對於 CentOS這樣的Linux系統,會把執行時的網絡卡MAC地址記入到 /etc/udev/rules.d/70-persistent-net.rules 檔案中。這樣克隆好的新系統裡也儲存了這個記錄。當新系統啟動時,由於vmware已經為其配置了不同的MAC地址,因此係統會在啟動掃描硬體時把這個新的MAC地址的網絡卡當做是eth1,並且增加記入上述檔案中。而此時配置檔案裡的 /etc/sysconfig/network-scripts/ifcfg-eth0 裡記錄的還是原來的MAC地址,而這個MAC地址在新系統裡是不存在的,所以無法啟動。

三、解決方法

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

找到含NAME="eth0"的那行直接刪除,如下:
SUBSYSTEM"net", ACTION"add", DRIVERS"?*", ATTR{address}"00:0c:29:ac:95:31", ATTR{type}"1", KERNEL"eth*", NAME="eth0"

編輯含NAME="eth1"的那行:"eth1"更改為"eth0"

編輯/etc/sysconfig/network-scripts/ifcfg-eth0

更改HWADDR地址跟上面rules檔案的MAC地址一樣。

最後 init 6 或者reboot 系統搞定;

原文連結:https://blog.51cto.com/fengyunshan911/1747919