友人がLib30を買ったのでおさがりのLib20を安く売ってもらった。売ってもらうのが決まったのが東京出張中だったので秋葉原で、12MB RAM、1.3GBのHDD、LANカード、大容量バッテリーを買って帰った。
帰ってLib20を手にした俺は電源を入れる前に、分解して裏蓋切って1.3GBに換装してした。いわゆる裏切りである。むしろ裏蓋が切られていない方がおかしい。この方法を思い付いた携帯PC技術研究所のお兄さんには感心する。今では2.1GBに換装され、1.3GBには勉強のためFreeBSDがセットアップされた。
その後再度東京出張の折、秋葉原のマクサスにてCPUアップグレードをしてもらった。これでAm5x86-133MHzになった。体感速度は「全体的にちょっと早くなったな」くらい。
まずはブートフロッピーの作成だ。ThinkPadにboot.flpが残っていたので、RAWRITEで作成する。起動してみると2.1.5だった。今は2.2.xの時代だし、CD-ROMも2.2.1だ。ということでwww.jp.freebsd.org/PAO/からboot.flpを取ってくる。クリックするとブラウザに強制表示してしまうので右クリックメニューからリンクの保存でダウンロードする。これでブートフロッピーを作った。しかしこれが起動しない。再度ダウンロードしてもだめ、キャッシュディレクトリをクリアし、proxyをはずしてもだめ、Win95をDOSモードで起動してUSモードにしてRAWRITEしてもだめ。これはASCII形式でダウンロードされているからだめなんだろうと思い当たり、今度はftpサイトに行ってみるがどこにあるのかわからない。
悩んでいるとふと閃いた。「CD-ROMに入ってないのか?」そこで『FreeBSD徹底入門』を読んでみると入ってるようだ。さっそくCD-ROMからboot.flpをコピーしてブートフロッピーを作成。今度は起動した。しかしメニューが英語だ。おかしい。日本語版があるはずだ。実際、英語版のブートフロッピーでも何ら問題ないのだが、インストール初心者にとっては日本語のほうがありがたい。本を良く読むともう一つ下のディレクトリの中のboot-pao.flpが日本語インストーラだということがわかった。これで起動したところ無事日本語メニューが出てきた。
ここまでくるのに最低10回はRAWRITEを実行した。
ブートフロッピーで起動した後、PCカードFDドライブを抜き、インストールメディアのPCカードを挿す。今まではftp installしか方法がなかったのでLANカードを挿していたが、今は違う。CD-ROMとSCSI接続のSonyのCD-ROM Walkmanがある。SCSIのPCカードは実質Adaptec製なので大丈夫だ。いくつかの設定をしてインストール媒体の選択に移る。当然CD-ROMを選択する。しかしインストーラはCD-ROMが見つからないとエラーを返す。どうしてだ。Alt+F2でDEBUG情報を見てみるとPCカードは認識されているがCD-ROMが見つかっていない。何回かやってみたがだめなものはだめ。後で分かったことだがSUPPORTED.CARDS.jpにも使うにはコツが必要だと書いてあった。
結局、考えていた最後の手段。ftp installだ。Windows NT ServerのIISのftp機能でCD-ROMを直接マッピングし、ローカルIPアドレスでftp installに持ち込む。幸いなことに会社のネットワークはTCP/IPを使っておらず、ちょっと前にローカルIPアドレスで遊んでいたままだったし、もちろんIISなんかだれも使ってない。
SCSIカードの代わりにLANカードを挿してftp installを選択。しかしインストールできないとメッセージが出る。『FreeBSD徹底入門』を良く読んでみるとインストールオプションのデフォルトが「2.2.1-RELEASE」ディレクトリになっていることがわかった。付属のCD-ROMを見てみると「221R」ディレクトリの下に構成されていた。ISO9660フォーマットでは「2.2.1-RELEASE」というディレクトリが作れないのでこういう名称になっているのだろう。インストールオプションで導入ディレクトリを「221R」にして、再度チャレンジ。おお!インストールされていく。
さあ次はports collectionだ。何を導入すればいいのか、はっきりした意識はなかったが、名称と簡単な説明から知ってるものと面白そうなものをチェックしていく。最低、tcshとjlessとfdは欲しい。膨大な中から時間をかけて選択し、いざinstall。しかし、ファイルが見つかりません。のエラーが連発。ひたすらリターンキーを叩く。あまりに叩きすぎたせいかハングアップしてしまった。ハードウェアリセットをかける。心配なので再度ブートフロッピーからインストールし直す。
またもやディレクトリの問題かと思い、デフォルトディレクトリの「2.2.1-RELEASE」に戻し、CD-ROMのマッピングを変更したが、結果は同じ。手動でもpackageが入れられるとsaitaraから教えてもらい、本でもやり方を確認したが、あの膨大なcollectionをファイル名だけで選択していくのは初心者にはつらいし、依存関係もわからない。なんとかsysinstallでインストールしたかった。
ひょっとして付属のCD-ROMにないのではと思い、CD-ROMの中を覗いてみた。portsというディレクトリがあったので覗いてみると数個のファイルしかない。しまった!Walnut CreekのCD-ROMにしておけば良かった。
そこでCD-ROMを替えてインストールしてみた。これでもインストールできない。おかしい!本家Walnut Creekでインストールできないはずはない!CDの中を見てみるとpackagesというディレクトリがあった。もしやここからインストールするのか?良く考えてみれば*.tgzからインストールするはずだ。さっきportsディレクトリを見ていたのは間違いだった。で、packagesにはインストーラのメニューと同じ分類のディレクトリが存在し、*.tgzもある。ならどうしてインストールされないのか?しばらく眺めていて何気なくファイルサイズを見てみた。するとファイルサイズが0だった。どれもこれも0だった。そうかこれはシンボリックリンクの亡霊か!実体はallの中にある!packages/allを見るとまっとうなファイルサイズの*.tgzがあった。分かった。インストールメニューのAllから選択すればいいんだ。ということで膨大なAllのリストからpackageを選択してinstall。結果はあいかわらずダメ。あ〜もういやだ。やめた。
メニューからのインストールをあきらめ、手動でpkg_addすることにした。ファイルはファイル名で大体見当がつく。jless,colorlsなどを手動でftpしてきてpkg_addしてみる。perisson denied。どうやらrootでないとpkg_addできないようだ。suでrootになり再度挑戦。またもやエラー。ディレクトリがおかしいとかいうエラーが出る。『FreeBSD徹底入門』を読んでみると、-tオプションでテンポラリディレクトリを設定してやる必要があるらしい。pkg_add -t /var/tmp/hoge JP-LESS-.TGZとしてみる。できた!この調子でftpでCD-ROMからgetしながらpkg_addしていった。X11関係のpackageを入れていたら依存関係のあるらしいものが出てきた。幸いファイル名が推測できる名前だったので探し出してftpで同じディレクトリに置いておいた。しかし見つけてくれない。どうしてだ?少し考える。そうか!これは完全なファイル名を要求しているのか!CD-ROM + ftp installでpackagesをインストールできなかったのはこれが原因だったんだろう。インストール媒体をCD-ROMにしたときはISO9660にあわせたファイル名でインストールするのであろう。そしてftp installではUNIXのファイル名+シンボリックリンクを使うに違いない。ここにきて謎が氷解した。しかし解決したところでCD-ROM + ftp installでは/stand/sysinstallでpackageが導入できないことには代わりない。とにかく必要なものは入れられたし、また必要なものが出てくればその時の状況に応じてインストールすることにしよう。
このports collectionのインストール時に3回くらいブートフロッピーから再インストールした。
さあ、次はXの設定だ。その前にpsm0とSCP-55を動かすためのsnd0,mss0,mpu0の有功化と不要なデバイスを削除するためにkernelを再構築する。snd0を有効化するのを忘れていてエラーが出た程度で、正常に新しいkernelができた。思えばこれをしたいがためにHDDクラッシュさせてこんな苦労をする羽目になった。やっと振り出しに戻った感じだ。しかし「クラッシュさせるとクンフーが上がる」((c)saitara)の言葉通り、FreeBSDに対しての知識が広がったような気がする。
さてXF86Setupを動かしてみる。これもrootでないとだめらしい。suでXF86Setupを動かす。設定画面が出てきたところで操作できなくなる。キーボードを押しても反応なし。kernel再構築でpsm0は有功にしてあるので触ってみるとでたらめな動きをする。これはどうしようもない。X11_SURVEYからLibretto30の設定を持ってくる。XF86Setupがそれを読み込み、設定画面になる。キーボードもマウスもちゃんと動く。キーボード設定がUSになっていたので106に合わせてSaveした。さあstartxだ。しかしXが起動しない。前にインストールしてもらったsaitaraからLibretto30の設定そのままでは動かないとは聞いていたが、本当に動かない。グラフィックまわりでLibretto20と30の違いなんてあるのか?しかたなくXF86SetupやXF86Configを触ってみたが、下手にいじるとXF86Setupが動かなくなったりした。諦めかかった時に頭の中にふと閃いた。以前saitaraにFreeBSDを再インストールしてもらったときに/etcをバックアップしてるはずだ。ありかは想像がつく。さっそくftpでXF86Configをgetした。これでstartxしてみる。動いた!これで完璧元どおりだ。
結局丸一日かかってしまった。この作業を会社でやっていたことは秘密である。