2009年1月11日日曜日

需要と供給の問題

さきほど、うちから一番近いドスパラで買えました。



20090111p





(FreBSD, ML115G5) いつもの方法でFreeBSD 7.1-RELEASEにアップデートにしてみたけど… 途中でキー入力できなくなった

先日、FreeBSD 7.1-RELEASEが公開されて、その後、すでにopensslなどのSecurity Advisoryが出ちゃってますが、とりあえず、ML115 G5なFreeBSDマシン(あまり使ってないので、テスト環境という感じ)を、7.1-RELEASEにアップデートしてみました。



FreeBSDを最新バージョンへアップデートする方法としては、お手軽さの順番で並べてみると(独断と偏見の判定基準による)



  1. freebsd-updateコマンドを使う


  2. ISOイメージファイルをCDに焼いて、そのCDでブートしてアップグレード・インストールを行う


  3. cvsup(csup)して、make buildworldなど自分でコンパイルしてアップデートする


といった方法があります。



freebsd-updateコマンドは、個人的になじめないため…あと、ネットワークが混雑して大変なことになっているという情報もあったし…

(FreeBSD) freebsd-updateを初めて使ってみた

となると、CDを作ってsysinstallでやるか、ってなるけど、CDを焼くのもめんどくさい。



ということで、ときどき私がやってる、メチャクチャな方法 ~普通の人にはお勧めできません~、それは、



  • ISOイメージファイルから、/boot以下のファイルを抜いてきて、現在動作中のFreeBSDの/boot(←ハードディスク上にあるもの)と入れ替え、


  • その後、ハードディスクから、新しい/bootでブートして、


  • インストーラ(sysinstall)にてアップグレード・インストールする


というもの。失敗したら、FreeBSDが起動しなくなるおそれもあるので、それでお勧めできない、ということです。



以前、ちょこっと、その手順を書いたこともあったりしました。

FreeBSDのアップデート
CDもフロッピーディスクも作らずに、ネットブートもせずPC1台だけで、手軽?に、FreeBSDを最新版にアップデートする方法。



FreeBSD 7.0-CURRENT-200701にアップグレード・インストールしてみたのですが…

今回その方法を行ってみたところ、あれっ?!キーボードから文字が入力できない、というトラブルがあったので、自分用メモとして、もう一度、書き残しておきます。



☆



アップグレードインストールするまえに



今動いているシステムの/etc以下を、どこか別の場所に(もしあれば別のWindowsパソコンなどへ)、コピーして、アップグレード作業中に見られるようにしておいたほうがいいと思います。



というのは、アップグレードインストール作業中に、/etc/fstabや、/etc/rc.confに書いてある情報が必要になるためです。



具体的に必要になるのは、以下のもの。



  • デバイスファイル名(/dev/ad0s1eなど)と、ファイルシステムのマウントポイント(/usrなど)の対応関係。fstabに書いてある。


  • ネットワークの設定。たとえばIPアドレスなど。rc.conf中で、ifconfig_bge0などで指定している。


これくらいなら、チラシの裏にメモっておくだけでも十分です。



ISOイメージファイルのダウンロード



たとえば、このへんからダウンロード



ftp://ftp.jp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/7.1



sysinstallでネットワーク経由でインストールするなら、bootonlyと書いてある、ファイルサイズの小さいものでかまいません。



7.1-RELEASE-i386-bootonly.iso をダウンロードしました。



ftp://ftp.jp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/7.1/7.1-RELEASE-i386-bootonly.iso



ネットワーク経由でインストールできない場合は、disc1と書いてあるものを選びます(disc1だけで十分だと思います)。


ISOイメージファイルからファイルを抜き出す



mdconfigとmountを使って、こんな感じ。root権限で行います。



# mdconfig -a -t vnode -f 7.1-RELEASE-i386-bootonly.iso
md0
# mount -o ro -t cd9660 /dev/md0 /mnt
# ls /mnt
boot            boot.catalog    cdrom.inf
#



状況によっては、mdconfigを実行後、「md0」ではなく「md1」とか、別の数字が表示されることもありますが、そのときは、その表示されたものを、mountコマンドの引数で指定します。



そして、/bootを入れ替える。



# mv /boot /boot-
# cd /mnt
# tar cf - boot | tar xvf - -C /



