†逆襲のOS/2†

OS/2ブータブルCD-ROMの作成

作成開始日 2021.01.19
最終更新日 2021.01.28

【目的】CD-ROMからOS/2をブートして、ZIPアーカイブの展開でシステムをインストールまたは復元する。

本稿は、仮想化環境レスキュー区画ファイル・インストール、Linuxの初歩の知識を前提としている。ただし、単にブータブルCD-ROMを作成するだけならば、本稿の記述のみで作成可能になると思う。なお、本稿ではデータ用のCDのことを総じて「CD-ROM」と表記しているが、厳密には「CD-R」や「CD-RW」のことを指す。

●ブータブルCD-ROMの作成方法

まずは、OS/2を離れて、ごく一般的なブータブルCD-ROMの作成方法のハナシ。基本原理は、CDにブート可能なフロッピーディスクのイメージ・ファイルをくっつけて、そこからブートするというもの。CD自体ではなく、仮想FDD(A:)からブートするのがミソ。また、CD-ROMの作成には、@CDに焼くISOイメージの作成、AISOイメージのCDへの書き込み、の2段階の作業が必要だが、ここでは@のISOイメージの作成を中心に説明する。

▼用意するもの:

@mkisofs(HobbesOS2siteで入手可能)

 mkisofsはISOファイル作成ツールの定番(CDへの書き込み機能はない)。
 が、本家Linux版はライセンスの関係とやらで現状入手不可能らしい。
 代替ツールとしてgenisoimageやxorrisofsなどがあるが、
 これらはmkisofsと完全互換ではなく、ネット上の情報も少ない。
 皮肉な事に、忘れられたOSであるOS/2では元祖mkisofsが生き延びている。

Aブート可能なFDのイメージ(DOSのブートディスクが適当)

 DOS時代からのユーザーならば、起動ディスクの1枚くらいは残しているだろうが、
 これから入手・作成するとなると、けっこう面倒臭い。
 手近なところで、FreeDOSのFDイメージが公開されているので、これを使う。
 ただし、日本語には対応していない;あくまでも動作チェック用

▼ソースディレクトリの作成:

