次のページ 前のページ 目次へ

3. ハードディスクの設定

3.1 ハードディスクを dosemu で使う方法

まず、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 ではリダイレクタがまだ
  動作していないからです(将来的には使えるようになるでしょう)。

3.2 Linux から hdimage にアクセスする方法

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:" は単なる例に過ぎません。

3.3 Stacker/DoubleSpace/SuperStoreで圧縮されたディスクを使えるか?

現在のところ、標準のカーネルではリダイレクタ(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) を書き換えるからです。"

3.4 独自の hdimage ファイルを作る

簡単な方法は mkdexe を使うことです。詳しくは README.txt を参照してくだ さい。古いやり方を以下に示します(これが必要となる理由は思い付きません が、使うときのために説明しておきます):

mkfatimage16 という追加のユーティリティプログラムがあり、これを使うと hdimage ファイルのヘッダを作成することができます。詳しい説明は配布物に 入っているオンラインマニュアル(man/mkfatimage16.1)にあります。

32 メガバイトの実際のハードディスクに相当するハードディスクのイメージ ファイルを作成するには、以下のコマンドを実行します:

mkfatimage16 -k 32768 > hdimage

これは大抵の目的には十分な大きさです。もっと大きな容量が必要ならば、ディ スクリダイレクタの利用を考えてください。

普通はディスクイメージを作成した後にはフォーマットを行います。


次のページ 前のページ 目次へ