まず、DOS のパーティションを Linux のサブディレクトリとしてマウント します。例えば、/dos (mkdir -m 755 /dos) のようなディレクトリを作り、 /etc/fstab に次の項目を追加します。
/dev/hda1 /dos msdos umask=022(この例では、ハードディスクは読み出し専用でマウントされます。読み書き できるようにマウントするためには、"022"を"000"に置き換え、mkdir では -m 777 オプションを指定します。) 次に mount /dosを行います。 README.txt ファイルには以下のように書かれています:
必要なファイルが全て DOS の C: に含まれるような Linux のディレクトリ を単に用意してください。IO.SYS や MSDOS.SYS 等をそのディレクトリ (例: /var/lib/dosemu/bootdir)にコピーして、 $_hdimage = "bootdir" と /etc/dosemu.conf に書き込んで次に進みます。dosemu は lredir した ドライブをシステム外部のものとして扱い、そこから起動を行うことができ ます。dosemu を起動する前に、このディレクトリにある config.sys と autoexec.bat を編集することもできます。さらに、もっと洗練された設定 にすることができます。ネイティブの DOS を起動する時の通常の DOS ドラ イブを dosemu でも使いたいものとします。この場合には単に、DOS パーティ ションを Linux で(/dos 等に)マウントし、そのサブディレクトリへのリン クを起動ディレクトリに作ります。このようにして、dosemu でも見えるよ うにしなければならないファイル/ディレクトリや、dosemu とネィティブの DOS で区別しなければならないファイル/ディレクトリを決めることができ ます。以下に起動ディレクトリの設定の短くて不完全な例を示します: config.sys autoexec.bat command.com -> /dos/command.com io.sys -> /dos/io.sys msdos.sys -> /dos/msdos.sys dos -> /dos/dos bc -> /dos/bc windows -> /dos/windows ただし、この例には 1 つ問題があります。すなわち、この例では DosC カー ネル(FreeDos)は使えません。なぜなら、FreeDos ではリダイレクタがまだ 動作していないからです(将来的には使えるようになるでしょう)。
mtools を使ってください。/etc/mtools.conf には以下の行 を記述してください。
drive n: file="/var/lib/dosemu/hdimage" MTOOLS_SKIP_CHECK=1 \ MTOOLS_LOWER_CASE=1 MTOOLS_NO_VFAT=1 partition=1 offset=128こうすると mtools を使って "mdir n:" のようにして hdimage にアクセスで きます。"mcopy n:/config.emu /tmp" で hdimage 上の config.emu ファイル を /tmp/config.emu にコピーできます。そして、このファイルを編集してか ら hdimage へ書き戻すことができます。実際には使いやすいドライブレター を使ってください。"N:" は単なる例に過ぎません。
現在のところ、標準のカーネルではリダイレクタ(lredir や emufs)を経由 でこれらの圧縮ドライブにアクセスすることはできません。 "dmsdosfs" という名前で圧縮ファイルをマウントできるようにするカーネル へのパッチがあります。sunsite.unc.edu とそのミラーサイトで探してくださ い。
http://sunsite.unc.edu:/pub/Linux/system/filesystems/dosfs/
新しいバージョンを見つけるには
http://sunsite.unc.edu:/pub/Linux/Incoming
を探すと良いでしょう。
古いバージョンの dosemu の "wholedisk" オプションは、新しいバージョン
ではもはや使えなくなっていますが、
$_hdimage = "/dev/hda1"と書けば動作するかもしれません。ただし、dosemu がクラッシュするとその パーティションのデータが全て壊れる危険性があります。
すでにDOSパーティションに書き込みが許可された状態で dosemu でパーティ ションやディスク全体にアクセスすると、dosemu は警告メッセージを表示し て異常終了します。これは、DOS と Linux が別々にディスクに書き込みを行 ない、DOS パーティションが破壊されるのを防ぐためです(95/8/11)。
---------------------
LILO がインストールされている場合には上記の方法ではうまくいきません。 しかし…
Thomas Mockridge さんが(thomas@aztec.co.za) が次の方法を報告 しています(94/8/5)。
LILO と Stacker 4.0 の組み合わせで dosemu を起動するにはちょっとした工 夫が必要です…
1. ファイルに MBR をddします。(またはノートンユーティリティな どを使います。MBR は最初の 512バイトです。)
2. (emu ではなく、本物の)DOS をブートして、fdisk /mbr を実行します。 DOS の fdisk を使って DOS パーティションをアクティブにします。
3. 新しくできた MBR をファイルにコピーします。
4. オリジナルの MBR を置き換えます。
5. 3. で作った MBR を /var/lib/dosemu/partition.hda? (hda?は、DOS パーティションのあるところ) にコピーします。
6. dosemu.conf を次のように設定します。
disk {partition "/dev/hda? ?"}
7. dosemu を起動します。ほら、できた! LILO が無くても起動できましたね。
最近のバージョンの dosemu では
disk {partition "/dev/hda? ?"}の行を
$_hdimage = "/dev/hda1"のように変更する必要があります。 ---------------------
Holger Schemel さんの(q99492@pbhrzx.uni-paderborn.de) 報告で す(94/2/10)。
dosemu の下で MS-DOS 6.0もうまく動作しました。問題がある場合には、'DBLSPACE. INI' を手で修正して、ドライブ名を dosemu上でのドライブ名に変更すればう まくいくでしょう。
---------------------
Darren J Moffat さん(moffatd@dcs.gla.ac.uk)の報告です(94/3/27)。
"…もし 6.2 を入手できるなら、それを使いましょう。LILO ブートディスク が手元にあることを確認しておいてください。DOS 6{.2}はブートディスクの MBR(Master Boot Record) を書き換えるからです。"
簡単な方法は mkdexe を使うことです。詳しくは README.txt を参照してくだ さい。古いやり方を以下に示します(これが必要となる理由は思い付きません が、使うときのために説明しておきます):
mkfatimage16 という追加のユーティリティプログラムがあり、これを使うと hdimage ファイルのヘッダを作成することができます。詳しい説明は配布物に 入っているオンラインマニュアル(man/mkfatimage16.1)にあります。
32 メガバイトの実際のハードディスクに相当するハードディスクのイメージ ファイルを作成するには、以下のコマンドを実行します:
mkfatimage16 -k 32768 > hdimage
これは大抵の目的には十分な大きさです。もっと大きな容量が必要ならば、ディ スクリダイレクタの利用を考えてください。
普通はディスクイメージを作成した後にはフォーマットを行います。