« 日本最大級?の恐竜が発見される | メイン | 第25回次世代ワールドホビーフェア »

cdrom open failed

久々にプログラム書こうと思って、試験機になり下がったLigerzeroを立ち上げてみる。途中でTelnetが切れる。HUBを見るとランプが点いてねぇ。

頑丈な不治痛の業務機でしたが、LANポートの接点が折損しかかってるらしく、折角インテルチップなのに、殺して拡張ボードをさしてそちらに繋ぎ変えて解決。

改めてsyslogを眺めていると 

kernel: cdrom: open failed.
kernel: cdrom: open failed.

というエラーメッセージが延々と流れている。
なんじゃこれはと、Decaltoのsyslogも確認したが特にそんなものは無い。CentOSとScientific Linuxという差はあるんだけど、ほとんど同じものなのに。

ググッても中々出てこないが、

udevデーモンが関わってくるらしい。
CD-ROMがマウントされていれば消える→読めないからopen failed。

ということまでは解った。

udevは「不変なデバイス名付けを用いて,ユーザスペースで /dev ディレクトリを動的に提供するための方法を提供する」…、なんか難しいが、USBデバイス等を装着した時に、毎回デバイス名が変わって困るぜを解決する。実はWindowsはこの様になっている。以前装着したUSBデバイスが、決まったドライブレターにマウントされるのはこのためで、色々なHDDを交換しまくったりするとレジストリが膨れ上がる原因にもなっている。

今回は、CD-ROMが入っているかのチェックをとりあえず止めさせたいので

/etc/hal/hald.conf

を開いて

<storage_media_check_enabled>false</storage_media_check_enabled>

と書き換える(trueになっているはず)。
再起動でこの現象は止んだ。