biosdevname

毎度お馴染みNTT-X Storeから調達したDELL Power Edge T320(P14032500350W)にubuntu 13.04をインストールしたところ、オンボードNICがeth0/1ではなくem1/2となっているのに気付いた。

ちょっと戸惑ったものの、ethN(N:0~)の代わりにemN(N:1~)というインタフェース名が付与されているという風に読み替えていけば大きな問題は無いので、Broadcom用tg3ドライバの特性と判断。

ところが再起動時にブリッジインタフェースが起動しない事に困ったので「インタフェース名の問題かも?」と思って調べてみたところ、

RHEL6 SP1 に対応する Dell PowerEdge サーバにインストールすると、新しいネットワークインターフェイス名は、内蔵インターフェイスにこれまで付けられていた ethN という名前ではなく、 emN( (em1、em2、..) となります。 PCI アドインネットワークインターフェイスの場合、名前は次のようになります: pXpY( (p<slotスロット番号>p<ポート番号> - p1p1、, p1p2、, ..) 新しい命名スキームでは、サーバシャーシのラベルの通りに、em1 は 「Gb1」 ( (em2は「Gb2」)) としてマップされるので、ネットワークインターフェイスをより楽に、かつ効率的に管理できます。 p1p2 という形式の名前から、アドオンカードのネットワークポートを容易に特定できます。

という内容で、Dell発案の「biosdevname」という新しい命名スキームによるものである事が解った。

新しい命名スキームを無効にするには、カーネルのコマンドラインパラメーターとして 「biosdevname=0」 を渡せば良いという事だ。

インストール時にkernel bootオプション指定しても良いし、インストール後は /etc/default/grubGRUB_CMDLINE_LINUX_DEFAULT

# GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
**GRUB_CMDLINE_LINUX_DEFAULT**="nosplash biosdevname=0"
GRUB_CMDLINE_LINUX=""

と追記して、

$ sudo update-grub2

として(再起動して)おけば良い。

再起動時にブリッジインタフェースが起動しなかった問題は、/etc/network/interfacesの bridge_ports の**’s’**が消えて bridge_port になっていた…という情けない話だったよ。

参照

Dell コミュニティ http://ja.community.dell.com/