FreeBSD(98) on PC-9801DX

ここでは、PC98シリーズ旧機種へのPC-UNIXの導入について書いてみる。

プロローグ

漢だったら、やっぱりPC-UNIXに挑戦だろうと、ある本屋で「LinuxとNetscapeではじめるインターネット」とかいう書籍を衝動買いしてしまった。が、結局全くインストールもせず、読みもせず本棚に放置プレイ状態。

というのは、Linuxは当時我が家で一番占有率の高いパソコンであるPC98シリーズにはきちんと対応していなかったので(現在はVineとかあるようだけど)。あと、Linuxは色々なディストリビューションがあって選ぶのが面倒くさそうなのも手が出なかった理由だったり。

それならば、PC98シリーズで実績のあるPC-UNIXって、一体あるのか?と言う問いには、「FreeBSD」という回答があるかと。FreeBSDは、PC-UNIXの中では老舗中の老舗。詳細については日本の総本山を訪問すること(無責任)。何となくですが、日本人向きなPC-UNIXという印象を受ける。

https://hkjunk0.com/wp-content/uploads/freebsd.jpg

このキャラはデーモン君。

ところで、「FreeBSDで一体何をやりたいんだ?」と聞かれたら、どのように答えたら良いのか?最終回答としては、「Windows不要のパソコンライフ」か?でも、個々人のDNAレベルまで染み込んでしまった某社謹製OSから本当におさらば出来るのか?これまた難しい。

でも、色々なOSに触れてみるということも、一つのパソコンライフであると俺様は考えたりする。TRONとかBeOSとかまだまだ奥の深い世界が広がっているのではないか?

取り敢えず、FreeBSDで以下のことができれば良しとする予定。

1.インターネット
2.電子メール

Webサーバを立てるとか難しいのはやめにして(実際全然わかんない)、とりあえずクライアントでスタート。

それでは、次にターゲットとなるマシンの紹介を。なお、これ以降の話はとても現実的ではなかったりする。実際にFreeBSDをバリバリ使いこなしたいといった人には全く参考にならないので注意。

インストールするマシンの紹介

それでは、今回FreeBSDのインストールの対象となるマシンの紹介。

...NEC PC-9801DX/U2(^^;)。元々286マシンだけど、CPU換装により取り敢えず486相当のスペックを確保?しているが、激遅なのは変わらず、当然Windowsなんてまともに使えない(Win3.1も厳しい)ので、ひっそりと部屋の片隅に放置されていたりする。

このマシンを何とかインターネット&電子メールのクライアントとして復活させてみたい!!というのが本音。勿論、いくらPC-UNIXがWindowsより軽いとはいっても、限度があるっしょ、やっぱり。でも、やっぱり挑戦してみたい。

ところで、NEC PC-9801DX/U2のスペックは以下の通り。

項目デフォルトの状態では?現状とコメント
CPUi80286(12/10MHz)IO-DATA PK-486S50
(IBM Bluelightning Clock 12MHz×4=48MHz)
 → 286マシン用のアクセラレータとしては多分最強だが、
所詮元々が286マシン。どう足掻いても486の33MHz程度
MEMORY640KBIO-DATA PIO-34/32MB
 → Cバス用増設メモリとしては最強。但し御存知のように、
