再加上之前遇到一個問題就是網絡介面卡的順序,不知道系統是怎麼偵測的,常常在開關機後順序大亂,寫信詢問 RedHat 他們建議我們可以使用 udev.來為每個裝置個別命名.其實概念很簡單先找出目前的網路卡順序.
[root@benjr ~]#
cat /etc/moprobe.conf alias eth0 tg3 alias eth1 e1000e alias eth2 e1000e |
目前我的網卡分別是 Broadcom - eth0 , Intel - eth1/eth2 3(eth0/eth1/eth2)個埠.接下來看一下 eth0 在 udev 儲存了哪些資訊.可以使用指令 "udevinfo" 查看.
[root@benjr ~]#
udevinfo -ap /sys/class/net/eth0
Udevinfo starts with the device specified by the devpath and then looking at device '/class/net/eth0': looking at parent device '/devices/pci0000:00/0000:00:1c.1/0000:03:00.0': looking at parent device '/devices/pci0000:00/0000:00:1c.1': looking at parent device '/devices/pci0000:00': |
udev 可以依據裝置特性來個別命名,也就是說剛剛的 eth0 MAC 為 "00:1a:64:22:04:83" 我們就可以依據這個裝置所提供的資訊來個別命名我們網路卡.udev 的設定檔存放在 /etc/udev/rules.d/ 系統已經有一個是專門為網路卡預設的檔案 "60-net.rules"
[root@benjr ~]#
cd /etc/udev/rules.d/ |
60-net.rules 式系統預設的 rule
[root@benjr rules.d]# ll total 248 -rw-r--r-- 1 root root 515 Sep 12 17:34 05-udev-early.rules -rw-r--r-- 1 root root 920 Dec 11 06:03 40-multipath.rules -rw-r--r-- 1 root root 15647 Sep 12 17:34 50-udev.rules -rw-r--r-- 1 root root 163 Dec 4 05:32 51-dlm.rules -rw-r--r-- 1 root root 471 Sep 12 17:34 51-hotplug.rules -rw-r--r-- 1 root root 58016 Oct 13 2006 60-libsane.rules -rw-r--r-- 1 root root 143 Nov 13 23:48 60-net.rules -rw-r--r-- 1 root root 1088 Jul 18 2006 60-pcmcia.rules -rw-r--r-- 1 root root 452 Nov 26 07:15 60-raw.rules -rw-r--r-- 1 root root 8209 Sep 22 22:39 60-wacom.rules -rw-r--r-- 1 root root 129 Sep 10 00:11 61-uinput-stddev.rules -rw-r--r-- 1 root root 214 Sep 10 00:11 61-uinput-wacom.rules -rw-r--r-- 1 root root 1823 Sep 19 06:20 85-pcscd_ccid.rules -rw-r--r-- 1 root root 114 Aug 29 2008 90-alsa.rules -rw-r--r-- 1 root root 61 Sep 12 17:34 90-dm.rules -rw-r--r-- 1 root root 82 Oct 10 21:20 90-hal.rules -rw-r--r-- 1 root root 331 Oct 15 00:08 90-ib.rules -rw-r--r-- 1 root root 107 Sep 12 17:34 95-pam-console.rules -rw-r--r-- 1 root root 292 Dec 10 03:27 98-kexec.rules -rw-r--r-- 1 root root 2319 Jul 9 2008 bluetooth.rules -rw-r--r-- 1 root root 590 Dec 19 02:16 xen-backend.rules |
好的我們現在就依 "udevinfo" 所提供的資訊進行裝置名稱改變,我會依據系統的 driver 和 PCI Bus 順序來為我的網卡命名.還記得 eth0 的資訊嗎?
ID=="0000:03:00.0"
DRIVER=="tg3"
其他 eth1 /eth2 都是使用同樣的方法 "udevinfo" 查出 ID 和 Driver
[root@benjr rules.d]#
vi 60-net.rules ACTION=="add", SUBSYSTEM=="net", IMPORT{program}="/lib/udev/rename_device" SUBSYSTEM=="net", RUN+="/etc/sysconfig/network-scripts/net.hotplug" DRIVER=="tg3", ID=="0000:03:00.0", NAME="BCM1" DRIVER=="e1000e", ID=="0000:09:00.0", NAME="INTEL0" DRIVER=="e1000e", ID=="0000:09:00.1", NAME="INTEL1" |
重新將模組移除和載入.
[root@benjr rules.d]# rmmod tg3 |
[root@benjr rules.d]#
rmmod e1000e |
[root@benjr rules.d]# modprobe tg3 |
[root@benjr rules.d]# modprobe e1000e |
[root@benjr rules.d]#
ifconfig -a|grep -i HWaddr BCM1 Link encap:Ethernet HWaddr 00:1A:64:22:04:83 INTEL0 Link encap:Ethernet HWaddr 00:15:17:78:5D:D6 INTEL1 Link encap:Ethernet HWaddr 00:15:17:78:5D:D7 virbr0 Link encap:Ethernet HWaddr 00:00:00:00:00:00 |
你會發現名稱都依據你的需求改變了. 當然方式是千千萬萬種你也可以依據 MAC Address 的方式作依據.
#KERNEL=="eth*", SYSFS{address}=="00:1a:64:22:04:83", NAME="BCM1"
不過工作還沒完成在 /etc/sysconfig/network-scripts/ 目錄下還是有之前儲存下來的裝置名稱,可以用手動方式移除修改或是用 #system-config-network 來修改!!
