PC-9801は30年前に主にMS-DOSというOSで使用されていました。このMS-DOSはシングルユーザー・シングルタスクのOSであり、動作できるアプリケーションも、基本的には640KBのメモリに制限されていました。当時のコンピュータ環境は今と比べると非常に限られていましたが、それでもユーザーたちはPC-9801を駆使してさまざまな作業を行っていました。
その頃、IBM PS/2やPC/AT互換機向けに、フリーのBSD系UNIXである386BSDが登場し始めました。386BSDは、最初の段階でいくつかのライセンス問題を抱えていましたが、それらの問題が整理され、後にFreeBSDとして正式にリリースされることになりました。
PC-9801用にも、一部の熱心なパワーユーザーによって386BSD(98)やFreeBSD(98)が移植されました。この成果により、FreeBSD 5.4以降(実質5.0以降?)は正式なFreeBSDの公式アーキテクチャの1つ(FreeBSD/pc98)として認められることとなりました。このPC98向けの移植作業は最終的にはFreeBSD 8.4R(2013年)相当のバージョンまで続きました。
386BSD, FreeBSD(98)はインテル80386以上のCPUを搭載したモデルで利用できます。PC-9801シリーズでは、1988年には80386プロセッサを搭載したモデルであるPC-9801RAが発売されました。その後の80386、80486、Pentium、さらにはそれらの互換CPUを搭載したモデルにおいてもFreeBSD(98)は動作するようです。しかしながら、FreeBSD(98) 5.0以降のバージョンについては、おそらくPC-9821シリーズの一部のモデルでしか動作しないと考えられます。(これはあくまで推測であり、断定的な情報ではありません)。
「がとらぼ」の人はFreeBSD 8.4Rから順にバージョンを遡ってインストールフロッピーディスクを使ってPC-9801FAでインストールを試みましたが、5.0〜8.4のバージョンでは、インストーラーのカーネルが起動するものの、途中でリセットがかかってしまったり、SCSIインターフェースが正しく認識されないといった問題が発生し、結局インストールを完了することができませんでした。
2024年11月21日追記:
5.2.1はインストーラーで再起動することなく、ミニマム構成でインストールする限りでは正常にインストール可能です。ただし、インストール後の動作は重くやや不安定です。インストール時またはインストール後に少し大きなパッケージをインストールしようとすると展開に半日/1日のような長い時間がかかりハングアップします。実用的とはいえないでしょう。これは、PC-9801FAの最大メモリ容量が14MBという少なさが影響しているかもしれませんし、5.xに入っているSCSIドライバが55互換のカードを完全にサポートしていないのかもしれません。
そこでインストーラーが動作した最も新しいバージョンFreeBSD(98) 4.11をインストールすることにしました。
FreeBSD 4.11Rは2005年にリリースされたバージョンであり、約20年前のものです。そのため、さまざまな点で現代のシステムと比べると非常に古いものであり、特にインターネットに接続して使用する際には注意が必要です。セキュリティ上の問題があるため、インターネットに接続する環境での使用は避けた方が良いでしょう。
FreeBSD(98), FreeBSD/pc98のインストールに使うフロッピーディスクについて
PC-98シリーズは、CDドライブから直接起動することができないため、OSのインストール手順が少し特殊です。基本的には、最初にフロッピーディスクを使用してシステムを起動させ、その後インストールの途中でCD-ROMや他の大容量メディアやネットワークから必要なファイルを転送する形で進行します。
PC-98シリーズの中でも、MateやFellowシリーズ以前のモデルに搭載されているフロッピーディスクドライブは、5.25インチ1.2MB (2HC)や3.5インチ1.23MB (2HD)など、いくつかの異なる規格が存在します。この点に関しては、PC/AT互換機やPS/2などで一般的に使用される3.5インチ1.44MB (2HD)との違いに注意が必要です。日本国内では「2HD」と呼ばれるフォーマットは、海外とは異なる仕様を指しているのです。
また、3.5インチの1.2MB(2HC)フォーマットは、東芝のDynabookなど一部の日本国内のパソコンで利用されていましたが、約1.2MBという容量はほぼ似ているもののPC-98シリーズの2HDとはフォーマットが異なるためフロッピーディスクの取り扱いには慎重さが求められました。PC-98では2HCの読み書きができるもののDynabookではPC-98の2HDを扱えなかったからです。
5.25インチの2HCフォーマットと3.5インチの2HCフォーマットは、セクタ長やセクタ数、トラック数が同一であるため、両者は同じフォーマットと見なすことができます。この3.5インチの2HCフォーマットも、PC-9801シリーズでは問題なく使用することができます。(ここまで、2DDについては省略しています)
さて、ここで何が重要かというと、FreeBSD(98), FreeBSD/pc98のインストール用メディアには、1.44MBと1.2MBの2種類のイメージファイルが提供されている点です。旧PC-98シリーズに対応する1.2MBのイメージファイルは、2HC用のフォーマットを対象としています。5.25インチのフロッピーディスクを使う場合は特に問題ありませんが、3.5インチフロッピーディスクを使用する場合は、フロッピーディスクのフォーマットに注意が必要です。というのも、PC-98で通常のフォーマットを行うと、3.5インチフロッピーディスクは2HDフォーマット(1.23MB)になってしまいます。もしその状態で2HC用のイメージをフロッピーディスクに書き込むと、読み取りエラーが発生し、FreeBSD(98), FreeBSD/pc98のインストーラーが正しく起動しないという問題が起こります。
そのため、必ず2HCフォーマットを行ってから、イメージファイルを書き込む必要があります。
PC-98のMS-DOSで3.5インチフロッピーディスクを2HCフォーマットする場合
A:¥> FORMAT B: /5 B:が3.5インチフロッピーディスクドライブの場合
PC/AT互換機のLinuxで3.5インチフロッピーディスクを2HCフォーマットする場合
$ sudo apt install ufiformat ufiformatのインストール $ sudo ufiformat /dev/sda -f 1200
USB接続の3モード対応フロッピーディスクドライブを利用する場合、デバイスは一般的に /dev/sda として認識されます。2HCフォーマットを指定するオプションは -f 1200 であり、これは1.2MBの2HCフォーマットを指します。ちなみに、通常のPC-98用の1.2MB(HD)フォーマットを指定する場合は -f 1232 というオプションを使用します。一方、PC/AT互換機やPS/2で利用される3.5インチ1.44MBの2HDフォーマットは -f 1440 というオプションで指定します。
次に、フロッピーディスクにFreeBSD(98)のイメージファイルを書き込む手順です。
FreeBSD(98)のディストリビューションには、floppy98 というディレクトリが含まれており、その中に必要なイメージファイルが格納されています。バージョンによって異なるものの、たとえばFreeBSD(98) 4.11Rのインストールには、kern.flp と mfsroot.flp の2つのイメージファイルを使用します。
一方、FreeBSD(98) 5.0R以降では、ファイル名に「small」という文字列が含まれるイメージファイルが2HC用です。ファイルサイズを確認し、1.4MiBならばDOS/V(2HD)フォーマット、1.2MiBであれば2HCフォーマットと判断することもできます。
さらに、FreeBSD(98) 5.0R以降のインストールでは、boot, kernel, mfsroot の3種類のイメージファイルを使用します。場合によっては、kernel ファイルが2つ必要になることもありますので、これらのイメージファイルの数に応じたフロッピーディスクを用意します。
Windowsで3.5インチフロッピーディスクを2HCフォーマットする場合
Windows 10 1607 (Anniversary Update) 以降のバージョンでは、2HCフォーマット機能が無効化されています。これは、古いPC98シリーズ用の1.23MB (2HD)フォーマットも同様で、Windowsフォーマット機能ではフォーマットを行うことはできません。しかし、サードパーティ製の対応アプリケーションを使用すれば、引き続き2HCやPC98用のフォーマットを行うことは可能なようです。つまり、Windows標準のフォーマット機能では対応できない古いフォーマットでも、適切なソフトウェアを導入することで可能になる余地があります。
PC/AT互換機のLinuxでフロッピーディスクにイメージファイルを書き込む場合
$ sudo dd if=./kern.flp of=/dev/sda
USB接続の3モード対応フロッピーディスクドライブを使用することで、特定のフロッピーディスクにイメージファイルを書き込むことが可能です。例えば、カレントディレクトリにある「kern.flp」というイメージファイルを書き込む場合、./kern.flp のような相対path付きで指定することができます。
なお、フロッピーディスクのイメージをフロッピーディスクに書き込む際にはフォーマット形式を指定する必要はありません。
FreeBSD(98)の5.0Rより前のバージョンは、昔からある有名な日本のFTPサイトに置いてあることが多いです。
参照: http://ftp.jaist.ac.jp/pub/FreeBSD-PC98/tars/
取得したFreeBSD(98) 4.11Rのファイルの中身はこのようになっています。
FreeBSDのディスクイメージの準備
FreeBSD(98), FreeBSD/pc98のCD-ROMイメージはFreeBSD 5.0以降では用意されています。
参照: http://ftp-archive.freebsd.org/mirror/FreeBSD-Archive/old-releases/pc98/ISO-IMAGES/
FreeBSD(98)のバージョン5.0R以前では、配布されているFreeBSD(98)のファイルとは別に、同じバージョンのFreeBSD i386用のISOイメージファイルが必要です。i386用のISOファイルは、FreeBSD公式サイトで配布されているものの他に、Walnut Creek(現在はiXsystems)のようなサードパーティから出版されたものでも問題ありません。ただし、FreeBSD(98)とi386用のISOファイルのバージョンは必ず揃える必要があります。バージョンが異なる場合、システムは正常に動作しない可能性がありますので、注意が必要です。
参照: http://ftp-archive.freebsd.org/mirror/FreeBSD-Archive/old-releases/i386/ISO-IMAGES/
複数枚構成のCDが提供されている場合は、FreeBSD(98)のインストールに必要なのは、Disc 1だけです。
取得したi386用のCDのISOイメージを編集します。
まず、事前に取得しておいたFreeBSD(98)のファイルを展開し、それらすべてのファイルをi386用CDのISOイメージ内に追加します。この作業は、WindowsまたはLinuxの環境で行えますが、それぞれのOSに応じた手順が必要です。
Windows環境では、ISOファイルを編集するために、ISO編集アプリケーションを使用します。ISO編集アプリを使って、i386用のISOファイルを開き、そこにFreeBSD(98)の展開したファイルをドラッグ&ドロップで追加します。その後、変更を保存すればISOファイルが完成します。
Linux環境の場合は、コマンドラインを使用して作業を進めることが一般的です。まず、i386用のISOファイルを任意のディレクトリに展開します。その後、展開したFreeBSD(98)のファイルを同じディレクトリに追加します。最後に、mkisofsなどのツールを使って、新しいISOイメージを作成します。(次)
$ mkisofs -r -J -o CD3_freebsd411.iso ./FreeBSD4.11R
この作業によって「CD3_freebsd411.iso」という名前のISOファイルが生成されます。
mkisofsの引数の内、./FreeBSD4.11R というのはカレントディレクトリにあるFreeBSD4.11Rというディレクトリです。このディレクトリには、i386用のISOファイルの内容と、FreeBSD(98)のファイルがすべて含まれているものとします。