@mkisofsを適当なワークディレクトリに展開する(ここでは仮に\MYWORKとする)

 なお、mkisofsはLinux系のツールなので、必要なDLLは事前にコピーしておく。
 何が必要なのかはよくわからんが…(^_^; libcやemxがあれば大丈夫かな?
 そもそも2000年のプログラムだから、最新版である必要もないだろうし…

Aワークディレクトリの中にソースディレクトリを作成する

 ソースディレクトリとは、CDに書き込むデータを入れておくディレクトリ。
 ここではディレクトリ名を仮にCDROOTとする(つまり\MYWORK\CDROOTとなる)。
 どうも、ソースディレクトリはワークディレクトリの中に作らないとダメらしい。

BFDイメージファイルをソースディレクトリにコピーする

 具体的には、FLOPPY.imgを\MYWORK\CDROOTの中にコピーする。
 なお「FLOPPY.img」は上述のFreeDOSのFDイメージファイル名(無論他でも可)。
 その他、CD-ROMに焼きたいファイルがあれば、CDROOTディレクトリにコピーする。
▼ISOファイルの作成:

mkisofsを使って、ブータブルなISOイメージを作成する

 mkisofs -o freedos.iso -b FLOOPY.img -r -J ./cdroot

 -o:作成するisoファイル名の指定;ファイル名は任意だが拡張子は「.iso」
 -b:ブート可能FDのイメージの指定
 -r -J:おまじない
 ./cdroot:ソースディレクトリは明示的な相対パス(./付き)が必要らしい
これで、FreeDOSでブートするCD-ROMのISOイメージfreedos.isoが作成される。 あとは、このisoイメージをCD-R/RWに焼くなり、仮想マシンに食わすなりすれば良い。 サンプルのためにCD-R1枚消費するのは勿体ないので、仮想マシンで試す事を推奨。

【ポイント】
 @FDイメージはソースディレクトリに入れる
 Aソースディレクトリは明示的相対パス指定が必要

●OS/2の場合

OS/2の場合もDOSと同じように、ブート可能FDのイメージを用意して、CDに書き込めばよい。ただし、ここで一つ、非常に重要な問題にぶち当たる。それは、OS/2のブートFDは1枚では起動不可能で、2枚目、3枚目と順次FDを交換する必要がある。それをmkisofsでどう実現すればよいのか−−と言うか、mkisofsにそんな機能あるのか?

答えは「わからない」。が、実際にWarp4.52のインストールCDはブート可能なわけなので、やってできないはずはない。原理が判らなくても、そのまま真似ればよい。ただし、インストールCDはインストーラが起動してしまうので扱いにくい。何とか、単純なコマンドラインに降りてほしい−−と言うことで、次のようにした。

@Warp 4.52インストールCDの\bootimgsの中にあるdisk_0_1.imgをコピーする

 コピー先は適当でよいが、Linux上で編集作業を行い、OS/2で使用するので
 LinuxからもOS/2からもアクセス可能な、例えばsambaサーバー上が便利。
ALinux上にdisk_0_1.imgを移動してマウントする
 mkdir /mnt/vfd (マウント名は任意;ここではvirtual FDの意で「vfd」とした)
 mount -t vfat disk_0_1.img /mnt/vfd
【参考】disk_0_1.imgは通常の1.44MB(HD)フォーマットではなく、2.88MB(XD)フォーマットだが、mkisofsもLinuxのmountも、2.88MBフォーマットに対応している。

B/mnt/vfdの中のCONFIG.SYSを編集する

 以下の2行をREMる;
 SET OS2_SHELL=CDINST.EXE → REM SET OS2_SHELL=CDINST.EXE
 SET OS2_SHELL=CDBOOT.EXE → REM SET OS2_SHELL=CDBOOT.EXE

Cdisk_0_1.imgをアンマウトして、OS/2からアクセス可能な場所にコピーする

 やっぱり、sambaサーバ上が適当ではないかと。
 尤も、最近のsambaは、OS/2標準の「共用と接続」ではアクセス困難。
 NetDriveのsmbプラグインをインストールする必要がある。

D編集済みのdisk_0_1.imgと、disk2.imgをソースディレクトリにコピーする

 disk2.imgはWarp 4.52インストールCDの\bootimgsからコピーする。
 ソースディレクトリの中にも\BOOTIMGSを作って、ここにまとめると良い。
 なお、\BOOTIMGSという名称にも、まとめておくことにも特別な意味はない。
 まとめて置いておいた方が見た目がよくて管理に便利なだけ。

Eソースディレクトリにインストールに必要なファイルをコピーする

 以下はOS/2のインストールに使用するファイル。
 これらのファイルがなくても、ブート自体には影響がない。
 レスキュー区画のファイル一式:LVM、FORMAT、SYSINSTX、UNZIP等
 OS/2システムのアーカイブ:ひな型システムのC:をすべてZIPしたもの
 レスキュー区画アーカイブに関しては別項で詳しく述べている。
 

FmkisofsでISOイメージを作成する

 mkisofs -o os2inst.iso -b bootimgs/disk_0_1.img -r -J ./cdroot

 基本的にはDOSのブータブルCDを作るときと同じだが、
 ブートFDのイメージの指定にパス(bootimgs/)が付いているのが特徴。
 パス指定は\CDROOTを起点とした相対パスで指定するらしい。
 無論、DOSの時と同様、bootimgsを作らず\CDROOTに平に並べても構わない。
以上で、OS/2ブータブルなCD-ROMのISOイメージos2inst.isoが完成する。ポイントは、ブート可能FDのイメージが2つ(3枚分)あること。disk_0_1.imgはFD2枚をひとまとめにしたファイルなので判るが、どうして3枚目のdisk_2.imgにチェインできているのかが判らない。判らないが、このCDでブート後、A:の中身を見るとdisk_2.imgになっている。mkisofsでは特別な指定はしなかったし、連番なら勝手にチェインするという仕様でもないようなので、disk_0_1.imgにチェインする命令が書き込まれているのだろう。いるのだろうけど判らない。判らないけど結果オーライ。

ただ、この方法だとWarp3.x/4.0では応用が難しそうだ。Hobbesなんかには、ブータブルFDを作るプログラムなんかが載っているので、それらを使えば何とか突破口が見えるかもだが…。ちなみに、OS/2用フリーソフトの中には、ブータブルCDのイメージを作成するツールもあるのだが(bootAbleとか)、これが使い方がわからん(^^; 使い方というか、何をするツールかなのかすら判らん…多分、稼働中のシステムから必要なファイルを抜き出して、設定してくれるスクリプトだとは思うんだが、それにしても判らん…

●ブータブルCD-ROMからOS/2をインストールする

ネイティブ環境の場合は、作成したos2inst.isoをCD-R/RWに焼いて(Windwos7なら簡単に焼ける)、レガシーマシンのCD-ROMドライブにセットしてブートすれば良いが、今日びそんなことをするユーザーは少ないだろう。OS/2は基本的にVirtualBoxなどの仮想化環境で使うことになる。

@OS/2をインストール仮想マシンを作成する

 VirtualBoxであれば、仮想マシンの作成時にOS/2を指定して、
 RAMを512MBに設定し、500MB以上の仮想HDDを作成する(HPFS実装上限は64GB)。
 なお、仮想HDDのサイズは展開するアーカイブのサイズに合わせること。
 デフォルト状態のWarp 4.52であれば、500MBでも十分収まるが、
 アプリ等を追加している場合は、それに合わせて大きくすること。
A仮想光学ドライブに、ブータブルCD-ROMのisoイメージos2inst.isoを設定する

B仮想マシンを起動する

 デフォルト設定であれば、光学ドライブからブートする。
 OS/2のロゴが表示され、暫くするとコマンドライン(A:)が表示される。
 「C:」でカレントドライブをC:(CD-ROM)に変更する。
 なお、仮想HDDに基本区画や論理ドライブが既に作成されている場合には、
 CD-ROMのドライブレターはD:以降にずれる。
 CD-ROMのドライブレターに依存するパス通しなどは使用しないこと。
C仮想HDDに区画を作成する
 1) LVMを起動する。
 2) ブートマネージャをインストールする。
 3) 500MB以上の基本区画を作成して、始動可能に設定する。
 4) [F3]でLVMを終了して、システムをリブートする。
