正常來說,Linux在識别網卡時第一張會是eth0,第二張才是eth1。有時候我們使用虛拟機克隆技術後網卡的資訊就會改變,新克隆出來的虛拟主機網卡名字可能變為eth1.無論我們怎麼修改都無法改變,這就對我們使用N台虛拟機進行HA-heartbeat實驗時造成了困擾(目前還不知道此處說的什麼東西...待百度...)。
當使用linux更換了網卡,或者将虛拟機從一台電腦拷貝到另一台電腦時,由于裝置網卡mac位址改變,但是系統配置檔案/etc/udev/rules.d/70-persistent-net.rules中仍然保留了老網卡的内容,新網卡則被識别為eth1。
在這裡成這樣是因為複制系統的過程中複制的檔案已經有一個網卡在/etc/udev/rules.d/70-persistent-net.rules被識别成了eth0,而虛拟機中的識别成了eth1。
解決方法:
1.編輯/etc/udev/rules.d/70-persistent-net.rules,找到與ifconfig -a得出的MAC相同的一行(NAME='eth1'這一行),把它改為"NAME=eth0 ",然後把上面一行(這一行是對應的老網卡)(NAME='eth0')删除掉。
也可以把老網卡的卡的行注釋掉,将新網卡的行的eth1改為eth0
vim /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:bb:41:2b", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
2.編輯/etc/sysconfig/network-script/ifcfg-eth0,把MAC改為正确的,把UUID删掉。
3.編輯/etc/sysconf/network,把hostname也改一下。
4.重新開機生效!
//========================================================================================
為什麼eth0會變成eth1?
很多Linux distribution使用udev動态管理裝置檔案,并根據裝置的資訊對其進行持久化命名。udev會在系統引導的過程中識别網卡,将mac位址和網卡名稱對應起來記錄在udev的規則腳本中。而對于新的虛拟機,VMware會自動為虛拟機的網卡生成MAC位址,當你克隆或者重裝虛拟機軟體時,由于你使用的是以前系統虛拟硬碟的資訊,而該系統中已經有eth0的資訊,對于這個新的網卡,udev會自動将其命名為eth1(累加的原則),是以在你的系統啟動後,你使用ifconfig看到的網卡名為eth1。

//======================================================================================
上面修改過程中把ifconfig-eth0中的UUID給幹掉了....強迫症犯了....生怕出問題....
本文轉自SummerChill部落格園部落格,原文連結:http://www.cnblogs.com/DreamDrive/p/5494751.html,如需轉載請自行聯系原作者