这是一个奇怪的问题。
我们有一些双网卡主板的设备。 一些是Realtek网卡,这吸吮。 一些是英特尔e1000s,不。
我刚刚注意到在两台机器上,一台是Intel网卡,一个是Realtek,当我把一台机器的MAC地址放到我们DHCP服务器上的dhcpd.conf文件中,让它通过PXE启动机器进入重build环境,最初一切都很好。
服务器获取DHCP分配,PXE引导到Ubuntu预先设置的环境中。
在一台或两台机器上,它可以达到Ubuntu的DHCPnetworkingconfiguration,并且失败。 如果我拔出一个busybox shell(在安装机上的tty2上),并运行ip link ,我可以看到在另一个 NIC上设置了UP标志。
这是一些东西。
host xeon16-ghz240-gb48-node1 { hardware ethernet BC:AE:C5:07:1F:18; filename "pxelinux.0"; next-server 192.168.123.80; }
这就是dhcpd.conf
这是邪恶机器上的ip连结。 
实际上只有一个NIC被连接(故意)。
正如你所看到的那样,dhcpdconfiguration中的网卡没有标记为UP,而是UP的链接不是DHCP中的那个。
到目前为止,我已经看到了这两个品牌的双网卡configuration。
有没有人知道1)是什么原因造成的?b)我们能做些什么?
总是有不止一种方法来做任何事情:)
各有一个主板?
黑名单无论哪个模块( ethtool -i eth0 )支持Realtek卡。
Ubuntu 支持 module_name.blacklist=yes在启动时将其列入黑名单,并且您应该能够在预定义的环境中更改modprobe选项,以便稍后不再进行探测。
让我重新解释一下这个问题:
我们有两块网卡的主板,无论插入哪个接口,我们都希望它们一直工作。我们不能总是确定哪个接口(从操作系统的angular度来看)将被插入。
build立联结! 使用两个接口作为从站的主动 – 被动configuration( mode=active-backup miimon=100 )。 这样,无论插入哪个接口,它都将始终工作。
主板是否足够一致,以至于NIC始终显示在相同的PCI ID上? 使用udev规则始终将特定PCI地址上的卡分配给eth0,将另一个地址上的卡分配给eth1。
请注意,你可以有两个不同的udev规则来分配一个设备到eth0–这允许你同时处理Realtek和e1000的情况。
您可以尝试将PXELINUX IPAPPEND 2选项添加到您的pxelinux.cfg文件,以告诉init脚本使用进行PXE引导的界面:
/var/lib/tftpboot/pxelinux.cfg/default
LABEL linux KERNEL /ubuntu/casper/vmlinuz APPEND initrd=/ubuntu/casper/initrd.gz root=/dev/nfs boot=casper netboot=nfs nfsroot=192.168.1.1:/var/lib/tftpboot/ubuntu -- IPAPPEND 2
请参阅: http : //www.syslinux.org/wiki/index.php/SYSLINUX#IPAPPEND_flag_val_.5BPXELINUX_only.5D