[RHEL5.2] 起動時にNICが認識されない場合の対処
2009/02/25
RHEL5.2環境でbondingを組んでいるのだが、起動時に下記メッセージが表示され、対象のデバイスが利用できないという問題が発生した。
インターフェイス bond1 を活性化中: デバイス eth2 は存在しないようですので、初期化を遅らせます
[OK]
上記メッセージではeth2であるが、eth4であったり、が出なかったりし、規則性は見出せなかった。
環境
- Red Hat Enterprise Linux 5.2/x86_64
- eth0,1: Broadcom NetXtreme II BCM5708 Gigabit Ethernet
- eth2,3,4,5: Intel 82571EB Gigabit Ethernet Controller
- bond0: Active-Backup, eth0+eth2
- bond1: Active-Backup, eth1+eth3+eth4
調査
環境を確認する
lspciを実行し、NICに関する情報を収集
#lspci | grep Ether 03:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet (rev 12) 05:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet (rev 12) 10:00.0 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (Copper) (rev 06) 10:00.1 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (Copper) (rev 06) 11:00.0 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (Copper) (rev 06) 11:00.1 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (Copper) (rev 06)
モジュールを確認
以下はドライバをインストールした際などに自動的に設定された。
# cat /etc/modprobe.conf alias eth0 e1000 alias eth1 e1000e alias eth2 e1000 alias eth3 e1000 alias eth4 e1000e alias eth5 e1000 (以下略)
対処
本環境では/etc/sysconfig/network-script/ifcfg-ethXにてMACアドレスとethXの対応付けが行われているので以下の様になっている。対応付けが正しくされていない場合にもこのエラーが出る為、まずは意図した割り当てがされるかどうかを確認すること。
alias | NIC |
---|---|
eth0 | Broadcom BCM5708 Port1 |
eth1 | Broadcom BCM5708 Port2 |
eth2 | Intel 82571EB Port1 |
eth3 | Intel 82571EB Port2 |
eth4 | Intel 82571EB Port3 |
eth5 | Intel 82571EB Port4 |
次に、Broadcom BCM5708にe1000及びe1000eドライバを組み込むことが指定されているが、bnx2が正しく、Intel 82571EBにはe1000ではなくe1000eが正しい。このあたりの不整合が原因でエラーが発生しているものと考えられる。
よって、modprobe.confを以下のように編集
alias eth0 bnx2 alias eth1 bnx2 alias eth2 e1000e alias eth3 e1000e alias eth4 e1000e alias eth5 e1000e
再起動して、エラーが発生しないことを確認。
bonding環境で改善されない場合
bonding設定が誤っている可能性があるため、別記事「[CentOS] ボンディングを構成する」を参照。