歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux啟動網卡時出現RTNETLINK answers: File exists錯誤解決方法

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

日期:2017/2/28 14:37:04   编辑:Linux教程

一、問題描述
VMware中克隆虛擬機是經常的事情,雖然如此,用到虛擬機時,本人還是喜歡新安裝一個操作系統,針對服務器的應用,在安裝操作系統時,一並安裝好,並且也花不了多少時間。但最近需要大量的配置一樣的虛擬機進行測試,故安裝了一個模板虛擬機,然後直接復制模板虛擬機到不同的文件夾,然後使用VMware 直接打開使用,但問題出來了,打開這些復制(克隆)的虛擬機全部會出現網絡無法啟動的問題。使用 service network start 命令出現報錯如下:

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

玩Linux蠻多年了,自認為對linux網絡配置很熟悉了,我第一直覺就是MAC地址的問題,怎麼更改配置都不行,百度半天,網上很多處理方法都是說與NetworkManager服務沖突導致,只要把該服務停止即可,查半天,本人安裝的操作系統根本就沒這個服務,哪來的沖突?

直到今天才發現原來還有太多的東西需要學習。不過我相信只要肯鑽研及善用谷歌與百度,還是找到了解決方法。

二、原因分析

使用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地址在新系統裡是不存在的,所以無法啟動。

三、解決方法
編輯/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 系統搞定;

Copyright © Linux教程網 All Rights Reserved