FC2ブログ

FreeDOSで外付け光学ドライブを使う

 ネットブックAspire Oneを使ってFreeDOSで外付け光学ドライブを利用してみました。外付け光学ドライブとしてはPanasonic製のUSB接続タイプCD-RW/DVDドライブを使いました。

■USB起動DOSでUSBASPIが使えない件・・・
 光学ドライブをDOSで利用するにはUSBASPIというデバイスドライバを使います。config.sysにデバイスとしてUSBASPI.SYSを登録して利用します。DOS起動時にUSBSAPIはPCのUSB接続機器のチェックを行ないます。このとき起動デバイス自身がUSBポートを使っていると、USBASPI.SYSがロードされて以降起動用USBデバイスにアクセスできなくなり、config.sysが途中で進まなくなる問題が発生します。

起動デバイスとしてUSBポートを使わない場合、即ち内蔵フロッピーディスクドライブ(FDD)や内蔵ハードディスクドライブ(HDD)から起動する場合は問題なく起動できるはずです。

■USB接続FDDからDOSを起動させる場合
 USB接続FDDから起動する場合には上記の問題を回避する手段があります。USBASPI.SYSより前にRAMFD.SYSを使うと、フロッピーディスクの内容がメモリにコピーされて仮想FDDとなります。この時点でFDDはUSBポートを使用しないドライブとなるのでUSBASPIがロードされてもconfis.sysが停止しなくなります。

以下に、USB接続FDDからFreeDOSを起動させて光学ドライブを利用する場合について説明します。

(1)DOSで光学ドライブを使うために必要な4つのソフトをダウンロードします。

 RAMFD.SYS :RAMディスクを作成しFDの内容をコピーする。
 USBASPI.SYS :USBストレージデバイスをDOSがSCSIデバイスとして利用できるようにするドライバ。
 USBCD.SYS :USBASPI上で動作するCD-ROMデバイスドライバ。
 SHSUCDX.COM :DOSがCDファイルシステムを扱えるようにする拡張プログラム。

RAMFD.SYS、USBASPI.SYS、USBCD.SYSはPanasonicのサイトからダウンロードできます。
SHSUCDX.COMはFreeDOSの公式サイトからダウンロードできます。

(2)DOS起動用フロッピーディスクを準備します。
上記の4ファイルをフロッピーディスクに入れます。

(3)config.sysの設定

 DEVICE=JEMMEX.EXE X=TEST I=TEST
 DEVICE=RAMFD.SYS
 DEVICE=USBASPI.SYS /E
 DEVICE=USBCD.SYS /D:USBCD001

1行目はXMSメモリマネージャです。RAMFDはXMSメモリを使用するので、RAMFD.SYSの前にXMSを使えるようにしておきます。
2行目でUSB接続FDDの内容をメモリにコピーします。USBASPIより前に実施します。
3行目でUSBASPIをロードします。USB2.0の場合には /E をつけます。
4行目でUSBCDドライバをロードします。必ずUSBASPIの後に書きます。 /D:で光学ドライブに名前をつけます。

(4)autoexec.batの設定

 LOAD SHSUCDX /D:USBCD001,X

/D:で光学ドライブの名前を指定します。USBCD.SYSで指定した名前と一致させます。Xはドライブ名です。LASTDRIVEで指定したアルファベットの範囲内で指定します。

以上の設定でFDDからDOSを起動させると、Xドライブとして光学ドライブが使えるようになりました。
起動後はUSB接続FDDは使えないのではずしてもかまいません。USBASPI.SYSの設定で /W を追加しておくと、USBASPIがロードされる前に一時中断してUSB接続FDDを取り外すためのタイミングが表示されます。

なおUSBCD.SYSドライバではCDは読めますがDVDは読めませんでした。

■USBメモリからDOSを起動させる場合
 上記の方法を参考にして、USBメモリをFDD化して起動してみました。しかしRAMFD.SYSが正常に動作せずUSBメモリの内容がRAMにコピーされませんでした。

次にRAMFD.SYSの代わりにRAMディスクを使う方法を試みました。

(1)RAMディスクドライバ TDSK.EXE とコピーツール XCOPY.EXE をFreeDOS公式サイトからダウンロードします。

(2)DOS起動用USBメモリを準備します。USBメモリに必要なファイルを入れます。
JEMMEX.EXE、USBASPI.SYS、USBCD.SYS、SHSUCDX.COM、TDSK.EXE、XCOPY.EXE、ADDDEV.EXEは必須です。

(3)config.sysの設定

 DEVICE=JEMMEX.EXE X=TEST I=TEST
 DEVICE=TDSK.EXE 2048

2行目で容量2MBのRAMディスクをXMSメモリ上に作成します。XMSメモリを使うので、XMSメモリマネージャJEMMEX.EXEより後に登録します。

(4)次の2つのファイルをテキストエディタで作成します。

[CDD.DEV]
 DEVICE=USBASPI.SYS /E /W
 DEVICE=USBCD.SYS /D:USBCD001

[CDSET.BAT]
ADDDEV CDD.DEV
SHSUCDX /D:USBCD001,X

(5)autoexec.batの設定

 XCOPY *.* D: /H /E
 D:
 CALL CDSET.BAT

1行目でUSBメモリの中身を全てDドライブのRAMディスクにコピーします。私のPCではRAMディスクがDドライブですが、PCの構成によってドライブレターが変わりますのでRAMディスクのドライブを指定します。/Hオプションは隠しファイルも含めてコピーします。/Eオプションはディレクトリ、サブディレクトリも含めてコピーします。当然コピーするUSBメモリのファイル容量は作成したRAMディスクの容量に収まるものにする必要があります。

2行目でカレントドライブをDドライブのRAMディスクに移動します。

3行目でCDSET.BATファイルを実行します。即ち、USBASPI.SYS、USBCD.SYSのデバイスドライバをロードし、SHSUCDX.COMをセットします。

この方法ではUSBASPIをロードする時点でカレントドライブがメモリ上のRAMディスクになっているため、起動用USBメモリのアクセスが停止してもバッチファイルが止まることなく最後まで実行されます。
さらにDOS起動用USBメモリとは別に、アプリケーションプログラムをいろいろインストールしたもうひとつのUSBメモリを準備しておいて、USBASPIの /W オプションの一時中断のときにUSBメモリを交換することも可能です。

面倒ですが何とかUSBメモリ起動の場合でも光学ドライブが使えるようになりました。

■ネットワーク共有ドライブとして使う方法
 外付け光学ドライブをネットワークの共有ドライブとして設定してやると、FreeDOSから外付け光学ドライブが使えるようになります。詳細は記事「DOSでネットワーク資源共有」で紹介します。