一、背景:做測試需要搭建一套環境,利用vmware的克隆功能在已有虛拟機的基礎上克隆出來一份專門用來做測試環境搭建。
二、問題:在克隆成功後啟動新的虛拟機時出現device eth0 does not seem to be present delaying initializa(裝置eth0不存在,延遲初始化)的錯誤,造成系統無法正常啟動,一直卡在如下步驟,如圖:
三、原因(摘自網絡):克隆的Linux系統在新的機器上運作,新伺服器網卡實體位址已經改變。而/etc/udev/rules.d/70-persistent-net.rules這個檔案确定了網卡和MAC位址的資訊之間的綁定,克隆後的網卡的MAC已經發生了變化,是以導緻系統認為網絡裝置不存在,網絡不能正常啟動。另外一個就是/etc/sysconfig/network-scripts/ifcfg-eth0裡面MAC位址也是以前的舊資訊。
關于/etc/udev/rules.d/70-persistent-net.rules這個檔案,系統在啟動時會自動監測變化,然後由/lib/udev/write_net_rules寫入到/etc/udev/rules.d/70-persistent-net.rules中一個新的配置節,網卡的的序号依次遞增(如原來為eth0,則修改第一後生成一個eth1,再次修改後生成一個eth2...),且其ATTR{address}的值為目前網卡對應的mac位址。
以上引用:https://www.cnblogs.com/kerrycode/p/4345692.html
四、解決方案:
網絡上查找的解決方案基本都是克隆後的虛拟機能正常啟動,然後在克隆的虛拟機中做的更改或設定,不适用我的情況,隻能比葫蘆畫瓢将同樣的方案在原始虛拟機上做修改;
1.将原始虛拟機快照備份,為了不影響在原始虛拟機修改的内容;
2.将原始虛拟機的/etc/udev/rules.d/70-persistent-net.rules檔案删除;
3.修改原始虛拟機的vi /etc/sysconfig/network-scripts/ifcfg-eth0檔案:
ifcfg-eth0的配置檔案裡儲存了以前的MAC位址(HWADDR),删除該行,儲存退出;
4.關閉原始虛拟機,并重新克隆;
5.啟動克隆後的虛拟機,一切正常;
6.将原始虛拟機恢複至快照狀态。