解決vmware上linux虛擬機器的eth0不存在的問題
配置好的Vmware vmdk,在其他電腦上用使用,會出現一個問題--找不到網絡卡了,提示"No such device eth0"……
原因是Vmware儲存的硬體配置檔案*.vmx裡記錄了網絡卡的MAC地址,而linux也會記錄MAC地址,這樣在克隆虛擬機器的時 候,Vmware會為Ubuntu分配一個新的eth0網絡卡,但是由於被之前的eth0佔用,所以它會變成eth1。再因為eth0是預設的網絡卡,顯然這 個網絡卡不存在,所以就提示"No such device eth0"..
linux儲存MAC地址的配置檔案為"/etc/udev/rules.d/70-persistent-net.rules",
方法1:直接刪除配置檔案
直接刪除配置檔案,重啟之後Ubuntu就會找到新的網絡卡了。
sudo rm /etc/udev/rules.d/70-persistent-net.rules
方法2:修正配置檔案
修改配置檔案,將原本的eth0刪除,然後修改eth1的NAME="erh1"為NAME="eth0",重啟之後linux就會使用新的配置檔案設定網絡卡了。
修改前的 /etc/udev/rules.d/70-persistent-net.rules 像這樣:
# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:50:XX:XX", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:85:XX:XX", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
將它修改為:
# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:85:XX:XX", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
[備註]
重啟後使用網路管理配置IP時可能會出現,system-config-network無法編輯的錯誤
檢視/etc/sysconfig/network-scripts/ifcfig-eth0,發現內容為空.按以下格式進行編輯,儲存即可
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
HWADDR=00:0C:29:C6:A1:AB
IPADDR=192.168.1.60
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
NM_CONTROLLED=yes
MODE=Manager
DNS1=192.168.1.1
MTU=1500
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
PREFIX=24
NAME="System eth0"
UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
此處的MAC即為修改/etc/udev/rules.d/70-persistent-net.rules 前eth1的MAC