2006年12月25日(Mon) まだおなかがいたいよ [長年日記]
● 腹痛、チョコレートを食べたら直ってきたか?
● [tDiary] セキュアな日記に対応した後日談プラグイン失敗版
ちょっと試してみたけれど、難しかった。
$SAFE=4ではPStoreは使えないので、表示の前に全部のキャッシュを読み出しておくことが必要。そうすると、だいたい日記のエントリー数に比例してHTTPサーバのメモリが増えていくことが必要になる。まあ、それぞれのリンクのデータは小さいので、後日談プラグインの使うメモリが問題になるのはそうとう先だろうけど。(追記)いや、表示する方(それぞれの記事へのリンク元のリスト)はプラグインが読まれた時にあった月(@diaries.keys)だけで充分なんだ。
もっと問題なのは、リンクのデータの作成方法。セキュアな場合は日記を表示するときにデータを保存するわけにはいかないので、たぶん日記を追記/更新する時にデータを作って保存する必要がある。この場合は、プラグインの中からViewを起動してやらないといけない。あるいはファイナライザを起動するようにするか…。C++みたいにデストラクタを定義すればいいわけではなさそうなので、ちょっと勉強しよう。
● [grub] boot blockのインストール
前回から日が空いてしまいましたが、やっと、install_boot_block
に辿りつきました。
grub-install
より、install_boot_block
関数では--device-map
オプション付きのgrubシェルで下記のコマンドが実行されます。
$root_drive
は、ルートデバイスのgrubでのドライブ名、$install_drive
は、grub-installに与えられたインストール先のgrubでのドライブ名ですね。
ここまで来ると、ほぼ、手でgrubシェルを起動してやっている作業と同等のことをするようになるようです。
やっぱりここに来るまでのチェックが重要ということですね。
● [grub] grub-installの仕事のまとめ
そういうわけで、ハードディスクにインストールするところまでgrub-install
を読みました。まとめておきます。
grub-install
が起動されると、
- device.mapの作成
- device.mapの内容の確認
- 二重にエントリが無いか確認
- ハードディスクが含まれていることの確認…って考えてみるとUSBメモリもhd*というgrubドライブ名になるんですよね
- インストール先がRAIDでないか確認
- grubに必要なファイルのあるデバイスの確認
- grubドライブ名経由で欲しいファイルが読めることの確認
- grub.confの作成
- boot blockのインストール
と作業が続くようです。
OSの思っているデバイス名と、grubから見えるBIOS経由のデバイス名とが、正しく変換されていることをちゃんと確かめられる、というのがgrub-install
の良いところのようです。
なるほどー。
次は、grubシェルがBIOS経由でどのようにファイルを読み書きしているか知りたいところですが、さて、grub legacyを読むかgurb2を読むか…。
(追記) そうそう。DocoMomoも改善しないとねぇ。
● [DocoMomo] USBメモリにインストールされるstage2を使うのは難しい
DocoMomoの改善…USBメモリにコピーするgrubのstage2などのファイルは、今はDocoMomoを作っているOSに入っているものが使われます。これを、なんとかしてDocoMomoにインストールするOSのものを使えるようにしたいと思ったわけですが、どうも無理そう。
grub-install
のcopy_images
で使われるstage2などのファイルはpkgdatadirからコピーされていることになっています。んで、pkgdatadirはコマンドラインからは指定できない。そういうわけで、DocoMomoでUSBメモリにインストールするstage1.5やstage2のファイルはDocoMomoのものではなくて、DocoMomoをインストールしているOSに入っていたものにならざるを得ないようです。
残念。
● [DocoMomo] docomomo-0.1.14
それでも一つ改善。
DocoMomoは、大きめのメモリ(512MB程度以上)のあるix86マシンで大きめ(512MB程度以上)の USBメモリからLinuxを起動できるようにするツールです。DocoMomoの作成環境から引き継いだLinuxディストリビューションと設定で、使い慣れた環境をUSBメモリ上に構築できます。
docomomo-0.1.14では、USBメモリにカーネルのイメージがあるかちゃんと確認するようにしました。これまで問題なく使えている方は更新する必要はありません。興味のある方は、tar ball置き場からどうぞ :)
● [pda] blazer-ja-proxy-0.2.5リリース
palm-ja-proxyより、blazer-ja-proxy-0.2.5をリリースしました。
PalmTX (PalmOS 5.4)にCJKOSを入れて、Googleなどで日本語を検索したり、GMailのWWWインターフェースなどで日本語のメールのやりとりができるようになります。
リリース0.2.5では、xmlヘッダがある時の文字コードの検出と変更をより柔軟にしました。ご利用ください。
● やっぱりマニュアル車がいいな
久しぶりの山行きで、いつもより遅いペースで降りてきた。トヨタの4 Runnerという車で6速オートマ。
かなり快適に走れるのだけれど、下り坂ですーっとブレーキを踏んでちょっとペースを落とすとギアが急に下がってエンジンブレーキを効かせ始めることが何度かあった。ちょうどカーブの入口で、減速から加速に切り替えようかな、と思っているところで、より減速されてしまうので、ちょっと怖い。
登りの時のキックダウンのタイミングはかなり思い通りになるだけにちょっと残念。
ちなみに、zundaさんが読まれたgrub-installはパッチだらけバージョンで、公式のものじゃありません。パッチが当たっている方がいい所もあるんですが、結構プラットフォーム依存になってしまうので、公式のものでは対処しきれません。でもオリジナルの方がいい所もたくさんあるんですよね。<br><br>MomongaのGRUBパッケージって、どうやっているんですか。Fedora由来かな?GNU/Linuxでも、みんなてんでばらばらなんで、私にはとても把握できません。一番改造が甚だしいのはSuSE版で、あれはもう別ソフトウェアです。SuSEの人は一切問い合わせをしてこないので、別にいいんですけど。
うっわー。パッチの可能性をすっかり忘れてました orz ご指摘大感謝です。もう一度読みなおしてみます。
Momongaで使っているパッチは、trunkのものは<br>http://developer.momonga-linux.org/viewvc/trunk/pkgs/grub/<br>に、僕が見たMomonga 3のものは<br>http://developer.momonga-linux.org/viewvc/branches/STABLE_3/pkgs/grub/<br>にあります。Momonga 3のspecファイル<br>http://developer.momonga-linux.org/viewvc/branches/STABLE_3/pkgs/grub/grub.spec?revision=10963<br>のChangeLogを見ると、2006年5月にFedora由来のパッチを取り込んだようです。
最近のツッコまれどころ