背景:作linux下分佈式測試的時候,從新安裝了兩個linux虛擬機,結果分佈式腳本沒有作好,分佈式也沒有作成。linux
今天想練練linux命令,打開vmware,啓動linux1 虛擬機,使用ifconfig -a,查看ip,結果沒有網卡eth0顯示,也沒有ip,顯示成了eth2。網絡
我想着其餘虛擬機會不會這樣呢,又啓動了linux2 虛擬機,使用ifconfig -a,查看ip,結果顯示網卡eth0了,可是沒有顯示ip。分佈式
好氣哦,之前用得好好的啊。。。。。開始問題查找~測試
1、使用ifconfig -a 顯示了成了網卡eth2,可是沒有ip顯示 。spa
緣由:rest
不少Linux distribution使用udev動態管理設備文件,並根據設備的信息對其進行持久化命名。udev會在系統引導的過程當中識別網卡,將mac地址和網卡名稱對應起來記錄在udev的規則腳本中。而對於新的虛擬機,VMware會自動爲虛擬機的網卡生成MAC地址,當你克隆或者重裝虛擬機軟件時,因爲你使用的是之前系統虛擬硬盤的信息,而該系統中已經有eth0的信息,對於這個新的網卡,udev會自動將其命名爲eth1(累加的原則),因此在你的系統啓動後,你使用ifconfig看到的網卡名爲eth1。blog
解決:ip
如何恢復到eth0?
在fedora中,udev記錄網絡規則的腳本爲:/etc/udev/rules.d/70-persistent-net.rules
[user@localhost ~]$ vi /etc/udev/rules.d/70-persistent-net.rules虛擬機
打開該文件,這時你會發現,裏面有eth0,eth1,eht2三個網卡的信息,但實際上你ifconfig時只能發現eth2一個網卡的信息,這時由於eth0根本就不存在。io
方法一:將其中eth0的信息刪掉,並將eth1信息中的設備名改成eth0,重啓系統,你看到的網卡就是eth0了。
方法二:因爲系統默認的啓動網卡是eth0,把eth2更改成eth0。調換下順序。而後重啓網絡服務 :service network restart
方法三:或者刪掉其中全部的信息重啓系統udev會幫你發現新的設備的。(我用此方法)
修改完以後,啓動eth0網卡:ifconfig eth0 up
而後重啓網絡服務:service network restart
2、
寫一半發現各類方法並無解決問題,靠,整了半天了~