< PrevIndexNext >
initrdを作ってみる

2015年04月29日

 そもそもは、synapticで全アップデートをかけた時に、plymouthがエラーになるのが気になっていた。先日ちゃんとダイアログを読んでみたら、sdbが無いからスクリプトエラーになるらしい。PCLOSをいじっていると時々ブート関連でsdbが無いだのsdaが無いだの言われる。再インストールすれば解決するのは分かっているがそれじゃつまらない。何かやってみよう。initrdはどうだろう。initrdは、実際のシステム立ち上げの準備をするための、各種ドライバを抱え込んだ仮OSだと理解している。起動時のいわゆるスプラッシュ画面はinitrdに含まれるツールが出しているのではないかと思うが、そういうことも含めて、GRUBとinitrd周辺の理解が不足している自信がある。いっぺんinitrdをいじってみることにした。

 まずはざっと調べて、initrdを作るにはdepmodとmkinitrdを実行すればいい、という、とても大雑把な理解を得る。少し前のカーネル3.15.7が/boot/にあったのでこれで試すことにした。 まず #depmod は十数秒ほどHDDがカリカリしたあと特にメッセージを出さずに終了。何をしたのか分からない。続いて #mkinitrd /boot/initrd-3.15.4-pclos1.img 3.15.4-pclos1 を実行すると、こちらは数十秒かけて /boot/に initrd-3.15.4-pclos1.img を作った。 おお。それじゃってんでGRUBのmenu.lst に title を追加して、vmlinuz-3.15.4-pclos1 と initrd-3.15.4-pclos1.img で起動するメニューを作る。再起動。

 installing module とかの見慣れないメッセージが出たあと、いつものスプラッシュの代わりにキャラクターで作られたとおぼしきプログレスバーが進み、そして、あらら CUIのログイン画面になった。うー、なんかしくじったかな。startxしてもエラーになる。 xorg.conf を殺して再起動かけたら 800*600 で起動。コントロールセンターからの解像度変更出来ず。仕方ないので xorg.conf を戻して再起動をかけたら、今度はちゃんと X が起動した。取りあえずスプラッシュ画面を出さずに3.15.4が起動しているようなので、まぁ思ったようになったと言える。plymouthはどこで何をしているのだろう。initrdの中の仮OS上で動いているんだろうか。GRUBもそうだけど、いろんな「モード」を跨いでの設定が必要なものは、どうもややこしい。

 次いで現行カーネルである 3.4.70 で作業する。このシステムは元々LXDE版だったところにMATEを入れているので、LXDEのスプラッシュが少々目障りだった。そこでMATE版 /usr/share/plymouth/theme/ にある PCLinuxOS フォルダをLXDE版の同じディレクトリにコピーして来て、 #plymouth-set-default-theme PCLinuxOS -R でテーマを指定する。多分これでinitrdも作り直されたのでmkinitrdは不要。再起動すると牛の周りでインジケータがグルグルする、PCLOSでおなじみのスプラッシュ画面になった。更にてきとーな画像を background.png と差し替えて再度 #plymouth-set-default-theme したらオリジナルのbg画像の上に牛が現れた。嬉しい(笑) background.png差し替えだけでは反映されないところを見ると、やはりplymouthはinitrd上の仮OS上で動いているものと見られる。

 あれ? それまで使えていたBuffaloのPCカード型無線LANが使えなくなった。んでそれまで使えなかったCoregaのカードが使えるようになった。むー。何か不用意なことをしてしまったかも知れぬ。それにやっぱりSynapticでplymouthをアップデート出来ない。スクリプトがsdbを探してエラーになると言うことは、このマシンの設定ファイルのどこかにsdbを指定しているところがあると言うことなのだろう。さて一体どうやって探したものか。/boot/にあるかなぁ。

 ここまで作業したところで、 3.4.70よりも3.15.7の方が新しいことに気がついた(大汗) もっとも作業を始めるまでinitrdは3.4.70しか作られていなかったから、つまりはこちらが「現行」であることに違いはない。多分カーネルのアップデートの度に件のエラーが起きてinitrdが作られず、結果isoからインストールした3.4.70がずっと使われていたのではないかと思う。取りあえずオリジナルのinitrdのバックアップはあるので、もうしばらく遊んでみよう。

2015年05月01日

 /usr/share/を眺めていると、gdmというディレクトリを見つけた。しめた。ここでログインのテーマも変えられるかも知れない。今使っているPCLOSのテーマ(多分Jazzと呼ばれているもの)は少々目障りで、もう少しシックなものに変えたいと思っていた。

 結局、/usr/share/gdm/themes/ の中に、SystemメニューのLogin Windowで指定したテーマと同じ名前のディレクトリを見つけ、background.jpgを差し替えるだけでバックグラウンドが変わった。面白いね。

2015年05月06日

 結局新しく作った3.15.7版は起動しなくなってしまった。かなり初期の段階で止まる。一方の、作り直した3.4.70版は特に問題なく稼働。3.15.7のための何か設定が必要だったんだろうか。



< PrevIndexNext >
inserted by FC2 system