文章作者:Slyar 文章來源:Slyar Home (www.slyar.com) 轉載請註明,謝謝合作。
給女朋友複製了一份我配置好的Ubuntu Server Vmware vmdk,在她電腦上用這塊虛擬硬碟建立出的Ubuntu也能用,唯一有問題的就是找不到網卡了,提示"No such device eth0"...
解決過程不寫了,反正耗掉了我好幾個小時...
原因是Vmware儲存的硬體設定檔*.vmx裡記錄了網卡的MAC地址,而Ubuntu也會記錄MAC地址,這樣在複製虛擬機器的時候,Vmware會為Ubuntu分配一個新的eth0網卡,但是由於被之前的eth0佔用,所以它會變成eth1。再因為eth0是預設的網卡,顯然這個網卡不存在,所以就提示"No such device eth0"..
Ubuntu儲存MAC地址的設定檔為"/etc/udev/rules.d/70-persistent-net.rules",我裝的是9.10版本,8.04以後的版本應該都是這個解決方案:
方法1:直接刪除設定檔
直接刪除設定檔,重啟之後Ubuntu就會找到新的網卡了。
sudo rm /etc/udev/rules.d/70-persistent-net.rules
方法2:修正設定檔
修改設定檔,將原本的eth0刪除,然後修改eth1的NAME="erh1"為NAME="eth0",重啟之後Ubuntu就會使用新的設定檔設定網卡了。
修改前的 /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"