Linux PCも壊れた・続

前回のつづきです。


ちょっと手こずりましたが*1マザーボードの換装を済ませました。
電源オン!と電源ボタンを押してみると、これまではGIGABYTEの「ペコッ」みたいな音がしていたんですが、ASUSだと甲高い「ピッ」という音がしました。そして、BIOS起動もスルスルと通過し、「Starting Up...」というあのOS起動中メッセージが。やった!と心の中で歓声をあげましたが、…喜ぶには早すぎた。
まだ黒いスクリーンの中「ディスプレイがどうこう」といったメッセージが表示され、そのままテキストログインになってしまいました。こんなはずは…と思って startx とか gdm start とか打ってみましたが、どれも失敗。仕方ないので、とりあえずOS起動後の習慣になっていた apt-get update をやってみたところ、これも失敗。ん?*2


どうも、ネットの接続が切れているようです。さあ、がんばりますか。
── この時点では、これがそこからまる三日かかる復旧作業の序章であることを、ぼくはまだ知る由もなかったのです……。


というわけでいつものように ping から入ります。
ping を打ってみる。→NG。やっぱり。
ifconfig を打ってみる。→loしか見えない。ん?
ifconfig -a にしてみる。→loとeth1が出てきました。-a 無しでeth1が見えなかったことからわかるように、eth1は使えない状態にあります。というか、なぜeth0でなくeth1…? ネットワークインターフェースとしては、一つ目がeth0、二つ目がeth1、…というようにネーミングされ、今回それが一個しかないのでeth0が見えるはずで、IPアドレス付与対象のeth0がなんでか無くなったためネットにつながらないのだ、ということまではわかりました。
何かおかしなことが起きている。というわけで、いつ何が起きたのかを確認するために dmesg を見てみると …どうも、OS起動時にeth0はいったんはあがるのですが、少ししてeth0からeth1にリネームされているようでした。なぜ?
理由がわからないので、スマホでググってみました。すると、ある英語のblogで*3「/etc/udev/rules.d/70-persistent-net.rulesが悪さをしている」という記述を発見。見てみるとたしかに、中でeth1へのリネームをしていました。マザーボード交換前にはそんなことなかったのに…。
対処法としては、削除して再起動すればよいとのことなので、さすがに削除は怖いのでちょっとどかして立ち上げ直してみたところ ……直りました! 当のファイルは再作成されており、中の記述は変わっていました。


というわけでネットにつながるようにはなりましたが、いまだCUIから抜けられず。
まずXorg.0.logを見てみました。すると、どうもgdmは起動しようとはしたもののセグメンテーションフォールトであえなく落ちてしまったようです。セグメンテーションフォールトはメモリの操作の失敗で起きるものであり、基本的にはメモリ処理のバグに起因します。でも、マザボ交換前にはそんなことなかったのになあ…。
とりあえず、バグと思ってドライバやモジュールの更新をしてみることに。調べたところ、それまでカーネルubuntu 10.04 LTS標準のバージョン2.6.32を使っていたのですが、あるPPAでより新しい2.6.38を配布しているそうです。これに変えるのがてっとり早いでしょう。add-apt-repository した後カーネル更新。更新自体はうまくいきました。いったのですが…
しかしGUIにならない状況は変わりませんでした。理由がわからないのでスマホでググってみると、ubuntuの公式マニュアル(?)に、最近のXではxorg.confはいらない、という記述を発見。えー、でも、マザボ交換前には(以下略)というわけで、さすがに削除は怖いので(以下略)……直りました。ようやく、待ちに待ったスプラッシュ画面が出てきました。


……と、ほっとしたのもつかの間、スプラッシュ画面がなんか変です。モニタはHDのワイド画面なのに、真ん中に圧縮されて5:4で映ってます。あれれ?
GUI画面がようやく出てきたので、モニタのインジケータから解像度を直してみようと思って開いてみたところ、…モニタの検出に失敗していました。そのため、デフォルトで定義された最大解像度の1280x1024で表示されていたのです。えー、でも、マザボ(以下略)天下のナナオ様なのに、FORIS FS2331なのに…。
実はこれの対処が一番時間がかかり、復旧も一番最後になってここでの記載が前後してしまうんですが、結論から言うと、AMDの出しているプロプライエタリドライバfglrxを導入したら直りました。
AMD謹製のLinux用ドライバといったら、上記のようなマニュアルがわざわざ用意されねばならないほど品質が低く、ぼくもこれまで何度も挑戦しては失敗を繰り返してきました。fglrxを入れたらOSがあがらなくなる。ぼくの中では、そんな方程式すらできあがっていたほどです。「最後の手」ということで禁断のfglrxに手を出してみたところ、今回はすんなり入ってしまいました。


