2014年7月25日

CentOS 6.x 網卡Mac Address 變更導至網卡未被啟用無法啟動

Linux 網卡Mac Address 變更導至網卡未被啟用無法啟動

你的電腦工作環境是什麼系統呢?應該也如同大部份的人不是Windows 環境就是 MAC 環境,至於在自己的電腦上想試著玩玩其他的OS (作業系統),最方便最省錢的方法也就是使用VM這種軟體工具,坊間的VM tools其實也不少,而我所採用的VMWare。

前陣子在VM上安裝了一個Linux系統,有一次電腦當掉強制把VM給終止,隔天開啟動電腦時,已經不能用網路連結此系統,看來是VM的網路裝置跑掉了,mac address 也不一樣了試著障礙排除吧!

(1) 在我安裝的Linux環境下,試著查查看網路設定是否跑掉。

# ifconfig - a






用這個指令來查系統上所有網卡設備,發現原先的eth0 變成eth2,而eth1 變成了eth3。

(2) 懷疑VM的網路裝置跑掉了,關閉VM看一下設定值是不是有異常,遺憾的是...沒看出什麼異動。



(3) 再重新啟動系統,再利用指令查找網卡的統計訊息


# cat /proc/net/dev


這裡可以發現網卡代號真的不是原來的eth0 跟 eth1

(4) 編輯 /etc/udev/rules.d/70-persistent-net.rules


網路卡設備的內容會記錄在 /etc/udev/rules.d/70-persistent-net.rules
# vi /etc/udev/rules.d/70-persistent-net.rules


發現除了之前的eth0 eth1 之外還多出了兩個 eth2 跟 eth3
eth2 & eth3 網卡的mac address才是正確的,應該將eth0的address 改為eth2的address,應該將eth3的address 改為eth2的address
再把eth2 & eth3 的設定刪除



另一個解決方法:當我們使用備份功能將系統複製到新的硬體上之後,會因為新網卡的 MAC address 與 70-persistent-net.rules 內的 MAC address 不相同,導致網路卡未被啟用、網路無法連線。 此時,只需要刪除 70-persistent-net.rules ,再重開機,讓系統重新產生 70-persistent-net.rules。(未測試過,資料來源 - http://blog.roodo.com/rocksaying/archives/11777065.html )

(5) 編輯 /etc/sysconfig/network-scripts/ifcfg-eth0


# vi /etc/sysconfig/network-scripts/ifcfg-eth0



將"HWADDR="參數修改成正確的 MAC Address,或刪除此參數,若沒有這個參數應該在上一個步驟重新開機後會自動啟動網卡。

(6) 修改完成後,啟動網卡。

# ifup eth0


似乎無法順利啟動
試著將網路重新啟動

# /etc/init.d/network retstart
無法重新啟動網路

(7) 用最後一招 重新啟動server


# reboot

檢查一下網路設定

# ifconfig -a




解決的方法不只一種,請多方嘗試找到最佳方法,會更省時省力。