†逆襲のOS/2†
作成開始日 2021.01.19
最終更新日 2021.01.28
本稿は、仮想化環境、レスキュー区画、ファイル・インストール、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は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イメージ方式を採用した。基本を身に着けずに応用に手を出すのは無茶。