話を戻して。画面があがってすぐに気づいたことがありました。こないだ買ったばかりのUSB3.0外付けHDD、日立TOURO DESK PRO 3TBが見えません。*4 えー、でも、(以下略)
ここまでにガッツンガッツンOSの強制リセットや再起動を繰り返したから、それで壊れちゃったのだろうか。ディスク・ユーティリティで見てみると、ディスクのぶら下がっているのは見えているようですが、容量が0になってました。dmesg 結果を見てもやはり「READ CAPACITY failed」と出ていました。
これは、いろいろ見た感じでは、どうもUSBについて最近のカーネルでバグの埋め込みがあったらしく、カーネル更新をしてしまったことが裏目に出たようです…。*5 このことはメンテナも知っているので、そのうち直るのだとは思いますが、せっかく買ったのにしばらくは使わずに眠らせておくことになるわけですね…。


GUI起動までですでに半日近い時間が経ち、日も暮れてしまいました。いい加減疲れ切っていました。
とりあえずネットにつなげて画面も見られるようになったことだし。気分転換にニコニコでも見るか。そう思ってアクセスしてみたところ、……映像は出るのに音が流れません。もうイヤ…(;w;)
いろいろ引っかき回した結果、ローカルに保存しているFLVファイル(Flash動画ファイル)はTotemメディアプレイヤーで再生できるんですが、ブラウザ上では、つまりFlashPlayerPluginではYouTubeニコニコ動画も音が出なくなるようです。
これは、ググった中で見かけた下記の事情に関係がありそうです。

というわけで、これを起点にしていろいろ調べてみたところ、以下に解決策がありました。でも、(以下

これには余祿もありまして。
fglrxを入れたところ、HD Audioが効くようになりました。*6 ニコニコを見ていただけだったんですが、fglrx導入後急に音が大きくクリアになり、低音がはっきり重く、3次元的な広がりを感じるようになりました。ただ、その副作用なのか、プチプチノイズが入るようになり… これもいろいろ調べて、とりあえずRealTekから最新のALSAドライバをダウンロード、導入したところ出なくなりました。
── ここまで、外付けHDDが使えなくなった以外はようやくマザボ交換前の状況を取り戻し、CPUやマザボを新しくしたことの恩恵を微妙に感じることができるようになりました。長かった……


たかがマザーボード交換で、ここまで深刻にトラブるとは思ってもみませんでした。
ハード面でもソフト面でも、いろいろと「新しく」してしまったことが、すべての引き金を引いてしまったのだと思います。まあでも、こんなにトラブるのは、やはりLinuxだからなのでしょうね… Windowsでちょっとハード入れ替えたぐらいでこんなにおかしくなった経験はありませんし……。

*1:マザーボード上の内蔵SATAの口がケース内部のHDDを保持する金具と干渉し、SATAケーブルを差すのがなかなかうまくいかなかったです。ATXマザボだからすんなりミドルタワーに収まってくれるだろう、と思ったのが失敗でした。Llano APUのマザボの主流はマイクロATXで、わざわざATXを買う必要は無かったんですが、「どうせ買うなら…」という心のささやきに負けてしまいました。

*2:startx と gdm start はCUIからGUIを起動するコマンドです。apt-get update はソフト一覧を更新するという、ソフト更新の準備のためのコマンド。あとで出てくる dmesg というのはOS起動時のログを表示するコマンドです。デバイスの初期化とか、サービスの起動のときの状況がわかります。

*3:こういう情報はたいてい英語です。新しかったり専門的だったりすればするほど。仕事上でも、国内でつくっているベンダの無いソフトのマニュアルは英語のままですし、これは実体験ですが、開発中のトラブルでテクニカルサポートに質問をしたところ、本国の技術者の英語の回答がそのまま横流しされてきたことがあります、OracleIBMで。読めるからいいものの、お金払ってサポート契約結んでるのにこれは無いんじゃないの、日本の会社もちょっとは仕事してよ…と思いました(^^;

*4:HDD価格暴騰前に買えてよかったですが、使えなければ意味がありません…

*5:いちおう2.6.32のカーネルは残してあり、grubでの切り替えも可能です。というか、このおかげで、07.10→08.04 LTS→10.04 LTSとバージョンアップしてきたぼくのPCにはgrub2が入っていなかったことがわかり、今回あわせて導入しました。

*6:どんな関係があるのか、なぜそうなったのか、このへんの事情に疎い自分にはよくわかりませんが。モニタに限らず、デバイス全般がきちんと認識されてなかったということなんですかね。