Cバス用増設メモリのスピードは劇遅。専用内蔵メモリだと
幾分速度が出るようだが、PC-9801DX専用の内蔵メモリは、
速度的にCバス用メモリと全く同じという噂がある
また、古いタイプのPC-98のメモリは、お約束の容量の制約あり
折角32MBのメモリを搭載しているのに、半分しか使えない
GA640*400ドット
4096色中16色で2画面
MELCO WSN-A4F
(https://www.buffalo.jp/support/download/detail/?dl_contents_id=61366)
 → Cバス用のGAで、当時としては速かった、CL-GD5434搭載のウィンドウアクセラレータ。しかもサウンド(PCM)搭載でお得かも
PC-98単体でも取り敢えずXとかの表示は可能だけど、やっぱり速いことに越したことはない
LANなしMELCO LGY-98
(http://buffalo.jp/products/catalog/item/l/lgy-98j/index.html)
 → Cバス用のLANカードとしては定番中の定番。現在でも
ヤフーオークション等では結構な値段で取引されているようで
UNIXは当然ネットワーク接続がデフォルトでしょ
SCSIなしMELCO IFN-92S
(http://ematei.s602.xrea.com/kenkyu/ifn-92s.htm)
 → SCSI-2まで対応のそれなりのSCSIカード。やっぱりCバス用
因みに、相方のSCSI-HDDは、ICM SX-500である。相性抜群?
CD-ROMなしPanasonic KXL-783A
 → SCSI-2対応のポータブルCD-ROM。確か、IBM ThinkPad560
とかのマルチメディアモデルに当時付属の8倍速のやつ
PCMCIAのSCSIカード付だが今回はカードを使わない
ステレオスピーカー内蔵で、これ単独でもCDプレイヤーとして
利用可能。結構便利かも

と言う訳で、結構強化していたりする。Cバススロットを4つ占有しているので、Cバスが3スロットしか無いとか、PCIバスが無い機種では複合カードが必要かも。てゆーか、ここまでやる位だったら、素直に最新・格安・高性能・お手軽な機種を買えよ>俺。と言いたい(^^;)。わざわざ追加投資なんか愚の骨頂。

試しに、この強化した状態でのベンチマークを取ってみることに。IO-DATA社謹製のINSPECTというDOS用のベンチマークソフトで、どの程度実用に耐え得るか、またPC-9821APとの比較をしてみる。

まずは単体での性能。

https://hkjunk0.com/wp-content/uploads/inspect1.jpg
...まぁ、当時としては、強化してもこんなもん...でしょ...

...という、かなり厳しい結果。これで強化後だぞおい。強化前のスペックなんか見たくも無い(^^;)。

お次に、PC-9821APとの比較。

https://hkjunk0.com/wp-content/uploads/inspect2.jpg
CPUもそうだが、特にメモリ周りのパフォーマンスが最悪。Cバス増設のメモリだし...

勿論、赤いグラフがPC-9801DXの方。特にEMSのパフォーマンスが最低...

...まぁ、しょうがないのでこのまま続行。

と、ここまで書いてアレだけど、注意する事が。それは、これらの「周辺機器がFreeBSD(98)に対応しているかどうか」ということ。折角大枚はたいて買った周辺機器が、結局FreeBSD(98)で使えませんでしたという落ちがつくのは非常に悲しかったりする。

ここはやはり、対応している周辺機器のリストがあれば幸せになれるはず。これは、FreeBSD(98) 非公式ガイドとか総本山から情報を仕入れること。やはり基本的に「枯れた」ハードウェアがお勧め。

もし手持ちの周辺機器がFreeBSDに対応していない場合、あきらめて対応しているやつを買い直すか、自分でドライバを書いてしまうというのが正しいやり方なようで。いわゆる自助努力というやつ。勿論自分はドライバなんて書けない...

インストールに必要なソフトウェア

それでは、FreeBSDのインストールに必要なものを列挙してみる。

1.FreeBSD(98)

NEC PC-98x1対応のFreeBSDは、FreeBSD(98)と呼ばれており、本来IBM PC/AT用のFreeBSDをPC-98×1用に移植したもの。ソフトウェア的にはIBM-PC/AT版と完全に互換であり、他のPC-UNIXと比較してNECPC-98x1用としては抜群のシェアを確保しているようで。

ところで、FreeBSDにはそれぞれ異なるバージョン(リリースと呼ばれている)があり、FreeBSD(98)もそれに追随する形で移植が進められている。当然最新のリリースは最新の技術及びハードウェアに対応しており、リリースが異なるとかなり使い勝手も異なるようで。リリースの変遷は以下の通り(2001年10月1日現在)。

FreeBSDのリリース(系列)FreeBSD(98)のバージョンリリース年月特徴とか
FreeBSD2.2.8-RELEASE2.2.8R-Rev031999年12月既に化石になっているか?
FreeBSD3.5.1-RELEASE3.5.1R-Rev012001年3月それまでのリリースに比べ大幅に仕様変更
例えばバイナリの形式とかSCSI周りとか
FreeBSD4.x-RELEASE4.3R-Rev012001年5月最新バージョン。もうすぐ(?)5系列に移行予定

今回は、既に化石のような存在のFreeBSD2.2.8-RELEASEをインストール。当然最新のリリースが最も安定しており、情報も沢山あるけど、どうしてもこのリリースでなければならない理由が一つだけ。それは、「IO-DATA PK-486S50(CPUアクセラレータ)がこれ以降のリリースでは使えないため」。使えないというか、IBM Bluelightningでは、FPU(いわゆるコプロ)を切り離さないとカーネルがパニックしてしまうという仕様(?)があるようで、FPUを切り離すということはパフォーマンスの大幅低下となってしまうから。ただでさえ激遅のマシンが更に遅くなってしまうのは非常に耐え難い。

くれぐれも、今時のスペックのマシンには最新のリリースをインストールすること...ていうか、当たり前。

今回のインストールに際し、多分一番難儀するのがFreeBSD(98)2.2.8R-Rev03の確保。

FreeBSD(98)は、IBM PC/AT用のFreeBSD一式+NEC PC-98x1用の各種インストール用ファイルという形式で配布されている。なので、FreeBSD2.2.8-RELEASEとFreeBSD(98)2.2.8R-Rev03の2種類をゲットする必要がある。なお、これらのファイルは、インストール先のマシンではなくて、インターネットアクセスが可能な、いわゆる「母艦」にダウンロードすること。なぜかというと、インストール先のマシンはまだ「インターネットアクセスできない=ファイルをダウンロードできない」という状態だから。母艦のOSはやっぱりWindowsが無難。また、あとでどうにかしてインストール先のマシンにファイルをコピーする必要があり、これまた難儀だったりする。

FreeBSD2.2.8-RELEASE(のCD-ROM)が付属している書籍は、古本屋やヤフーオークションで見かける事があるので、速攻でゲットが可能かと思う。が、問題はやはりFreeBSD(98)2.2.8R-Rev03の確保。PC-98×1版については、普通はサービスでFreeBSD2.2.8-RELEASEのCD-ROMに一緒に入っているはずだけど、最新(?)最終のRev03でない恐れがあったりするので注意。

俺様は、FreeBSD2.2.8-RELEASEは「FreeBSD2.2.8ネットワーク活用法」(BNN社)という書籍でゲット。新品で置いてあった...。また、FreeBSD(98)2.2.8R-Rev03は、何故か昔ダウンロードしてましたとさ(^^;)。

2.TGZ形式のファイルを解凍できるソフトウェア

幸運にもインターネットからFreeBSD(98)2.2.8R-Rev03をゲットできたとしたら、それらのファイルはLHA形式ではなく、いわゆるTGZ形式で圧縮されているかと思うので、解凍するソフトが必要。他にPC-UNIX機が稼動していれば楽勝なんだけど、そうでなければWindowsやDOSで解凍が必要。まぁ、 Vectorとかで探せば沢山見付かるはず。因みに俺様はエー・アイ・ソフト社のDiskX Zipのフリー版を使用中。結構色々できて便利。まぁ、CD-ROM版でゲットできればこういう苦労も無いけど。

3.MS-DOS

諸般の事情により、MS-DOSを同居させることにする。今回のインストール先のマシンでは、どうあがいてもMS-DOSが精一杯のスペックだし、色々と役に立つ場合があるようなので。MS-DOSのバージョンは、最低でも5.0以上をインストールすること。そして、MS-DOSからCD-ROMを利用できるように設定すること。MS-DOSでのCD-ROMドライバの組み込みもまた難儀だけど是非とも。更に、MS-LAN Managerなんぞをインストールすればかなり快適。

最後に、ここからはMS-DOSの知識は必須でありWindowsしか触ったことが無い場合は覚悟すること。

インストール開始

それでは、実際にインストールを開始。インストールの流れは下記のとおり。

  1. インストール先のマシンのハードディスクの、MS-DOSによる領域確保及びフォーマット(2つの領域を作成し、最初の領域にはMS-DOSを、2番目の領域へFreeBSD(98)をインストール)
  2. MS-DOSのインストール(CD-ROMドライバ及びLANMAN)
  3. FreeBSD2.2.8-RELEASE及びFreeBSD(98)2.2.8R-Rev03の各種インストール用ファイルを、MS-DOS領域へコピー
  4. MS-DOSによるFreeBSD(98)ブートフロッピー作成
  5. インストール開始

FreeBSD(98)のインストール方法は多岐に渡り、CD-ROMからバイナリなどをインストールするのがポピュラーなようだけど、今回は敢えてMS-DOSファイルシステム経由でのインストールに挑戦。

1.ハードディスクの領域確保及びフォーマット

インストール先のマシンでMS-DOSをフロッピーディスクから起動し、領域確保及びフォーマットを実行。一つのハードディスクをMS-DOS用とFreeBSD(98)用に分割する必要があるけど、一体どのくらいの容量を確保してやれば良いのか?という疑問が当然湧いてくる。一応、MS-DOS用の領域として150MBを、FreeBSD(98)用の領域として最低でも300MB以上確保してやれば良いかと考える。なぜMS-DOS用の領域にそんなに必要かと言うと、FreeBSD(98)の各種インストール用ファイルが合計で100MB程度のサイズだから。

まずは、MS-DOSプロンプトが表示されている状態で「format /h」と入力。

すると、なんだか恐ろしげなメッセージが表示される。が、ここは躊躇せずに「はい」を選択。

https://hkjunk0.com/wp-content/uploads/format1.jpg
なんだか脅しっぽいメッセージ(^^;)。おっかないですなー。

まずは最初に「初期化」を行ない、装置全体をきれいにする。その後に「領域確保」。取り敢えずMS-DOS用の領域を2つ確保。最初の領域は150MBで、2番目の領域は残り全部を割り当てする。最初の領域にはMS-DOSのシステムを転送すること。

https://hkjunk0.com/wp-content/uploads/format2.jpg
きちんと各項目の意味を理解しないで進むと、大変なことに(^^;)。

取り敢えずこんなもん?あと、「状態変更」でどちらの領域も「BOOT可能」にしておくこと。今回のインストールの対象となるハードディスクは約500MBの容量なのでこういう感じに。

https://hkjunk0.com/wp-content/uploads/format3.jpg
最初の領域のサイズは150MBで、後の領域のサイズは357MBで確保。

2.MS-DOSのインストール及びCD-ROMやLANMANのインストール

次に、MS-DOSの起動フロッピーを抜いてハードディスクからMS-DOSを立ち上げ、MS-DOS用に確保した最初の150MBの領域にMS-DOSのシステムをインストール。一応「mkdir dos」てな感じでDOSフォルダを作ってその中にインストール。MS-DOSのファイルをルートディレクトリにばら撒くのはくれぐれも避けること。後々面倒になるので。

その後にCD-ROMドライバとLANMANをインストールし、「母艦」とファイルのやり取りが出来るように設定。LANMANが使えれば、その後の作業効率が段違いに良くなるはず。あ、当然プロトコルはTCP/IPを指定すること。

参考まで、自分の使っている環境での Config.sys と Autoexec.batを掲載。HSBも一緒に使ってたりする(^^)。

(Config.sys)
device=\uty\hsb.exe vc y-
rem (vc ) 環境検査
rem (y- ) 非常駐指定

device=\uty\pk486sq.com ← PK-486S50のキャッシュドライバ

files=100
buffers=30,0
fcbs=4,0
break=on
lastdrive=z

shell=\command.com a:\ /p /e:1024
device=\uty\pkxms.sys ← XMSドライバ
device=\dos\emm386.exe /umb /highscan /p=64
device=\uty\hsb.exe vu y2 t2 i26 x-
rem (vu ) 環境検査は行なわない・UMBを利用する
rem (y2 ) 常駐タイプ指定
rem (t2 ) ホットキー処理ルーチンの指定
rem (i26) 初期化オプション:FM音源の消音
rem (x- ) 標準ブート機能は禁止
dos=high,umb

devicehigh=\dos\kkcfunc.sys
devicehigh=\dos\setver.exe
devicehigh=\uty\cdsdmini.sys /d:cd_101 /i2 ← 御存知フリーのCD-ROMドライバ

devicehigh=\lanman.dos\drivers\dosutils\prt.dos ← ここからはLANMANの設定
devicehigh=\lanman.dos\drivers\protman\protman.dos /i:\lanman.dos
devicehigh=\lanman.dos\drivers\ethernet\lgy98\lgy98.dos
devicehigh=\lanman.dos\drivers\protocol\tcpip\tcpdrv.dos /i:\lanman.dos
devicehigh=\lanman.dos\drivers\protocol\tcpip\nemm.dos

(Autoexec.bat)
@echo off
set prompt=$p$g
path=a:\;\a:\dos;a\:uty;a:\turboc
set hsbext=tmp
set exview=es.com

@rem ==== LANMAN 2.1 === DO NOT MODIFY BETWEEN THESE LINES === LANMAN 2.1 ====
set path=a:\lanman.dos\netprog;%path%
isurendr /p /e /s
\lanman.dos\drivers\protocol\tcpip\umb.com
net start workstation
load tcpip
net logon XXXXXXXX * ← ここは内緒(^^;)
@rem ==== LANMAN 2.1 === DO NOT MODIFY BETWEEN THESE LINES === LANMAN 2.1 ====

\dos\mscdex.exe /d:cd_101 /l:q /k ← MSCDEX

3.FreeBSD2.2.8-RELEASE及びFreeBSD(98)2.2.8R-Rev03の、MS-DOS領域へのコピー

インストール先のマシンに確保したMS-DOSの領域に、FreeBSD2.2.8-RELEASE及びFreeBSD(98)2.2.8-Rev03の各種インストール用ファイルをコピー...って、実はFreeBSD(98)のインストールそのものより、こっちが難しいかも。取り敢えずFreeBSD2.2.8-RELEASEはCD-ROMでゲットし、FreeBSD(98)2.2.8-Rev03はインターネット経由でダウンロードしたという前提で話を進める。

まずは、インストール先のマシンに、FreeBSDの各種インストール用ファイルを格納するためのディレクトリを作成。ルートディレクトリで「mkdir FreeBSD」とタイプ。今後はこのディレクトリに各種インストール用ファイルをコピーする。

「母艦」の方でダウンロードしたFreeBSD(98)2.2.8-Rev03(多分TGZ形式)を解凍。そうすれば以下のディレクトリが作成されるはず。

ドライブ C: のボリュームラベルは WINDOWS 98
ボリュームシリアル番号は 411C-0FF7
ディレクトリは C:Temp228r-r03

. <DIR> 01-08-05 22:22 .
.. <DIR> 01-08-05 22:22 ..
FLOPPY98 <DIR> 01-08-05 22:22 floppy98
TOOLS98 <DIR> 01-08-05 22:22 tools98
JCATMAN <DIR> 01-08-05 22:22 jcatman
98SRC <DIR> 01-08-05 22:22 98src
98README <DIR> 01-08-05 22:22 98readme
98DOC <DIR> 01-08-05 22:22 98doc
98BIN <DIR> 01-08-05 22:22 98bin
0 個 0 バイトのファイルがあります.
9 ディレクトリ 1,565,974,528 バイトの空きがあります.

これらのファイルを、インストール先のマシンの、先程作成したディレクトリにコピーすりゃいいんだけど、ちょっと待った!ファイルサイズは?

https://hkjunk0.com/wp-content/uploads/228filesize.jpg
フォルダのプロパティでサイズを確認すると、22.7MBもあったりする。

...こんなにあるんだけど、どうする?フロッピーで根気強くコピーする?やってられないという人は、以下の3択から選択すること。

  1. LANMAN経由でさくっとコピー → 一番楽かも。しかし設定が一番難しいかも
  2. ファイルを全てCD-Rに焼いてしまい、SCSI CD-ROM経由でコピー → 本体であるFreeBSD2.2.8-RELEASEも一緒にまとめて焼いてしまえば、かなり後々楽になるはず。でもCD-Rを持っていないと駄目
  3. 「母艦」がPC-98×1で、しかもSCSIな周辺機器を接続しているのなら迷う事無し。直接「母艦」にインストール先のハードディスクを接続し、さくっとコピーする。→「母艦」がIBM PC/ATなやつなら当然駄目

結局、自分はLANMAN経由でコピーを実行。あっという間にコピーが終わる。次に、CD-ROMにあるFreeBSD2.2.8-RELEASEの各種ファイルをコピー。標準的な構成なら、以下のディレクトリがあるはず。

ドライブ Q: のボリュームラベルは FreeBSD22
ボリュームシリアル番号は C93D-2AE6
ディレクトリは Q:\

ABOUT TXT 8,723 98-11-30 7:14 ABOUT.TXT
BIN <DIR> 98-12-12 2:17 BIN
BOOT CAT 2,048 99-01-29 2:37 BOOT.CAT
CATPAGES <DIR> 98-12-12 2:21 CATPAGES
CDROM INF 27 98-11-30 7:14 CDROM.INF
COMPAT1X <DIR> 98-12-12 2:21 COMPAT1X
COMPAT20 <DIR> 98-12-12 2:22 COMPAT20
COMPAT21 <DIR> 98-12-12 2:22 COMPAT21
DES <DIR> 98-12-15 2:59 DES
DICT <DIR> 98-12-12 2:24 DICT
DOC <DIR> 98-12-12 2:29 DOC
ERRATA TXT 747 98-11-30 7:14 ERRATA.TXT
FLOPPIES <DIR> 98-12-12 2:31 FLOPPIES
GAMES <DIR> 98-12-12 2:35 GAMES
HARDWARE TXT 19,440 98-11-30 7:14 HARDWARE.TXT
INFO <DIR> 98-12-12 2:38 INFO
INSTALL TXT 23,557 98-11-30 7:14 INSTALL.TXT
ISO-IMAG TXT 407 98-12-03 0:45 ISO-IMAG.TXT
LAYOUT TXT 4,514 98-11-30 7:14 LAYOUT.TXT
MANPAGES <DIR> 98-12-12 2:45 MANPAGES
PACKAGES <DIR> 98-12-14 17:33 PACKAGES
PORTS <DIR> 98-12-12 2:45 PORTS
PROFLIBS <DIR> 98-12-12 2:55 PROFLIBS
README TXT 4,519 98-11-30 7:14 README.TXT
RELNOTES TXT 12,571 98-11-30 7:14 RELNOTES.TXT
SRC <DIR> 98-12-12 3:44 SRC
TOOLS <DIR> 99-03-02 16:32 TOOLS
TRANS TBL 1,377 99-03-02 16:37 TRANS.TBL
TROUBLE TXT 16,318 98-11-30 7:14 TROUBLE.TXT
UPGRADE TXT 7,887 98-11-30 7:14 UPGRADE.TXT
XF86333 <DIR> 98-12-12 1:26 XF86333
13 個 102,135 バイトのファイルがあります.
18 ディレクトリ 0 バイトの空きがあります

先程のFreeBSD(98)2.2.8-Rev03と同様、これらのファイルを先程作成したディレクトリにコピーすればいいけど、ここで気をつけて欲しいのは、「PACKAGES」及び「PORTS」、「XF86333」というフォルダはコピーしないということ。もしこれらのフォルダをコピーしようとしたら、150MBもあるハードディスクの空きなんか、一発で無くなっちまうので。くれぐれも気をつけること。これらのファイルはインストールには取り敢えず不要。

ちなみに、上記の3つのフォルダを除いたファイルサイズは以下の通り。

https://hkjunk0.com/wp-content/uploads/228filesize2.jpg
全てのフォルダを指定すると、コピー先の空き容量が一瞬でなくなる。

しかし、特定のディレクトリを除いてコピーするのも結構大変かも。ここは一旦「母艦」にCD-ROMの内容をまるまるコピーして、その後不要なディレクトリを削除し、それからインストール先のディレクトリにコピーというのがお洒落かも知れない。

なお、MS-DOS経由でコピーする事により、いわゆる「ロングファイルネーム」が「普通のファイルネーム」に化けてしまうけど気にしないこと。取り敢えずインストール自体には支障がないので。

4.MS-DOSによるブートフロッピー作成

さて、そろそろ佳境に。ここまでで、インストール先のマシンのディレクトリ「FreeBSD」に必要な各種インストール用ファイルがコピーされているはず。なお、ここで「母艦」とはおさらば。

では、次にブートフロッピー作成を開始。必要なのはフロッピーディスク。3.5インチを1枚で結構。

まずはフロッピーディスクのフォーマットから。古いタイプのPC-98は、いわゆる2HDというか、1.2MBの容量しかサポートしていなかったりする。A-Mateあたりから1.44MBもサポートしているが。インストールに使用するフロッピーディスクは、「2HC」タイプ(512バイト/セクタ、15セクタ/トラック、80シリンダ)でないと駄目。これは、いわゆるPC-98用の1.2MBの容量の「2HD」タイプとは微妙に違っていたりする。「どうすりゃいいんだよ」とお悩みの貴方、インストール先のマシンの、MS-DOSプロンプトが出ている状態で、フロッピーがCドライブだとすると、「format c: /5」と入力。なお、このフォーマットされたフロッピーの容量は、1,213,952バイトとなる。

更に、MS-DOSプロンプトが出ている状態で、「cd a:\freebsd\tools98\dostools」と入力。そこで「dir」とすれば、「rawrite.exe」という実行形式のファイルが出てくる。下のような感じ。

ドライブ A: のボリュームラベルは MS-DOS62
ボリュームシリアル番号は 2518-0802
ディレクトリは A:\FREEBSD\TOOLS98\DOSTOOLS

. <DIR> 01-10-28 11:44
.. <DIR> 01-10-28 11:44
RAWRITE EXE 13,088 96-11-22 17:53
SRC <DIR> 01-10-28 11:44
4 個 13,088 バイトのファイルがあります
26,058,752 バイトの空きがあります

ここで、おもむろに「rawrite」と入力すると、「ソースファイルネームを入れろ」というメッセージが表示されるので、「a:\freebsd\floppy98\boot.flp」と入力。次に、「どこのフロッピーに作るんだよ」とかいうメッセージが出て来るので、先程フォーマットしたフロッピーのドライブ番号を入力(今回はCドライブなので”C”と入力)。そうすれば、「Cドライブにフロッピーを入れてリターンキーを押せ」というメッセージが表示されるので、最後にちょこんとリターンキーを押してやると、ブートフロッピーの作成が始まる。

https://hkjunk0.com/wp-content/uploads/rawrite.jpg
フロッピー使いにはお馴染みの「rawrite」。ディスクイメージの書込み用ソフトですな。

こういう感じ。最後に「Done.」と表示される。これでブートフロッピーの作成が完了。

5.インストール開始

いよいよインストール開始!!ここではやる気持ちを落ち着かせるために、インストール先のマシンの電源を一旦切り、ブートフロッピーにラベル貼りでもして休憩すること。

そしたらフロッピーを再度セットし、電源を投入。そうすればフロッピーを読みに行き、下のような画面になる。

https://hkjunk0.com/wp-content/uploads/boot01.jpg
フロッピーディスクからブート中の画面。

この状態でカーネル(本体みたいなもの)を解凍中。低速マシンだと結構時間が掛かったりする。

その後に、カーネルの設定メニューが表示されるので、ここは気合でそのままリターンキーを押す。

https://hkjunk0.com/wp-content/uploads/boot02.jpg
かなり待たされた後にカーネルの設定メニューが出現。

この後、しばらくデバイスを認識する状態に突入。あんまりにも長く感じても気にしないこと。とは言っても、1時間以上掛かるなんてことは普通は無いので、どうにも進まなくなったら多分認識できないデバイスにぶち当たっているはず。その際は電源を切って再挑戦 → いわゆるビジュアルモードでデバイスの設定を行なうこと。普通のデバイスを使用していれば、大体はここらへんもさくっと進むはず。どうしても先に進まない場合、起動に必要最低限のデバイスだけ接続して試してみること。

https://hkjunk0.com/wp-content/uploads/boot03.jpg
頑張ってデバイスを認識してくれているの図。

と、突然ヘルプ用フロッピーの入力をするかどうか尋ねてくるので、「No」を選択してリターンキーを押す。

https://hkjunk0.com/wp-content/uploads/boot04.jpg
ここは「No」を選択すること。

捨て台詞を吐いて来るけど、気にしないでリターンキーを再度押す。

https://hkjunk0.com/wp-content/uploads/boot05.jpg
気にしないでそのままリターンキーを押す。

と、メインメニューが唐突に表示される。ここまで来たらしめたもん。ここで、カーソルを「6 カスタム」に移動してリターンキーを押す。

https://hkjunk0.com/wp-content/uploads/boot06.jpg
ようやっとメインメニューが出現。カスタムインストールを開始。

ここで、カスタムインストレーションメニューが出てくるので、カーソルを「2 パーティション」に移動してリターンキーを押す。

https://hkjunk0.com/wp-content/uploads/boot07.jpg
2.のパーティションの割り当てを選択。

ここから、FDISK パーティションエディタを使って、FreeBSD(98)用のディスク領域(スライス)の割り当てを行なう。御存知の通り、FDISKは操作とか一つ間違えると、かなりのダメージをディスクに与えるので慎重に操作すること。

https://hkjunk0.com/wp-content/uploads/boot08.jpg
これまたよく分からないであろうFDISKの操作画面。取扱注意ということで。

 「開始位置」というところに、4つの領域があるのが分かるかな?(一番下の領域は反転していて文字がつぶれている。失礼)。この中で開始位置が「256」という領域が、MS-DOSの領域で、その次の開始位置が「307456」という領域が今回FreeBSD(98)をインストールする予定の領域。どちらもMS-DOSにより領域確保したので「種別」の項目が「fat」となっているはず。

まずは、FreeBSD(98)をインストールする予定の領域を確保。開始位置が「307456」という領域にカーソルを移動して、「D」のキーを押す。これは、スライス削除(領域の削除)ということを意味しており、一旦MS-DOSにて確保した領域を削除ということ。

そうすると、一番下に「種別」が「unknown」という空き領域が出現するので、ここで「C」のキーを押す。これは、スライス作成(領域の確保)ということ。

その後、「新しい FreeBSD スライスの名前を入力して下さい。」というダイアログボックスが出てくるので、そのままリターンキーを押す。

https://hkjunk0.com/wp-content/uploads/boot09.jpg
ハードディスクの後半にFreeBSD用の領域を確保。

次に、スライスのサイズを指定するように要求してくるが、最大限の領域を確保するためにそのままリターンキーを押す。

https://hkjunk0.com/wp-content/uploads/boot10.jpg
スライスの大きさ=確保する容量なので、ここではそのままリターンキーを押す。

これで、FDISKによる領域確保は完了。一番下に「種別」が「freebsd」という領域が確保されているはず。ここまで来たら「Q」のキーを押してFDISKを終了。

https://hkjunk0.com/wp-content/uploads/boot11.jpg
FreeBSD用の領域確保完了!!

ここで、カスタムインストレーションメニューに戻るので、カーソルを「3 ラベル」に移動してリターンキーを押す。

画面が、「FreeBSD ディスクラベルエディタ」に切り替わり、最初の状態では「sd0s1(最初のMS-DOSスライス)」が表示される。

https://hkjunk0.com/wp-content/uploads/boot12.jpg
取り敢えず領域を確保しただけの状態。

これからは、前項にて確保したFreeBSD(98)用のスライス(領域)に対し、更に区画(パーティション)を設定する作業となる(しばしば、「パーティションを切る」とも表現される)。FreeBSD(98)は、標準では4つのパーティションが必要。「/(ルート)」、「swap(スワップ)」、「/var(バー)」、「/usr(ユーザ)」。色々と使用目的によって確保するサイズが異なるけど、取り敢えず自動でサイズを割り当てるために「A」のキーを押す。

https://hkjunk0.com/wp-content/uploads/boot13.jpg
更に細かい区画(スライス)を設定。

自動的に「/」、「swap」、「/var」、「/usr」の4つの区画が、適当なサイズで確保される。今度は、MS-DOS領域をFreeBSD(98)側から認識させ(マウント)、インストールに使用するために、カーソルキーを「sd0s1」の区画に移動して、「M」のキーを押す。そうすると、この区画のマウント位置を指定するように要求してくるので、「/msdos」と入力してリターンキーを押す。

https://hkjunk0.com/wp-content/uploads/boot14.jpg
MS-DOSエリアもFreeBSD側から使えるように設定。

少し見づらいけど、MS-DOS領域に「/msdos」という区画が割り当てられている。この後にFreeBSD ディスクラベルエディタを終了するために「Q」のキーを押す。

https://hkjunk0.com/wp-content/uploads/boot15.jpg
無事にMS-DOS区画の割り当てが完了。

ここで、カスタムインストレーションメニューに戻るので、カーソルを「4 配布ファイル」に移動してリターンキーを押す。

ここで配布ファイルの選択になるが、取り敢えずカーネルの再構築が出来れば良いので、カーソルを「3 カーネル開発」へ移動してスペースキーを押す。

https://hkjunk0.com/wp-content/uploads/boot16.jpg
3.のカーネル開発を選択。

ここで、暗号化ソフトウェアをインストールするかどうか尋ねてくるので、カーソルを「No」へ移動してリターンキーを押す。

https://hkjunk0.com/wp-content/uploads/boot17.jpg
暗号化ソフトは導入せず。

今度は、「portsコレクション」をインストールするかどうか尋ねてくるので、カーソルを「No」へ移動してリターンキーを押す。この後に最初の配布ファイルの選択画面に戻るので、「3 カーネル開発」の左側のボックスに「X」のチェックが入っていることを確認し、画面の一番下の「<<< 0 終了」にカーソルを移動してリターンキーを押す。

https://hkjunk0.com/wp-content/uploads/boot18.jpg
「ports」コレクションも導入せず。

ここで、カスタムインストレーションメニューに戻るので、カーソルを「5 メディア」に移動してリターンキーを押す。

インストール元のメディアの選択を行なうけど、今回はMS-DOSの領域にコピーしたファイルからインストールするので、カーソルを「4 DOS」に移動してリターンキーを押す。

https://hkjunk0.com/wp-content/uploads/boot19.jpg
インストール元はDOS領域を選択。

インストール元のファイルが保存されているMS-DOSの区画を尋ねてくるので、最初の区画「sd0s1」にカーソルを移動してリターンキーを押す。

https://hkjunk0.com/wp-content/uploads/boot20.jpg
MS-DOS区画を指定してやる。

ここでまたカスタムインストレーションメニューに戻るので、カーソルを「6 コミット」に移動してリターンキーを押す。そうすると、最後の確認ということで何やら脅迫めいた(^^;)メッセージが表示されるけど、いまさら引けないのでそのままリターンキーを押す。

https://hkjunk0.com/wp-content/uploads/boot21.jpg
究極の決断...さっさとリターンキーを押すこと(^^;)。

この後に最終的な区画の確保やインストールの準備を自動的に行ない、インストールの開始。画面上では進行状況という事でグラフが表示される。画面下には、読み込んだファイルの累積サイズや速度が表示される。もともと激遅のマシンで、更にまだ486BL用のCPUキャッシュも効いていないので、死ぬほどインストールに時間が掛かるので覚悟すること。大体3時間程度...。

https://hkjunk0.com/wp-content/uploads/boot22.jpg
終わるのをぼけーっと待っているのは無駄。最悪一晩放置でも大丈夫(^^;)。

具体的にどういうファイルをコピーしているか確認するには、「GRPH」キーを押しながら「f2」キーを押す。そうすると画面が切り替わり、インストール先のディレクトリ及びコピーしているファイル名が逐一表示される。元の画面に戻るのは「GRPH」キーを押しながら「f1」キー。

健気に色々なファイルをコピーしてくれている。

全てのファイルをコピーし終えると、総合設定メニューに移動するかどうか尋ねてくるので、そのままリターンキーを押す。

https://hkjunk0.com/wp-content/uploads/boot24.jpg
総合設定メニューにジャンプ。

「FreeBSD設定メニュー」が表示されるので、「R Rootパスワード」にカーソルキーを移動してリターンキーを押す。そうすると、画面の下の方で新しいパスワードを入力するように要求されるので、管理者のパスワードを入力。入力後、再度同じパスワードを入力するように要求されるので再び同じパスワードを入力。

https://hkjunk0.com/wp-content/uploads/boot25.jpg
管理者用のパスワード設定のメニューに飛ぶ。

管理者パスワードの設定後、再度設定メニューが表示されるので、メニューの一番下の「E 終了」にカーソルを移動してリターンキーを押す。

この後に、カスタムインストレーションオプションのメニューが表示されるので、「0 終了」にカーソルを移動してメニューを終了する。

最後に、インストールのメインメニューの画面に戻るので、カーソルの右キーを押して、「導入終了」を選択し、リターンキーを押す。

https://hkjunk0.com/wp-content/uploads/boot26.jpg
再起動の一歩手前。

システムを再起動させるために、インストールフロッピーを抜いてからリターンキーを押す。

その後自動的にリセットがかかり、リブートする。

2つ目の領域が、「FreeBSD」の領域。カーソルを移動してリターンキーを押すと、FreeBSD(98)が自動的に立ち上がるはず。

https://hkjunk0.com/wp-content/uploads/boot27.jpg
お馴染みの固定ディスク起動メニュー。

起動にもかなり時間が掛かったりする。特にSCSIデバイスの認識の個所で時間が掛かるけど、ハングしているのではないので気長に待つこと。

「Login:」のメッセージが出たら、「root」と入力しリターンキーを押し、次に先程設定した管理者のパスワードを入力し、リターンキーを押す。これがいわゆるログインという作業。

https://hkjunk0.com/wp-content/uploads/boot28.jpg
ログイン用のIDとパスワードを入力。

この画面が出たら、めでたくインストール完了。取り敢えずこの状態で終了させるには、「myname#」というプロンプトが出ている状態で「shutdown -r now」と入力し、リターンキーを押す。その後自動的に再起動を行ない、最初の固定ディスク起動メニューが表示されるので、そこでマシンの電源を切ること。

https://hkjunk0.com/wp-content/uploads/boot29.jpg
めでたくインストール完了!!

6.CPUキャッシュを有効にする~いきなりのカーネル再構築...

冒頭のマシンの説明にて触れたけど、このPCのCPUは80286でなく、486相当のCPUアクセラレータに換装されており、MS-DOSではキャッシュプログラムを「config.sys」に組み込んでやることで本来の性能を発揮できる。が、標準のFreeBSD(98)2.2.8Rでは、正しいCPU判定がされないためにCPUのキャッシュが効かない。つまり、そのままではとても実用に耐えられるスピードが出ない。

ということで、CPUをきちんと判定するパッチを当てて(プログラムの一部修正)カーネル(OSの中核部分)を再構築し、CPUキャッシュを有効にする必要があったりする...って、いきなりカーネルの再構築!!難易度は相当高かったりする。

まずは、パッチの内容の取り込みから。再度「母艦」の出番。母艦にてインターネットに接続し、問題のあるハードウェア/ソフトウェア(私家版)にジャンプ。その中で以下のパッチの「— sys/i386」から「/*」までの部分を「bl.txt」という名前で「母艦」に保存。

CPU IBM IBM486SX3, 486SLC2
BlueLightning として認識されないことがある。原因は CPU 判定にお いて Cyrix/IBM と判定するためのフラグ変化が起こらないため。
以下のパッチで BlueLightning と認識させることができる。

— sys/i386/i386/identcpu.c- Tue Apr 13 12:13:03 1999
+++ sys/i386/i386/identcpu.c Tue Apr 20 08:48:57 1999
@@ -665, 7 +665, 7 @@
u_char ccr3;
u_long regs[4];
– if (strcmp(cpu_vendor, “CyrixInstead”) == 0) {
+ if (strcmp(cpu_vendor, “CyrixInstead”) == 0 || *cpu_vendor == ”) {
if (cpu == CPU_486) {
/*
* These conditions are equivalent to:
@@ -679, 6 +679, 8 @@
return;
}
}
+ }
+ if (strcmp(cpu_vendor, “CyrixInstead”) == 0) {
switch (cpu_id & 0xf00) {
case 0x600:
/*

保存後に、「母艦」からインストール先のマシンにそのファイルをコピー。あ、これはMS-DOS領域の例えば「Temp」ディレクトリにでもコピーすること。今度のファイルのサイズは小さいので、フロッピー経由でもOK。

次に、FreeBSD(98)を立ち上げてログインし、プロンプトが表示されている状態で「cd /msdos/temp」とタイプしてリターンキーを押し、それから「ls」とタイプしてリターンキーを押す。先程コピーした「bl.txt」というファイル名がが表示されるはずなので、そこで「cp /msdos/temp/bl.txt /usr/src/sys/i386/i386」とタイプしてリターンキーを押す。

上記の作業で「bl.txt」が「/usr/src/sys/i386/i386」にコピーされているはずなので、念のため「ls /usr/src/sys/i386/i386/bl.txt」とでもやってファイルの存在を確認すること。

それでは、これから「/usr/src/sys/i386/i386/identcpu.c」というファイルにこの「bl.txt」というファイルをパッチ当て。パッチを当てたファイルでカーネルの再構築を行なうことにより、CPUキャッシュを有効にする。念のため、「cp /usr/src/sys/i386/i386/identcpu.c identcpu.org」とやって、バックアップを取っておくこと。

ここで、いきなりパッチ当てと行きたいところだけど、「cd /usr/src/sys/i386/i386」とやって、「patch
< bl.txt」とやったら、絶対エラーが出るはず。

なぜかエラーが出てしまう。

これは、MS-DOS経由でコピーした「bl.txt」に原因があるというか、そもそもMS-DOS/WindowsとUNIXの改行コードの扱いに違いがあるのが原因。試しに、「ee bl.txt」とやってみること。「ee」というのは、これから良く出番があるけど標準のスクリーンエディタ。「bl.txt」の内容が表示されるけど、各行の末尾に「^M」という記号がついているのが分るかと。この文字は改行コード(CR)というもので、MS-DOS/Windows系のOSでは必ず改行に必要なコードだったりする。

「^M」というのがWindows系のファイルで必要な改行コード。

要するに、この改行コードを除去してしまえばうまく行くはず。「ee」を終了させるには、「ESC」キーを押してからリターンキーを押す。

それでは、具体的にどうすれば改行コードを除去できるのか?これは、「sed」というエディタの出番だったりする。取り敢えず「sed -e ‘s/.$//’ bl.txt > bl.patch」とやってみること。これで、「bl.patch」というパッチファイルが作成される。その後、また「ee」で「bl.patch」の中身を見てみると、見事に「CR」コードが除去されているはず。

「ee」を終了して、「patch < bl.patch」をやってみると、見事にパッチ当てが成功するはず。

見事にパッチ当てが成功!!

さて、これで準備完了。これからいきなりカーネルの再構築。先程パッチを当てた「identcpu.c」をカーネルに反映させ、CPUキャッシュを有効にする。

カーネルを再構築するためには、カーネルの諸設定を記述したコンフィグファイルを修正する必要があったりする。

プロンプトが表示されているはずなので、「cd /usr/src/sys/pc98/conf」と入力し、リターンキーを押す。次に「cp GENERIC98 MyKernel98」と入力し、リターンキーを押す。これは、元々のコンフィグファイルのバックアップを取り、「MyKernel98」というコンフィグファイルを使用して新しいカーネルを作成する準備。

次に、「ee MyKernel98」とやる。エディタが立ち上がり、コンフィグファイルを読み込むはず。

13行目に、「ident “GENERIC98″」という行があるので、それを「ident “MyKernel98″」と修正してそのまま保存及び終了する。これは「ESC」キーを押して、リターンキーを2回押せば大丈夫。

次に、「config MyKernel98」とやり、少しすると、「Kernel build directory is ../../compile/MyKernel98」と表示されるので、そこで「cd ../../compile/MyKernel98」と入力し、次に「make depend; make」と入力。

これでコンパイル開始。簡単かも(^^;)。ここからかなりの時間が掛かったりする。丸々一晩掛かるかも。しかもプログラムのソースのどこかにタイプミスとかのエラーがあると、即その個所で止まりやがるので再度修正を行なうこと。

本当に丸々一晩掛かるので、寝る前に実行すること(^^;)。

コンパイルが正常に終了すると「loading kernel」と表示され、プロンプトが表示されるので「make install」とする。これでコンパイルした新しいカーネルがインストールされる。

インストール後、再度プロンプトが表示されるので。「shutdown -r now」とやってマシンを再起動すること。これで、CPUキャッシュが有効となったカーネルが起動するはず。

全般的にきびきび動作するようになったはずのカーネルさん。

因みに、CPUキャッシュが有効になってどの位速度がアップするのかというと、具体的には、マシンを起動してからLoginプロンプトが表示されるまでの時間で「5分25秒」から「3分30秒」と、倍近く速度アップ。また、各種コマンドもきびきびと動作し、快適そのもの。

とはいっても、最近のマシンに比べりゃお話にならないけど。でも、こんな風に色々といじれるのもPC-UNIXの醍醐味のはず。

(後日談) この後色々といじろうと思ったけど、結局あまりの遅さに、ついに利用を断念...すんまそん。結局単なるインストール記になっちまったことを深く反省(^^;)。