1. 程式人生 > >linux KVM中複製虛擬機器後eth0變成eth1問題

linux KVM中複製虛擬機器後eth0變成eth1問題

 當克隆或者重灌虛擬機器後,再啟動系統時會發現系統下不再有eth0,而變成了eth1,當使用/etc/init.d/network重啟網路時,會提示找不到裝置eth0及eth1的啟動指令碼。

    做以下改動:

    /etc/sysconfig/network-scripts/ifcfg-eth0重新命名為/etc/sysconfig/network-scripts/ifcfg-eth1

    /etc/init.d/network restart  提示找不到eth0

    發現指令碼中的device一項沒有改過來,將其改為eth1(或者刪掉)

    /etc/init.d/network restart 提示網絡卡的實體地址不匹配

    /etc/sysconfig/network-scripts/ifcfg-eth0中的mac地址為原來eth0網絡卡的實體地址,而虛擬機器為eth1分配新的實體地址,故啟動指令碼中的資訊與實際資訊時不匹配的,將MAC的地址資訊從指令碼中刪除,再次重啟網路,OK!

    為什麼原來的eth0會變成eth1?

    很多Linux distribution使用udev動態管理裝置檔案,並根據裝置的資訊對其進行持久化命名。udev會在系統引導的過程中識別網絡卡,將mac地址和網絡卡名稱對應起來記錄在udev的規則指令碼中。而對於新的虛擬機器,VMware會自動為虛擬機器的網絡卡生成MAC地址,當你克隆或者重灌虛擬機器軟體時,由於你使用的是以前系統虛擬硬碟的資訊,而該系統中已經有eth0的資訊,對於這個新的網絡卡,udev會自動將其命名為eth1(累加的原則),所以在你的系統啟動後,你使用ifconfig看到的網絡卡名為eth1.

    如何把名字改回eth0?

    在fedora 11中,udev記錄網路規則的指令碼為:/etc/udev/rules.d/70-persistent-net.rules

    開啟該檔案,這時你會發現,裡面有eth0,eth1兩個網絡卡的資訊,但實際上你ifconfig時只能發現eth1一個網絡卡的資訊,這時因為eth0根本就不存在。

    將其中eth0的資訊刪掉,並將eth1資訊中的裝置名改為eth0,重啟系統,你看到的網絡卡就是eth0了,或者刪掉其中所有的資訊重啟系統udev會幫你發現新的裝置的。