克隆虛擬機器導致Linux無法啟動網路卡的分析與解決

powerx_yc發表於2018-08-12

1 問題描述

VMware中克隆虛擬機器是經常的事情,對於客戶機是Winows的虛擬機器直接克隆就可以使用。對於客戶機是Linux的虛擬機器克隆後會出現網路無法啟動的問題。

使用service network start 命令會出現報錯如下:

device eth0 does not seem to be present

2 原因分析

使用Vmware的克隆功能,會為新產生的虛擬機器配置一個與原始虛擬機器網路卡MAC地址不同的網路卡。對於CentOS這樣的Linux系統,會把執行時的網路卡MAC地址記入/etc/udev/rules.d/70-persistent-net.rules檔案中。這樣克隆好的新系統裡也儲存了這個記錄。

當新系統啟動時,由於vmware已經為其配置了不同的MAC地址,因此係統會在啟動掃描硬體時把這個新的MAC地址的網路卡當做是eth1,並且增加記入上述檔案中。而此時配置檔案裡的/etc/sysconfig/network-scripts/ifcfg-eth0裡記錄的還是原來的MAC地址,而這個MAC地址在新系統裡是不存在的,所以無法啟動。

3 解決辦法

在新系統裡,把rules檔案裡記錄的老MAC對應的那個eth0一行刪除掉,然後把新MAC對應的eth1的名字改為eth0。然後在ifcfg-eth0檔案裡把HDADDR的值改為新的MAC地址。

這樣rules和ifcfg-eth0就彼此對應(rules裡的eth0對應ifcfg-eth0檔名,rules裡的mac對應ifcfg-eth0檔案裡的HDADDR)好了。此時需要重新啟動系統一切就OK了。

相關文章