disc1なISOイメージをダウンロードして、ネットワーク経由のアップグレード・インストールをしない場合は、/boot以外に、/7.1-RELEASE以下のファイルも、現在使っているハードディスクにコピーしておきます。



# ls /mnt/7.1-RELEASE/
base            doc             kernels         proflibs
catpages        games           manpages        src
dict            info            ports



たくさんディレクトリがありますが、インストールするものだけコピーすればOK。私だったら、base、doc、kernels、games、manpages、dict、infoなどでしょうか。



sysinstallでインストール作業を行うときに、元ファイルをどこからもってくるか指定するところがあります(CDとかFTPとHTTPとか)。その選択肢の中に、既存のファイルシステムから、という指定ができるので、そのときに、コピーした7.1-RELEASEの内容を指定します。
最近やってないのでいい加減な情報ですが、コピー先のディレクトリ名は、FreeBSDにしておけばよかったと思います。


FreeBSDを再起動して、インストーラで起動する



ごく普通に、rebootして、ハードディスクからブートすれば、新しい/bootでブートしてきます。



インストールCDに記録されている/bootでは、loader.confを見るとわかりますが、mfsroot.gzというRAMディスクのイメージファイルを使ってブートできるような設定がされています。このRAMディスクのイメージファイルの中に、FreeBSDのインストーラが入っているわけです。



ちなみに、mfsroot.gzの中をのぞいてみると、こんな感じです。



# cp /boot/mfsroot.gz /var/tmp/
# gunzip /var/tmp/mfsroot.gz
# mdconfig -a -t vnode -f /var/tmp/mfsroot
md1
# mkdir /mnt2
# mount -o ro /dev/md1 /mnt2
# ls -l /mnt2/
total 4
drwxrwxr-x  2 root  operator   512  1  2 00:17 .snap
lrwxrwxrwx  1 root  wheel        6  1  2 00:17 bin -> /stand
drwxr-xr-x  2 root  wheel      512  1  2 00:17 boot
drwxr-xr-x  2 root  wheel      512  1  2 00:17 dev
drwxr-xr-x  3 root  wheel      512  1  2 00:17 etc
drwxr-xr-x  2 root  wheel      512  1  2 00:17 mnt
lrwxrwxrwx  1 root  wheel        6  1  2 00:17 sbin -> /stand
drwxr-xr-x  4 root  wheel     1024  1  2 00:17 stand
drwxr-xr-x  3 root  wheel      512  1  2 00:17 var


さて、これでFreeBSDをブートすれば、インストーラで起動すると思いきや、普通のマルチユーザーモードなFreeBSDが起動しちゃいます。ただし、カーネルは最新のカーネルになっています(/boot/kernel/以下は、さっき置き換えたので。だからハードウェアによっては、起動途中にコケるかも…)。



なぜかっていうと、ルートファイルシステムとしてマウントされるのが、RAMディスク(mfsroot)ではなくて、もともとハードディスクにあったルートパーティション(/dev/ad0s1aなど)になっちゃうからです。たぶん、親切心から、そうやってくれてるんでしょう(?)



ルートファイルシステムをどこにするかは、boot時に指定できます。いつも私が使っている方法としては、boot時に「-a」オプションを指定するものです(これって、大昔のBSD系Unix、SunOSとかNEWS-OSとかでも使えてたような気がする)。



FreeBSDのブート時のメニューで「6. Escape to loader prompt」を選択すると、「OK」というプロンプトが表示されるので、そこで「boot -a」と入力します。



すると、カーネルが起動して、途中で、「Manual root filesystem specification:」と表示され、そこで、どこをrootパーティションとするかを入力できます。



こんな感じ



200901110



いつもなら、ここで、「ufs:md0a」と入力します。



ところが、今回、ここで、はまりました。HPのML115 G5で、PS2キーボードを接続して操作していたのですが、ここで、なぜかキーボードからキー入力ができなくなりました。



bootローダのところではキー入力できてましたし、マルチユーザーモードでもキー入力できます。ここでだけキー入力できない???



以前どこかのWebサイトで、ML115 G5では、PS2キーボードは、実はUSBから変換されてPS2になっているので、OSからは(ソフトウェア的には)USBキーボードとして認識されている、みたいな情報を見かけたことがあったのですが、それがこれと関係あるのでしょうか?



