Linux--更改網卡的MAC後,無法啟用網路


在VirualBox Clone時,有勾選重新取得MAC,所以開機後網路無法使用。


先找出開機時網卡的訊息
# dmesg |grep eth
Device eth0 does not seem to be present, delaying initialization.
e1000 0000:00:03.0: eth0: (PCI:33MHz:32-bit) 08:00:27:b3:49:5b
e1000 0000:00:03.0: eth0: Intel(R) PRO/1000 Network Connection
udev: renamed network interface eth0 to eth4
記錄網卡MAC的位址:08:00:27:b3:49:5b,並且發現eth0已經被更改為eth4

修改/etc/sysconfig/network-scripts/ifcfg-eth0
將DEVICE修改為eth4;將HWADDR修改為08:00:27:b3:49:5b
最後的內容如下:
DEVICE=eth4
TYPE=Ethernet
HWADDR=08:00:27:b3:49:5b
ONBOOT=yes
USERCTL=no
IPADDR=192.168.56.202
DNS2=192.168.56.1
BOOTPROTO=none
GATEWAY=192.168.56.1
DNS1=192.168.56.202
NM_CONTROLLED=yes

再啟用網卡eth4就可以了
# ifup eth4

至於為什麼eth0會被改名成eth4,因為udev的規則有重覆的現象。
# cat /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:55:25:4d", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:b3:49:5b", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth4"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:b3:49:5b", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
由內容可以得知,eth0的MAC(08:00:27:55:25:9d)是原本舊有的網卡,
所以只要留下最後一行的設定,其餘兩行都刪除就可以讓新的網卡使用eth0。
注意ifcfg-eth0檔案內容的DEVICE就要改為eth0,而不是eth4。