ここに書く話は、本当に些細なことである。 この情報が役に立つ人などほとんどいないだろうが、 メモとして書くことにする。
しかしながら、起動後にログインして、 "/etc/init.d/network start" とすると、ネットワークは正常に起動する。 これは、なぜであろうかと調べてみたのが今回の話である。
結論から書くと、"/etc/sysconfig/network-scripts/ifcfg-*"のファイル内に、
NM_CONTROLLED=no
という記述が無かったのが、このトラブルの理由である。
この記述を加えた後は、通常通りの速さで起動し、 起動時よりネットワークが利用できる状態となっている。
fedora 15では、従来のSysV init系ではなく、 systemdにより各種デーモン等が起動されている。 もちろん、従来のSysV init系の記述が無くなったわけではなく、 systemd経由でrc?.d以下のスクリプトが順次起動される。
おそらく今回問題となったのは、SysV init系で起動される"network"と、 systemdで起動されるdbus-daemonの順序と思われる。 私のfedora 15では、networkが先でdbus-daemonは後である。
networkは内部でifcfg-lo等を読み込みながら ネットワークの設定を行うのだが、 先のNM_CONTROLLEDがnoでないときには、 nmcliと言うコマンドを使って問い合わせを行う。
このnmcliが、おそらくdbusを使っており、 dbus-damemonが動いていない場合、 黙り込んで戻ってこないようなのである。
すると、設定が進まないままnetworkは止まってしまう。 5分経ってsystemdに中断されて、OSは立ち上がるものの、 ネットワークは使えない状態のままと言うことになるのである。
ifcfg-*の中でNM_CONTROLLEDがnoであるなら、 nmcliによる問い合わせが行われないため、 dbus-daemonが動作していなくても問題なく設定が先に進み、 ネットワークが使える状態となるのである。
ここで書いた原因の詳細は、 たぶんこうだろうという当て推量となっている。 だから、別のもっとスマートな解決法もあるのかも知れない。
また、fedora 15もクリーンインストールすれば、 ここに書いた問題にあたることも無いのであろう。