†逆襲のOS/2†
FAT32.IFS:FTA32ドライブへのアクセス
作成開始日 2010.12.09
最終更新日 2011.12.30
FAT32.IFSはOS/2でFAT32フォーマットのドライブの読み書きが可能になるドライバ。フリーで利用できる。基本的に内蔵ハードディスク用のドライバだと思われるが、USBストレージ(USBメモリ/SDカード/USB HDD等)でも使用できる。ただし、スムーズに運用するには、それなりのコツが必要。単純にFAT32.IFSだけ組み込んでも、期待通りの動作はしないだろう。市販USBメモリを差し込んで、そのままスンナリ使えるようにしたいと思ったら、システムを少々変更しなくてはならない。
インストール手順
@IDE周りをダニエラ小母様化する
以下のドライバをインストールする。すべてHobbesから入手可能。
- DANIS506.ADD
- DANIDASD.DMD
- DANIATAPI.FLT
CONFIG.SYSの以下の行の先頭にREMを付けて無効にする。
- BASEDEV=IBM1S506.ADD
- BASEDEV=OS2DASD.DMD
- BASEDEV=IBMATAPI.FLT
なお、DANIATAPI.FLTは8.3名に収まらない。システムドライブがFATの場合は、ファイル名を切り詰めて使用すること(DDPの内容を書き換えてよいが、単純にDANIATAP.FLT等にリネームして\OS2\BOOTにコピーする方が簡単)。
ALVMを無効にする
CONFIG.SYSの以下の行の先頭にREMを付けて無効にする。
もちろん、これによって論理ボリューム管理は不可能になる。FDISK同様の物理管理しかできなくなる。しかし、これによってUSBストレージの扱いが飛躍的に楽になる。Windows環境とほとんど同じような使い勝手で使用できる。逆に言うと、LVMが生きたままだと、後述のようにかなり面倒な手順を踏んで、区画の解放・再確保をしなくてはOS/2では使用できない。なお、LVMを殺しても、LVMプログラム自体の起動や操作は可能(LVM関連の操作結果が反映されないだけ)。
BUSBドライバを最新のものにアップデートする
動作確認が取れているのは、以下の日付のドライバ。
- USBxHCD.SYS (2003/09/30)
- USBMSD.ADD (2003/01/21)
なお、PCのUSBが1.1か2.0かは、かなり重要な問題。FAT32以前の問題として、USB1.1のPCではそもそもUSB 2.0のストレージが正常に扱えないことがある。まったくアクセス不能なのではなく、システムが極端に不安定になったり、パフォーマンスが極端に悪かったり、システムに原因不明の負荷が掛かったりする。しかし、ほとんど問題なく使用できることもある。チップセットの問題かも知れない。
CFAT32.IFSをインストールする
FAT32.IFSはHobbesなどから入手できる。zip版とwpi版があるが、個人的にはシンプルなzip版の方を好むので、zip版のインストール手順を説明する。
まず、zipを解凍して、それぞれのファイルを次のディレクトリにコピーする。ここで「x:」はシステムドライブ。
- UFAT32.DLL → x:\OS2\DLL
- FAT32.IFS → x:\OS2
- *.EXE/*.CMD → x:\OS2
次に、CONFIG.SYSの末尾に次のような行を追加する。
IFS=x:\OS2\FAT32.IFS /CACHE:2048
CALL=x:\OS2\CACHEF32.EXE /F ← /Fは常駐
最後にリブートを掛けて終了。
注 意 |
CACHE32はUnicodeサポートも提供しているのだが、これがアダになることがしばしばある。システムがクラッシュすると、2バイト名が文字化けを起こして、OS/2ではアクセス不能になることがある。こうなるとリネームも不可能で、OS/2からは全く対処できない。ところが、文字化けしたファイル名/ディレクトリ名も、Windowsからは正常にアクセスできる。リネームも可能なので、半角英数字にリネームすれば、OS/2からもアクセス可能になる。
こうした現象を防ぐには、CACHE32を起動しなければよいようだ(確証はない;経験則)。しかし、CACHE32を組み込まずに2バイト名を使った場合、今度はWindowsからアクセスするときに文字化けが発生する。実に困ったもんだ。
|
オプションと留意点
- USBストレージでFAT32.IFSを使用する場合は、USBドライバをW45_PACK収録の最新版にアップデートしておくことが望ましい。古いUSBドライバではトラブルが頻発して、まったく使い物にならなかった経験がある。
- FAT32.IFSの/EASオプションはOS/2の拡張属性を有効にするもの。これを指定すると、たとえばPMViewのサムネールなども利用できるようになる。ただし、Windowsでは拡張属性が別ファイルとして認識されるため、ファイル数が倍になる。また、OS/2でも読み書きのパフォーマンスに影響が出るようだ。用途次第。
- FAT32.IFSの/CACHEオプションは、キャッシュの容量を指定するもの。デフォルトは1024(KB)で、最大は2048(KB)。
- CACHEF32.EXEはキャッシュコントローラーで、FAT32ドライブの遅延書き込みもコントロールしている。この機能のおかげで、キャッシュサイズ以下のファイルのコピーは瞬時に終わる(実際の書き込みは少し遅れるわけだが)。
- CACHEF32.EXEは、起動時にFAT32ドライブが見つからないと強制終了してしまう。リムーバブルメディアの場合には、これは大変に都合が悪い。そこで、/Fで常駐を指定して起動している。
- FAT32ドライブに対して、コマンドラインのCOPYコマンドを実行するときは、/V(ベリファイ)オプションを付けてはいけない。コピー先のファイルが損傷する場合がある(CACHEF32が起動していれば損傷しないが、その場合はそもそも/Vが無意味?)。
- x:\OS2\DLLにコピーしたUFAT32.DLLはFAT32ドライブのCHKDSKの際に呼び出される。
LVMシステムでのFAT32 USBストレージの利用
上記の例ではLVMを無効にしているが、LVMを有効にしてたままでも、FAT32.IFSが使用できないわけではない。ただし、かなり面倒な手順を踏む必要がある。要するに、区画をOS/2のLVMの管理下に組み込む必要があるのだろう。ここでは、USBフラッシュメモリの場合を例に説明する。なお、USBメモリはフォーマットする必要があるので、中身は予めバックアップを取っておくこと。また、以下の作業にはWindows環境が必要になる。
- 予めOS/2のUSBドライバを最新版にしておく。
- USBメモリをWindows 7マシンに装着。
- コマンドラインでDISKPARTを起動。
- LIST DISKでUSBメモリのドライブ番号(n)を確認。
- SELECT DISK nでUSBメモリを選択。
- CLEANで全構成情報を初期化。【危険行為!慎重に!】
- EXITでDISKPARTを終了。
- USBメモリをOS/2マシンに装着。
- コマンドラインでLVMを起動。
- [F5]で物理ビューに切替。
- USBメモリに基本区画を作成。
- [F5]で論理ビューに切替。
- 新規ボリューム作成でUSBメモリ上に作った基本区画を選択。
- LVMを保存終了。
- USBメモリをWindows 7マシンに装着。
- FAT32フォーマットを掛ける。
以上の作業をして、ようやくOS/2でもWindowsでも読み書き可能なFAT32 USBメモリになる。以下、作業のポイントと留意点。
- 領域の解放にはWindowsマシンが必要。OS/2のLVMでは解放不可能な場合が多い。
- DISKPARTで領域を解放するときはDELETE PARTITION命令を使うのが一般的だが、この方法では解放不可能な場合も多い。そのため、ここではCLEANを使っているのだが、CLEANではパーティションの選択的削除は不可能。
- DISKPARTは完全コマンドライン命令で、なおかつ非常に強力な機能を持つため、慣れないと危険。この用途には、むしろWindows MeなどのFDISKの方が適しているのだが、Windows Meはフォーマット機能に難がある。
- Windows Meでは、小容量のUSBメモリをFAT32でフォーマットすることができない。コマンドラインで「FORAMT /fs:FAT32 d:」のようにしてもダメ。「/fs」オプションを受け付けない。コマンドラインから「CVT d:」を実行すると、FAT→FAT32変換は可能だが、それも小容量だと拒否される。フォーマット時にファイルシステムを自由に選べるWindows 7の方が便利。
- LVMで新規ボリュームを作成するときは、[物理ビュー/基本区画の作成]⇒[論理ビュー/新規ボリュームの作成]という手順が重要。いきなり新規ボリュームを作成すると、うまくいかないことがある。
- ここでは領域解放にWindowsを使用しているが、LVMGUIを使用すればOS/2上でも解放可能かもしれない。LVMGUIはLVMにPMのGUIを被せただけかと思っていたが、どうもそうではないらしい。機能的にもコマンドライン版よりも強力なようだ。使い勝手はよくないけど……てか、もうちょっとカッコ良くレイアウトしろよ(u_u;)
【逆襲のOS/2目次】
【ホーム】