2015年4月6日 星期一

[Linux 常見問題] 複製虛擬機Linux,網卡啟動失敗 Device eth0 does not seem to be present, delaying initialization

Source From Here
Question
利用 VirtualBox 的"再製"功能,複製一台 Linux 虛擬主機,結果開機後發現網路卡未啟動,執行 ifup eth0 出現下列訊息。
# ifup eth0
 Device eth0 does not seem to be present, delaying initialization

經查詢發現因為"再製"出來的虛擬機會變更新的 MAC Address,所以造成 Linux 判斷成另一張網卡,下列兩種方法任選一種就可以解決。

方法一
1) 我們可以先用下列指令查看系統目前抓到哪幾張網卡
# cat /proc/net/dev
 Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
eth1: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

這裡可以發現網卡代號已經變成 eth1

2) 編輯 /etc/udev/rules.d/70-persistent-net.rules
# vi /etc/udev/rules.d/70-persistent-net.rules
  1. # PCI device 0x8086:0x100e (e1000)  
  2. SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:64:f9:37", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"  
  3. # PCI device 0x8086:0x100e (e1000)  
  4. SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:64:f9:39", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"  

將 eth1 修改為 eth0,重新開機。

3) 編輯 /etc/sysconfig/network-scripts/ifcfg-eth0
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
將"HWADDR="參數修改成正確的 MAC Address,或刪除此參數,若沒有這個參數應該在上一個步驟重新開機後會自動啟動網卡。


4) 修改完成後,就可以順利啟動網卡。
# ifup eth0

方法二
1) 我們可以先用下列指令查看系統目前抓到哪幾張網卡
# cat /proc/net/dev
 Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
eth1: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

這裡可以發現網卡代號已經變成 eth1

2) 編輯 /etc/sysconfig/network-scripts/ifcfg-eth0
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
  1. DEVICE=eth0 -> 修改為 DEVICE=eth1  
  2. HWADDR= -> 刪除或修改成正確的 MAC Address  
  3. ...  

3) 因為裝置名稱已變更,所以 ifcfg-eth0 也要跟著更名
# mv ifcfg-eth0 ifcfg-eth1

4) 修改完成後,就可以順利啟動網卡。
# ifup eth1


沒有留言:

張貼留言

[Git 常見問題] error: The following untracked working tree files would be overwritten by merge

  Source From  Here 方案1: // x -----删除忽略文件已经对 git 来说不识别的文件 // d -----删除未被添加到 git 的路径中的文件 // f -----强制运行 #   git clean -d -fx 方案2: 今天在服务器上  gi...