標籤:linux故障實戰
很多時候,我們在使用虛擬機器的時候,都會安裝一個虛擬機器作為model,以後需要搭建測試環境都會通過複製model來實現,這樣方便又快速、然後在複製出來的新系統網卡查查不能夠直接使用,這是因為網卡的mac地址是唯一的,複製的新系統,會產生新的mac地址,而ifcfg-eth0設定檔裡面的mac地址還是原來的,所以就需要通過人工修改成新的mac地址。
複製linux系統後,複製版無法啟動網卡,提示錯誤:
device eth0 does not seem to be present,delaying initialization
原因分析: Linux使用udev動態管理裝置檔案。VMware會自動產生虛擬機器的mac地址。這樣,由於複製出的Linux已經記錄了原Linux的網卡mac地址對應於網卡eth0,在複製出的Linux中由於mac地址發生改變,udev會自動將該mac對應於網卡eth1,以此類推。而其實kernel僅僅只識別到一張網卡,跟網卡名相關的網路設定也未發生任何變化。
解決方案:
udev將mac與網卡名稱的對應關係儲存在/etc/udev/rules.d/70-persistent-net.rules中
記錄下新的網卡MAC地址和NAME。
cat /etc/udev/rules.d/70-persistent-net.rules
# PCI device 0x8086:0x100f (e1000) ------複製前的address 注釋掉
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:5f:88:bd", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x8086:0x100f (e1000) -----複印後產生的新address ,將NAME="eth1" 修改為 NAME="eth0" ,將ATTR{address}=="00:0c:29:b6:87:56" 值複製在 ifcfg-eth0上
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:b6:87:56", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth1 #修改為新的eth1 。
HWADDR=00:0C:29:b6:87:56 #用新的MAC替換 00:0c:29:b6:87:56
TYPE=Ethernet
UUID=fa6bcd84-01ab-4b2d-9dd6-8d4a3a1961ac
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.1.56 #修改IP(如果原虛擬機器不同時運行,可以不修改)
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
重啟網卡即可:
本文出自 “無言的對白” 部落格,請務必保留此出處http://chbinmile.blog.51cto.com/6085145/1879388
linux 虛擬機器複製網卡不能啟動或使用