Tommy 碎碎念

Tommy Wu's blog

« 上一篇 | 下一篇 »

在 Debian 中如果更改網卡的順序呢?
post by tommy @ 07 三月, 2006 10:15
上個月, 把 udev 裝上使用, 結果... 原本順序正常的網卡, 在重開機後, 居然沒有按照我之前所寫的載入順序來啟用, 造成網卡編號與我之前的不同, 結果... 別的機器就再也連不上了.

原本還以為我的機器又壞了一台, 還好昨天由國外回到家一看, 機器還活的好好的, 只是網卡的順序不對, 所以 ip 位置與所接線路都沒配對, 當然連不上了.

在之前, 我只要在 /etc/modules 中依序寫入我的網卡驅動程式, 系統在開機時, 會依照我寫的順序來載入驅動程式, 自然先載入的就是 eth0 等依此類推. 不過, 我發現在使用 udev 之後, 由於在 Debian 中, udev 的載入會在處理 /etc/modules 之前, 所有機器上的設備, 會自動在那時候被載入, 而順序... 不知道由那兒設定, 在 /etc/udev 的目錄下頭又看不出來,  總之, 會在 /etc/modules 的處理之前.

後來看到一篇文章上頭有寫到如何在 udev 中改名, 先建一個 /etc/udev/eth.rules 如下:

KERNEL="eth*", SYSFS{address}="00:11:22:33:44:55", NAME="eth_int"
KERNEL="eth*", SYSFS{address}="00:11:22:33:44:56", NAME="eth_ext"
KERNEL="eth*", SYSFS{address}="00:11:22:33:44:57", NAME="eth_dmz"

然後在 /etc/udev/rules.d 中建一個 soft link 到這個檔案就可以把網卡依照你所指定的 mac address 來改名.

不過, 後來發現, 因為原本就是使用 eth0, eth1, eth2 這個名稱, 而這個改名的動作, 並無法將 eth0 改成 eth1, eth1 改成 eth2... 等等改成已經存在的名稱. 如果你要改後續所有的相關網路設定, 使用新的網卡名稱, 就可以全部改成別的名字來使用. 不過... 我就是不想改那些設定. 有點麻煩.

查詢了相關的文章, 發現還有 ifrename 這個程式可以改名. 可以在 /etc/iftab 中設定:

eth0    mac 00:0e:0c:35:e3:f6
eth1 mac 00:d0:b7:40:88:f3
eth2 mac 00:d0:b7:40:86:72
eth3 mac 00:e0:18:0b:83:3e

一樣會依照 mac address 來改名. 但是, 有一樣的問題... 不能改成已存在的名稱.

所以... 山不轉路轉, 為了使用這些原本的檔名. 我就先在 udev 中改成別的名字, 然後在 ifrename 中再改回 eth0 之類的名字. 或執行 ifrenam 兩次, 指定不同的 iftab 檔案, 果然, 可以改成我要的名字.


2006/08/28: 後來發現, 在 ifrename 中, 有一個 -t 參數, 可以在 kernel 2.6.x 中, 就算網卡名稱有重覆, 可以直接置換網卡名稱. 不需要再執行兩次了.

 

Del.icio.us Furl HEMiDEMi Technorati MyShare
迴響
暱稱:
標題:
個人網頁:
電子郵件:
authimage

迴響

  

Bad Behavior 已經阻擋了 47 個過去 7 天試圖闖關的垃圾迴響與引用。
Power by LifeType. Template design by JamesHuang. Valid XHTML and CSS