Ubuntu 12.10における幾つかのメモ(ネットワークインターフェース名関係)
ネットワークインターフェースの名前が変わった?
手元の環境では、OSのバージョンが上がったときにKVMを使用して実ディスク(仮想でない実際のディスク)にOSをインストールしているのだが、インストール後、KVMの中でOSを起動すると問題なく通信ができるのだが、実ディスクから起動すると、ネットワークインターフェースが見つからず、起動にも時間がかかってしまうという状況になった。
dmesgなどの出力を見るとネットワークインターフェースのドライバは正常に読み込まれていることが確認できたが、/sys/class/net/以下を見ると
$ ls /sys/class/net/ lo p10p1
見慣れない名前があり、試しにこれまで「eth0」だったものを「p10p1」として手動でネットワーク設定(詳細は略)を行ったところ通信が正常に行えることを確認できたため、Debian系ディストリのネットワークインターフェースの設定ファイル/etc/network/interfacesの中の
[引用]ファイル名: /etc/network/interfaces より
auto eth0 iface eth0 inet dhcp
の「eth0」の部分を「p10p1」に置き換えて
[一部]ファイル名: /etc/network/interfaces
auto p10p1 iface p10p1 inet dhcp
という内容にして再起動したところ、(上記ファイルを用いた自動ネットワーク設定で)正常に動作するようになった。
IPアドレスを固定にする場合は上の部分の代わりに下のように記述する。
[一部]ファイル名: /etc/network/interfaces
auto p10p1 iface p10p1 inet static address [IPアドレス] netmask [ネットマスク] gateway [ゲートウェイのIPアドレス] dns-nameservers [DNSサーバのIPアドレス...]
ハードウェア環境によっては「p10p1」の代わりに「p3p1」などの名前になる(数字部分の値が異なる)場合もあるようだ。
関連:ネットワークインターフェース名の付け方を従来の形にする
このような名前はbiosdevnameというソフトウェアによって自動的に付けられているが、カーネルの起動時の引数に「biosdevname=0」を指定することでこれを無効化して(「eth0」などの)従来の名前の付け方にすることができる。
Ubuntuでは
gksudo xdg-open /etc/default/grub
などで/etc/default/grubを管理者権限で開き
GRUB_CMDLINE_LINUX="[追加の引数]"
の行の「"」で囲まれた部分に「biosdevname=0」を追加(既に何かを記述している場合は半角スペースで区切って付け加える)して上書き保存してからエディタを終了し
gksudo update-grub
を実行すると、次回起動時から従来の名前の付け方になる。その場合、/etc/network/interfacesは「p10p1」のような形ではなく「eth0」のような形の名前で記述することになる。