PS2キーボードなデバイスatkbd0と、USBキーボードなデバイスukbd0の2つが認識されるのですが、もしかすると、実際には存在しない側のatkbd0を使ってしまっているのかも?



# dmesg | grep kbd
kbd1 at kbdmux0
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
atkbd0: [ITHREAD]
psm0: <PS/2 Mouse> irq 12 on atkbdc0
ukbd0: <ServerEngines SE USB Device, class 0/0, rev 1.10/0.01, addr 2> on uhub0
kbd2 at ukbd0



う~ん、まいった。いつもだったら「USBキーボード関係のトラブルのときは、とりあえずPS2キーボードをつなげばOK」、だったのに、今回は元々PS2キーボードを使っているわけで、どうしょうもないです。



でも、bootローダ(「OK」プロンプトのとき)で、ルートファイルシステムの場所を指定できるよね、絶対大丈夫だよ! と思い、テキトーにアタリをつけてみると・・・



# grep root /boot/defaults/loader.conf
#root_disk_unit="0"             # Force the root disk unit number
#rootdev="disk1s1a"             # Set the root filesystem
#boot_askname=""        # -a: Prompt the user for the name of the root device
#boot_cdrom=""          # -C: Attempt to mount root file system from CD-ROM
#boot_dfltroot=""       # -r: Use the statically configured root file system
#init_script=""         # Initial script to run by init(8) before chrooting.
#init_chroot=""         # Directory for init(8) to chroot into.
#vfs.root.mountfrom=""          # Specify root partition in a way the



「vfs.root.mountfrom」が正解でした。



currdevとかrootdevというのがありますが、これは、BIOSレベルでアクセスできるデバイスを指定するものらしく、今回のようにRAMディスク(md0)は指定できないみたいです。



「OK」プロンプトにて、



set vfs.root.mountfrom="ufs:md0a"



と指定して、



boot



とすれば、うまいこと、mfsroot内のインストーラが起動しました。



200901111



というわけで、あとは、ごく普通に、sysinstallでUpgrade Installすればよし、と。



その後はとくに問題なく、7.1-RELEASEになりました。



そしたら、/boot/loader.confを、元々使っていたものへ置き換えます。





今は、動作確認もかねて、portupgradeしまくってます。





P.S.



ふと思ったんですが、ブートローダでatkbd0をdisableすれば、boot -aしたときキー入力できるようになるのかも???
試していませんが。







2009年1月10日土曜日

(FreeBSD) Mozilla Thunderbird 2で、メール本文中のリンクをクリックしても何も起きないとき

仕事中は、Windowsではなく、FreeBSDを使っているので、ウェブもメールも、みんなFreeBSD上でやってます。
というわけで、メールソフトとしては、もっぱらMozilla Thunderbird 2を使っています。もっとも、IMAPで読んでいるため、どんなメールソフトでも、どこのどんな環境でメールを読んでも、まったくかまわないんですけど。



200910101



昔からなんとなく気になっていたけど、たいして困らないので、無視していたことがあります。それは、

メール本文中に、http://ww.example.co.jp/index.html のようなURLが書かれている場合、Thunderbirdが親切にも、青色で下線つきでリンクにして表示してくれているのに、そのリンクをクリックしても何も起きない

ということ。



200910102



メールに書かれたリンクをやたらめったらクリックするもんじゃねぇ! … というのが現在の常識ですので、まあいいか、とこれまで無視してきました。



どうしてもそのリンク先を見たいときは、右クリックしてURLをコピーしてから、Firefoxでマウスの真ん中ボタンをクリックしてました(UnixのX Window Systemな環境では、昔からMozillaやFirefoxなどのブラウザでは、真ん中ボタンクリックで、クリップボードのURLを開く、という設定ができる)。



ちなみに、Thunderbirdも、Firefoxも、すべてportsでインストールしています。



以前ウインドウマネージャにfvwmを使ってたときから、この「リンクをクリックしてもだんまり現象」は起きていました。きっと、GNOME2やKDEなどの環境にすれば直るんじゃね? と思ってたんですが、どうもそういうわけでもないみたいです。



どこかのメニューに、「通常使うアプリケーションはこれだよ」と指定するところがあって、そこでFirefoxを指定するだけでよい気がしてたんですが、あまりじっくりと調べていないので、よくわかりませんでした。