作成したISOファイルの中身はこのようになります。赤枠部分がFreeBSD(98)のファイル群です。
ハードディスクイメージの作成
前回の記事でも触れたように、SCSIハードディスクの入手が非常に難しい現状があります。特に、古いPC98の環境で動作するSCSIハードディスクは、市場での入手が困難です。そこで、物理的なSCSIハードディスクの代わりに、BlueSCSIというデバイスを使用してSDカードを仮想ハードディスクとして利用することにしました。このBlueSCSIは、SCSIインターフェースをエミュレートし、SDカードをハードディスクとして認識させることができる非常に便利なデバイスです。

前回作成した1GBのハードディスクイメージについて説明します。このディスクイメージは、MS-DOS環境では902MBとして認識されました。MS-DOSが認識できるハードディスクの最大容量はFAT16であれば約4GBであり、それを超えるサイズのハードディスクはMS-DOSでは認識されないという制約があります。そのため、4GBを超えるディスクイメージを作成すると、MS-DOSにインストールできなくなります。
しかし、PC-9801FA + 日本テクサEZPHA-FA02(SCSI-IF) + BlueSCSI + MS-DOSの組み合わせでは1GBのイメージファイルを作成して902MBまで認識させることができたのが最大で、これ以上では容量が極端に小さく認識されるか、または認識できないハードディスクとして取り扱われます。
前回の作業では、1GBのハードディスクイメージファイルを作成し、そのうち64MBをMS-DOS用に割り当て、残りの領域(960MB)をすべてFreeBSD用に確保する予定でした。
しかし、960MBという限られた領域でFreeBSDを運用するのは非常に窮屈です。そこで、今回、新たに1GBのハードディスクイメージに加え、もう1つ4GBのハードディスクイメージを作成することにしました。この構成によって、MS-DOS用には128MB、FreeBSDのルートファイルシステム用には639MB、そして256MBをスワップ領域に割り当てることにしました。これにより、FreeBSDがより快適に動作する環境を整えられると考えています。
PC98エミュレータである「Neko Project 21/W」を使用して、前回と同じハードディスクジオメトリで1GBのイメージファイルを作成しました。下記の画像はその際の設定画面です。ディスクジオメトリは重要で、適切に設定しないとOSが正常に動作しない可能性があります。
PC98エミュレータNeko Project 21/Wで作成する1GBのイメージファイルは画像のとおり前回と同じハードディスクジオメトリです。

