虛擬機Vmware上克隆了一個Red Hat Enterprise Linx啟動時發現找不到網卡,如下所示,如果你在命令窗口啟動網絡服務就會遇到”Device eth0 does not seem to be present, delaying initialization“錯誤
關於這個錯誤,搜索了一下網上的資料,發現還蠻多人遇到過這類錯誤,了解了一下錯誤產生的原因和解決方案
錯誤原因:
克隆的Linux系統在新的機器上運行,新服務器網卡物理地址已經改變。而/etc/udev/rules.d/70-persistent-net.rules這個文件確定了網卡和MAC地址的信息之間的綁定,克隆後的網卡的MAC已經發生了變化,所以導致系統認為網絡設備不存在,網絡不能正常啟動。另外一個就是/etc/sysconfig/network-scripts/ifcfg-eth0裡面MAC地址也是以前的舊信息。
關於/etc/udev/rules.d/70-persistent-net.rules這個文件,系統在啟動時會自動監測變化,然後由/lib/udev/write_net_rules寫入到/etc/udev/rules.d/70-persistent-net.rules中一個新的配置節,網卡的的序號依次遞增(如原來為eth0,則修改第一後生成一個eth1,再次修改後生成一個eth2...),且其ATTR{address}的值為當前網卡對應的mac地址。
解決方法:
1:編輯/etc/sysconfig/network-scripts/ifcfg-eth0配置文件,將ifcfg-eth0的配置文件裡裡面以前的關於MAC地址這一行刪除掉或修改。另外克隆的服務器的IP設置的是靜態IP,要麼修改為一個其它的IP地址或設置為動態IP,重啟網卡服務
2:找到/etc/udev/rules.d/70-persistent-net.rules 刪除後重啟機器,系統會自動生成一個70-persistent-net.rules文件。
因為這個文件綁定了網卡和MAC地址,換了網卡以後MAC地址變了,所以不能正常啟動,也可以直接編輯這個配置文件把裡面的網卡和MAC地址修改成對應的,不過這樣多麻煩,直接刪除重啟,它會自動生成個一個新的文件。
刪除前70-persistent-net.rules的內容
重新生成的70-persistent-net.rules的內容
重啟過後OK,但是我想將測試服務器設置為動態IP,於是在/etc/sysconfig/network-scripts/ifcfg-eth0配置文件裡面修改了一番,但是老是獲取不到IP地址,將地址改為靜態IP地址又沒有問題,折騰了好久,最後悲催的發現需要運行dhclient命令才能獲取動態IP地址。
參考資料
作者:潇湘隱者 出處:http://www.cnblogs.com/kerrycode/