ブログに書くネタもないし、気まぐれになんとなく気になったので、この問題を調べてみることにしました。



とりあえずgoogleで、「thunderbird hyperlink」というキーワードで検索してみると



http://www.novell.com/coolsolutions/feature/15898.html



なんてのが見つかりました。ほかにも調べてみると、



http://yowcow.nowa.jp/tag/thunderbird



など、似たような解決方法が提案されています。ただ、prefs.js、user.jsを書き換える方法が書かれているので、現行のThunderbird 2.0.0.19では、ちょっと違うかな、と思ったので、念のため、以下に別の方法をメモとして残しておきます。



なお、FreeBSD 7で、portsでインストールしたthunderbird、firefox、gnome2で試したときの話なので、ほかの環境ではあてはまらない場合もあります。ご注意をば。



☆



EditメニューのPreferencesを選び、Advancedタブをクリック。Config Editorボタンをクリックします。



200910103



☆



about:configというウインドウが表示されます。どこでもいいので、右クリックしてショートカットメニューを表示して、Newの中のStringを選びます。



200910104



☆



network.protocol-handler.app.http
と入力します。



200910105



☆



portsでインストールしたfirefox3で表示させたい場合は
/usr/local/bin/firefox3
portsでインストールしたfirefox2で表示させたい場合は
/usr/local/bin/firefox
と入力します。



200910106



「-remote」オプションを使ってfirefoxを実行するラッパースクリプトが必要なんじゃないかと思ったんですが、なんだかこれでもいいみたいです。



☆



こんな感じになります。



200910107





Thunderbirdを再起動しなくても、この設定が有効になっていました。
これでメール中のリンクをクリックすると、Firefox3で、リンク先が表示されるようになりました。



なお、

network.protocol-handler.app.http

のほかに

network.protocol-handler.app.https
network.protocol-handler.app.ftp

というのもあるそうなので、必要に応じて、同じような手順で追加登録すればよいと思います。

ところで、このConfig Editorってのは、追加はできるけど、削除はどうやったらできるんでしょうか?





P.S.



以前からアナウンスされていたように、とうとうgoogle browser syncが使えなくなったので、Firefox2をやめて、Firefox3を使うようになりました。今後どうするかは、まだ考え中。自分としては、履歴(history)だけ、同期できれば文句はないです。





こんなんだっけ?

釣りキチ三平の映画公開の宣伝のため、昔のアニメが再放送が始まりました。
たぶん見た記憶があり、そのせいで、マンガを読むときも、脳内では、三平君の声は野沢さんになってたんですが・・・
アニメを見て・・・
あー、そうそう、こんな感じ・・・ありゃ?こんなんだっけ?
なまりがきついなぁ。
どうやら、私の脳内の三平君は、ドラゴンボールの孫悟空になってたようです。



☆



以前から、実写映画化困難な漫画作品、ということだったそうですが、アニメを見て思いました。



20090109



実写映画はやめて、アニメをリメイクしたほうがいいんじゃね?


矢口先生が描くあの緻密な絵の雰囲気が、あの当時の技術レベルでは、アニメに出せてないですね・・・





2009年1月9日金曜日

2ちゃんねるは教育テレビだった

関東では3チャンネルがNHK教育テレビですが、私が生まれ育ったところでは2チャンネルでした、という、ただそれだけのことです…。ちなみに、地デジでは、リモコンの2番のボタンですね。チャンネル番号では021、022ですけど。



それはさておき、2009年1月10日にNHK教育テレビが放送開始50年になるそうで、「ETV50」という企画がスタートしてますね。連日のように、「なんかもう懐かしい!」という映像が見られる特別番組をやってます。

http://www.nhk.or.jp/etv50/index.html

教育テレビでは、昔は、おもいっきり堅苦しい番組が多かったですが・・・
200901081

90年代以降は、かなりやわらかい番組が増えてきてますよね。大学生のころ、ストレッチマンをはじめて見たときの、あの衝撃は忘れられません。



教育テレビといえば学校放送、というイメージもあります。小学校のころは、道徳の授業で教育テレビを見せられたことはありましたが、それ以外はテレビは使ってませんでした。家で見るときは、理科の番組が好きだったかな。実験とか楽しかった。
大学生になってからのほうが、学校放送をよく見ていたような気がします(笑)