新しく4GBのハードディスクイメージを作成しました。ディスクジオメトリは画像のとおりです。このサイズは、前述のPC-9801FA〜MS-DOSの組み合わせでは正しく認識することができませんが、FreeBSDでは認識できます。FreeBSD専用のディスクとして使用する予定です。

SDカードに書き込んだハードディスクイメージファイル2つと、作成したISOファイルです。
前回の記事でBlueSCSIについて触れましたが、BlueSCSIではイメージファイルのファイル名に特定の意味があります。このファイル名によって、SCSIデバイスが正しく識別されます。たとえば、ファイル名の文字列「HD1」はSCSI-ID1のハードディスク、「HD2」はSCSI-ID2のハードディスク、そして「CD3」はSCSI-ID3のCDドライブとしてBlueSCSIに認識されます。また、ファイル名に含まれる「512」という数字は、論理セクタサイズが512バイトであることを示しています。このセクタサイズはイメージファイルを作成するときに指定する重要なパラメータです。(セクタサイズ512バイトは固定にすることが望ましいです) さらに、ファイル名に「1GB」「4GB」「freebsd411」といった文字列が含まれていますが、これらはただのメモで、特に実際の設定や動作には影響しません。
[SCSI] System="Generic" Quirks=0 EnableSCSI2=0 MaxSyncSpeed=0 SectorsPerTrack=64 HeadsPerCylinder=8
ハードディスクのパーティションについてです。1GBのハードディスクには、MS-DOS用に128MBの領域を割り当て、FreeBSDのルートディレクトリ ( / ) 用に639MB、さらにスワップ領域として256MBを設定します。4GBのハードディスクには、全体をFreeBSDの /usr ディレクトリ用に割り当てる予定です。これにより、効率的にディスクの容量を使用しつつ、各OSの動作に必要な領域を確保しています。

次に、ハードディスクのイメージファイルを書き込んだSDカード((microSD)をBlueSCSIに挿し込み、PC-9801FAの実機を起動します。電源をオンにすると、SCSIインターフェイスが正しく認識された状態が画面に表示されます。SCSI-ID1とSCSI-ID2にハードディスク (HD)、SCSI-ID3にCDドライブが認識されているため、予定通りです。

MS-DOSのインストールについては前回の記事で説明しているため、ここでは割愛します。
MS-DOSのインストールが完了した後、システムを再起動すると、最初にSCSIの認識状態が表示されます。その後、「固定ディスク起動メニュープログラム」が表示されます。このメニュープログラムは、通常、ハードディスクが1台しか接続されておらず、MS-DOSが唯一のインストールOSである場合は表示されませんが、複数のハードディスクが接続されているとMS-DOSのみがインストールされている場合でも表示されます。このメニューは、デフォルトの設定では起動したいOSを手動で選択する必要がありますが、設定を変更することで、メニューをスキップし、MS-DOSや他のOSを自動で起動させることも可能です。
今回は準備だけで終わります。次回はいよいよFreeBSDのインストールです。
関連記事: