三台硬件一样的机器,板载一个网卡,主板pci上插了一块网卡。
两台装了桌面版A,B,一台C是server版本。
A,B上在Gnome上的图形管理界面中总识别出来是eth2,和eth3。而且每次启动的时候,两块网卡的顺序会换一下。这两块网卡,配置的是不同网段的机器,这让实际工作中碰到了很大的问题。现在每次启动一下就要去换一下网线。
从dmesg |grep eth 看:
dmesg |grep eth
[4294671.526000] Driver 'sd' needs updating - please use bus_type methods
[4294684.228000] eth0: RealTek RTL8139 at 0xf8962100, 00:16:76:80:08:34, IRQ 177
[4294684.228000] eth0: Identified 8139 chip type 'RTL-8101'
[4294684.229000] eth1: RealTek RTL8139 at 0xf8964000, 00:e0:4c:26:da:d6, IRQ 217
[4294684.229000] eth1: Identified 8139 chip type 'RTL-8139C'
[4294684.642000] eth2: link up, 100Mbps, full-duplex, lpa 0x41E1
[4294685.125000] eth3: link up, 100Mbps, full-duplex, lpa 0x41E1
[4294700.674000] hda-intel: Invalid position buffer, using LPIB read method instead.
[4294707.620000] eth3: no IPv6 routers present
[4294708.422000] eth2: no IPv6 routers present
[4295614.052000] eth3: link down
[4295615.632000] eth2: link down
[4295617.281000] eth3: link up, 100Mbps, full-duplex, lpa 0x41E1
[4295619.571000] eth2: link up, 100Mbps, full-duplex, lpa 0x41E1
而服务器C (只插了一根网线)上 dmsg |grep eth 看到的情况是:
[42949378.250000] Driver 'sd' needs updating - please use bus_type methods
[42949385.220000] eth0: RealTek RTL8139 at 0xf88ac100, 00:16:76:80:07:a5, IRQ 11
[42949385.220000] eth0: Identified 8139 chip type 'RTL-8101'
[42949385.220000] eth1: RealTek RTL8139 at 0xf88ee000, 00:e0:4c:20:e0:95, IRQ 11
[42949385.220000] eth1: Identified 8139 chip type 'RTL-8139C'
[42949385.490000] eth0: link up, 100Mbps, full-duplex, lpa 0x41E1
[42949405.920000] eth0: no IPv6 routers present
尝试使用在 /etc/network/interfaces 的map命令来解决。但未果。
map eth0 到abc,然后在命令行下 ifup abc 结果说没有abc这个driver。
两块网卡启动后顺序混乱的问题,百思不得其解。
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
-
- 帖子: 47
- 注册时间: 2005-12-07 21:42
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
-
- 帖子: 47
- 注册时间: 2005-12-07 21:42
-
- 帖子: 47
- 注册时间: 2005-12-07 21:42
在linuxsir问过,找到原因了
我这三台机器,一台原装,两台ghost安装的。
所以/etc/iftab的eth0,eth1都写的是第一台机器上的mac地址的。
结果A,B启动的时候,因为eth0,eth1都指定了,就自动顺延取名为eth2,eth3了。
顺延的时候,顺序就不能保证了。修改一下这个文件,换成自己机器上的MAC地址。
现在全部OK了。
所以/etc/iftab的eth0,eth1都写的是第一台机器上的mac地址的。
结果A,B启动的时候,因为eth0,eth1都指定了,就自动顺延取名为eth2,eth3了。
顺延的时候,顺序就不能保证了。修改一下这个文件,换成自己机器上的MAC地址。
现在全部OK了。
-
- 帖子: 3
- 注册时间: 2007-09-12 8:55
多个同类型设备(网卡,声卡)每次启动的都不同
因为udev同时加载所有模块,所以一些设备可能初始化顺序不同。例如同时有两个网卡时,它们总是在eth0和eth1之间变来变去。
常用的解决办法是在您的rc.conf文件中通过修改MODULES队列来指明顺序。这个队列里的模块将在udev自动加载之前由系统加载,因此您可以控制模块在启动时加载顺序。
# 在e100之前加载8139too
MODULES=(8139too e100)另一个解决网卡的方法是使用udev-sanctified方法为每个网卡静态命名。创建文件/etc/udev/rules.d/10-network.rules然后将不同的网卡通过MAC地址绑定到不同的名字上:
SUBSYSTEM=="net", SYSFS{address}=="aa:bb:cc:dd:ee:ff", NAME="lan0"
SUBSYSTEM=="net", SYSFS{address}=="ff:ee:dd:cc:bb:aa", NAME="wlan0"同时,您需要注意以下内容:
您可以通过下面的命令获得网卡的MAC地址:: udevinfo -a -p /sys/class/net/<你的网卡>
注意在udev规则文件中使用小写的16进制MAC地址,因为udev无法识别大写的MAC地址。
一些用户在使用旧的命名方式时出现问题,例如: eth0, eth1, 等等. 如果出现这个问题,试试使用 "lan"或者"wlan"之类的名字.
注意不要忘记修改您的/dec/rc.conf和其它使用ethX命名的配置文件。
因为udev同时加载所有模块,所以一些设备可能初始化顺序不同。例如同时有两个网卡时,它们总是在eth0和eth1之间变来变去。
常用的解决办法是在您的rc.conf文件中通过修改MODULES队列来指明顺序。这个队列里的模块将在udev自动加载之前由系统加载,因此您可以控制模块在启动时加载顺序。
# 在e100之前加载8139too
MODULES=(8139too e100)另一个解决网卡的方法是使用udev-sanctified方法为每个网卡静态命名。创建文件/etc/udev/rules.d/10-network.rules然后将不同的网卡通过MAC地址绑定到不同的名字上:
SUBSYSTEM=="net", SYSFS{address}=="aa:bb:cc:dd:ee:ff", NAME="lan0"
SUBSYSTEM=="net", SYSFS{address}=="ff:ee:dd:cc:bb:aa", NAME="wlan0"同时,您需要注意以下内容:
您可以通过下面的命令获得网卡的MAC地址:: udevinfo -a -p /sys/class/net/<你的网卡>
注意在udev规则文件中使用小写的16进制MAC地址,因为udev无法识别大写的MAC地址。
一些用户在使用旧的命名方式时出现问题,例如: eth0, eth1, 等等. 如果出现这个问题,试试使用 "lan"或者"wlan"之类的名字.
注意不要忘记修改您的/dec/rc.conf和其它使用ethX命名的配置文件。
-
- 帖子: 3
- 注册时间: 2007-09-12 8:55
debian 的修改文件在
/etc/udev/rules.d/z25_persistent-net.rules
文件内容如下:
# This file was automatically generated by the /lib/udev/write_net_rules
# program, probably run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.
# MAC addresses must be written in lowercase.
# PCI device 0x8086:0x2449 (e100)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:20:ed
36:7f", NAME="eth0"
# PCI device 0x10b7:0x9055 (3c59x)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:01:02:98:82:91", NAME="eth1"
/etc/udev/rules.d/z25_persistent-net.rules
文件内容如下:
# This file was automatically generated by the /lib/udev/write_net_rules
# program, probably run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.
# MAC addresses must be written in lowercase.
# PCI device 0x8086:0x2449 (e100)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:20:ed
# PCI device 0x10b7:0x9055 (3c59x)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:01:02:98:82:91", NAME="eth1"