ある日、たまたま見た

たんけん ぼくのまち
http://cgi2.nhk.or.jp/etv50/request/detail/index.cgi?program_id=47

のとある1回が、ホラーっぽく、しかも妙に凝った演出がされていて、あれがもう1度見たいです。「たんけん ぼくのまち」(「~ぼくらのまち」かと間違って覚えてた)どうやらリクエストでも大人気らしく、チョーさんが特別番組に出演してるのを見ました(声はよく聞いてましたが)。「ふけたでしょう。チョーさんはもう50歳になっちゃいました。」とか言ってて、ちょっとびっくり。



☆



もう一度みたい懐かしの番組をリクエストできるようになってて、番組のリストがたくさん列挙されていますが、リストにないものでも、リクエストできるそうです。



昔の新聞のテレビ欄で見かけたもので、自分も幼きころにテレビで見たことがある記憶があるもので、コンピューター講座、コンピューター入門、電子計算機講座、・・・みたいな感じのタイトルの番組があったと思うのです。それって、いったいどんな内容だったのか、どこか気になるので見てみたいです。1970年代だと思うのですが・・・。



それとは別の、1981年ころにやってたマイコン番組なら、確実に見た記憶があって、NECのPC-8001が使われてたりしたと思いますが、それは、これだと思います。

200901085



趣味講座(趣味百科)
http://cgi2.nhk.or.jp/etv50/request/detail/index.cgi?program_id=131

当時のマイコン、パソコンは、機種が違うと、操作方法も、使えるプログラムも、何もかもが違ってしまう、というのが当たり前だったので、テレビの番組としては、取り上げづらかったんじゃないかと思います。
どのメーカーのパソコンでもだいたい同じ、という現在の状況とはかなり異なっていました。



☆



これは、藤子F先生の追悼番組みたいです。F先生の写真が、なんだかなぁ・・・

ETV特集「こんなこといいな できたらいいな~藤子・F・不二雄の世界~」
http://cgi2.nhk.or.jp/etv50/request/detail/index.cgi?program_id=175


藤子不二雄ファンの私が、昔、勘違いしてたまたま見た番組・・・



200901086



というのは冗談です。今日もちょっと放映されてましたが、フジコ・ヘミングを世間に広く知らしめたこの番組。私は、初回放映時に、チャンネルをかえてたらたまたま見かけて、じっくりと見入ってしまいました。最初、猫が映ってたので、「猫屋敷」のさびしい主の番組かねぇ?と思ってたら、ぜんぜん違ってました(笑)。まるでドラマみたいな人生に深く感動したことを覚えています。つい最近だと思ってたのに、10年前なんだぁ・・・



☆



この番組を、なんとなく見てみたいです。

技能講座
http://cgi2.nhk.or.jp/etv50/request/detail/index.cgi?program_id=124

200901082



200901083



なんちゅうもんを見せてくれたんや。なんちゅうもんを・・・こんなマニアック番組は見たことはない。



もっとも、昔はテレビを自作するキットが売られていた、と聞きます。マイコン(パソコン)で言えば、MZ-80Kみたいなものかなぁ?

(2008/01/09 追記)
今日の放送で、上の「技能講座」の映像が少しだけ見られました。昔のテレビには、垂直同期の調整つまみ、水平同期の調整つまみがついていて、それをまわして調整するんだよ、というだけのことでした。
それって故障なのか???



☆



教育テレビではないんですが、NHKアーカイブスの再放送が見たいです。





2009年1月8日木曜日

2009年の毘沙門さんは2月1・2・3日

20090107



一応、だるま市で有名なことになっている「毘沙門天大祭」は、旧暦1月7・8・9日に開催されることになっているので、今年2009年の場合は、2月1・2・3日になります。



2月1日が日曜日ですか・・・。



あれ、2月3日は節分。今年は豆まきも同時にやるんでしょうか?!



■ 過去記事







2009年1月7日水曜日

岳南鉄道、60周年だったらしい

お正月に、犬の散歩につきあわされたとき見かけました。



岳南鉄道の電車に、60と書かれたヘッドマークが?



20090106



2008年12月に、60周年記念イベントみたいなことをやってたそうです。全然知らなかった・・・



最後にがくてつにのったのは10年以上前だな、たぶん。