vmware裡面轉殖了個虛擬機器,轉殖機網絡卡啟動不了,啟動報錯:
device eth0 does not seem to be present, delaying initialization.[failed]
使用轉殖後的虛擬機器時發現原來在基本系統中的網絡卡eth0到了新系統卻沒有了,使用ifconfig -a會發現只有lo。
因為基本系統的網路相關配置都是基於eth0的,如果基於此轉殖虛擬機器繼續轉殖或複製新的虛擬機器,網絡卡的標識每一次都會自動加1變成eth1(第二次轉殖會變成eth2),dmesg卻顯示核心只識別到網絡卡eth0。
原因分析:很多linux distribution使用udev動態管理裝置檔案,
並根據裝置的資訊對其進行持久化命名。例如在centos中,udev會在系統引導的過程中識別網絡卡,將mac位址和網絡卡名稱對應起來記錄在udev的規則指令碼中。而vmware會自動生成虛擬機器的mac位址。這樣,由於基本系統的虛擬機器已經記錄了該虛擬機器的網絡卡mac位址對應於網絡卡eth0,在轉殖出的虛擬機器中由於mac位址發生改變,udev會自動將該mac對應於網絡卡eth1。以此類推,udev會記錄所有已經識別的mac與網絡卡名的關係,所以每次轉殖網絡卡名稱會自動加1,而其實kernel僅僅只識別到一張網絡卡,跟網絡卡名相關的網路配置也未發生任何變化。
解決方案:
udev將mac與網絡卡名稱的對應關係儲存在 # vi /etc/udev/rules.d/70-persistent-net.rules 中,
可以看到檔案內容如下
# pci device 0x8086:0x100f(e1000)
subsystem=="
net", action=="
add", drivers=="
?*", attr=="
00:0c:29:7b:60:38
", attr=="
1", kernel=="
eth*
", name="
eth0
"# pci device
0x8086:0x100f
(e1000)
subsystem=="
net", action=="
add", drivers=="
?*", attr=="
00:0c:29:29:b9:c5
", attr=="
1", kernel=="
eth*
", name="
eth1
"
處理步驟
步驟1:將轉殖出的虛擬機器中只要刪除與 name="eth0" 相關的行,並把下行的 eth1 的改為 eth0 ;並記錄一下attr的值;
步驟2:記錄此轉殖機mac位址,然後編輯 # vi /etc/sysconfig/network-scripts/ifcfg-eth0 將hwaddr及ipaddr修改一下;
步驟3: 重啟系統;
VMware轉殖虛擬機器
在學習linux服務配置的過程中,必須使用兩台以上的虛擬機器才能在一台主機上完成服務配置並且驗證。這個時候再去從頭安裝虛擬機器費時費力,建議可以安裝完成之後改完yum源之後進行快照備份。不多廢話,下面開始介紹今天的內容 uuid手動設定的時候可能前24位廠商號有問題 沒有驗證過 uuid相同的裝置同...
轉殖虛擬機器
vmware虛擬機器安裝系統雖然方便,但是搭集群時如果每個結點都重新安裝的話也是很耗時的。幸好vmware有個轉殖功能,用起來非常方便,非常爽。下面就給出簡單的轉殖教程。前提是你已經有乙個安裝好系統且配置好環境的虛擬機器。這裡我就用圖上的nginx虛擬機器做演示,我安裝的是centos7。什麼都沒設...
虛擬機器轉殖
批量自動刪除rpm包 rpm qa grep mysql while read c do rpm e c nodeps done minimal最小化安裝 eth0預設沒有自啟用 修改配置檔案 onboot true 修改靜態位址後發現無法ping外網 需要設定閘道器 route add defau...