D仮想HDDをフォーマットしてシステムを転送する
 再起動を掛けると、仮想HDDがC:、仮想CDDがD:になっているはず。
 1)「D:」でCD-ROMのルートに移動する。
 2)「FORMAT C: /FS:HPFS」で仮想HDDにフォーマットを掛ける。
 3)「SYSINSTX C:」で仮想HDDにシステムを転送する。
Eシステムのファイルアーカイブを展開する
 OS/2のシステムのアーカイブをos2arc.zipとすると、
 unzip -o os2arc.zip -d c:\
 このコマンドはバッチ化を推奨(前出のexp.cmd)。
以上でインストール終了。仮想CDDからos2inst.isoを抜いた状態にして、システムをリブートすれば、仮想HDDからOS/2が起動する。インストール作業に費やす時間は10分程度。あの、OS/2の延々と続くインストール作業、設定変更作業、アプリ導入作業が、全て10分で終る。誠に喜ばしいことでありますm(__)m

なお、mkisofsにはFDイメージではなく、HDDイメージでブートするオプションも存在する(-hard-disk-boot)。これを使えば、ブートFDが2枚だ3枚だという問題に悩まされなくて済む。ただし、このコマンドの使用例は見たことがない。そのため、今回は安牌のFDイメージ方式を採用した。基本を身に着けずに応用に手を出すのは無茶。


【逆襲のOS/2目次】 【ホーム】