前不久我剛升級電腦配備,用的是技嘉GA-M56S-S3這塊板子,晶片是Nvidia nForce 560,內建的網路卡是MCP65。安裝Ubuntu7.10後,所有硬體設備都能正常運作,上網也沒有問題,而且可能因為升級的關係,在沒有關掉ipv6的情況下,讀取網頁的速度甚至比之前快上許多。
不過昨天我發現一個不大也不小的問題,就是在我的Ubuntu系統中,網卡的MAC位址居然每次開機都不一樣,原本應該只有一張網卡eth0,但隨著每一次開機就會多產生一張新的網卡,所以到昨天為止eth的數字已經從0增加到eth71,那就代表我從系統重灌好後已經開機七十多次了。說這個問題不大是因為上網一切正常,開機過程也不會產生任何錯誤訊息;但這個問題也不小,因為每次開機後的MAC位址都不同,我就不能在IP分享器裡設定固定IP給我的電腦,所以也不能針對我的電腦開啟特定的port養動物或什麼的。
上Ubuntu官網搜尋一下解決的方法,果不其然,不是只有我有這個問題,目前暫時可行的解決方式如下:
打開/etc/udev/rules.d/70-persistent-net.rules
sudo gedit /etc/udev/rules.d/70-persistent-net.rules |
在這個檔案裡會有一大串不斷重覆的網卡ethXX(XX表數字),請刪除多餘的網卡,只留下類似如下這行eth0:
# PCI device 0x10de:0x0450 (forcedeth) SUBSYSTEM=="net", DRIVERS=="?*",ATTRS{address}=="af:52:de:7d:1d:00", NAME="eth0" |
請注意其中這一段:
ATTRS{address}=="af:52:de:7d:1d:00" |
其中的MAC位址跟真正的位址可能是相反過來的,待會兒會用另外一種抓取網卡的方式來取代它。
先找出網卡的BUS位址,下指令:
lspci |
在跑出來的一大堆訊息中,找到類似如下幾行:
1 2 3 | 00:02.1 USB Controller: nVidia Corporation MCP65 USB Controller (rev a3) 00:06.0 Ethernet controller: nVidia Corporation MCP65 Ethernet (rev a3) 00:07.0 Audio device: nVidia Corporation MCP65 High Definition Audio (rev a1) |
我們需要的就是Ethernet controller前面那個數字:0000:00:06.0(這裡會因不同情況會有不同數值)
把這個數值回填到剛剛提到需要修改的地方,改好後像這樣:
# PCI device 0x10de:0x0450 (forcedeth) SUBSYSTEM=="net", DRIVERS=="?*", ID=="0000:00:06.0", NAME="eth0" |
以上動作會解決不斷產生新網卡的問題,接下來還要再將網卡的MAC位址給固定下來,打開檔案:
sudo gedit /etc/network/interfaces |
將檔案內容寫成如下:
1 2 3 4 5 6 | auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp pre-up ifconfig eth0 hw ether 00:1d:7d:de:52:af |
其中00:1d:7d:de:52:af這段,請自行更改為網卡真實的MAC位址。
重新開機,收工!