在學習centos時候,我們通常會使用克隆(clone)功能克隆出多臺虛擬機,克隆功能免去了我們多次安裝操作系統的麻煩,但同時也給我們帶來了一些問題,例如使用vmware的clone功能克隆出一臺虛擬機后,網卡總是啟動失敗。
我們使用ifconfig命令查看系統網卡信息,發現只有lo(local的縮寫,本地回環接口),并沒有我們經常使用的eth0網卡信息,如下圖
使用ifconfig -a命令查詢結果顯示,我們的網卡名稱為eth1,并不是我們常用的eth0
問題原因
為什么不是eth0
在使用clone功能克隆虛擬機時,clone會將原有虛擬機(虛擬機A)的所有信息拷貝一份,作為新的虛擬機(虛擬機B),并為新的虛擬機增加一塊網卡,我們都知道默認網卡的命名規則是ethx,x是一個從0遞增的數字,如果虛擬機A本身就有一塊網卡eth0,那么克隆后的虛擬機B也就有一塊網卡eth0,并且這兩塊網卡的信息是一模一樣的,MAC地址也是一樣的,在克隆過程中,vmware會默認給新虛擬機(虛擬機B)增加一塊網卡,因為虛擬機B已經存在一塊網卡eth0,所有按照默認的命名規則,新增加的網卡被命名為eth1,這就是為什么使用ifconfig -a 命令查詢出eth1的原因了。
解決方案
-
查詢網卡PCI信息
命令 cat /etc/udev/rules.d/70-persistent-net.rules
虛擬機A
虛擬機B -
修改PCI信息
將從虛擬機A克隆的eth0的PCI信息刪除,將虛擬機B自己的網卡信息命名為eth0
命令 vim /etc/udev/rules.d/70-persistent-net.rules
具體修改信息
修改后的結果如下
修改后的結果 -
查看eth0網卡配置信息
命令 cat /etc/sysconfig/network-scripts/ifcfg-eth0
eth0網卡配置信息 -
修改eth0網卡信息
通過查詢結果可知,克隆后虛擬機B的eth0配置信息和虛擬機A的eth0信息是相同的,要想讓虛擬機B的eth0網卡正常使用,需要將虛擬機B的eth0配置信息中的MAC信息(對應HWADDR屬性)修改為虛擬機B的eth0的PCI中對應的MAC
修改結果 - 重啟系統
命令 reboot -
驗證結果
命令 ifconfig
驗證結果
如果看到期待已久的eth0,證明已經配置成功了!