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


                Windows 95 + Windows 3.x + Linux Howto
             Robert Goodwin <Robert.Goodwin@mcc.ac.uk>
                            August 1996

訳:中谷千絵 jeanne@mbox.kyoto-inet.or.jp
1996/09/22

0. はじめに

  この文書は1996年1月に初めて書かれました。その時以来頂いた多くの意見
や情報、そして質問を加えました。この文書は日本でも利用されています。日
本語の Linux 関係文書は
 http://epsenewsc.gee.kyoto-u.ac.jp/JF/JF.html を見てください。

1. 複数のオペレーティングシステムを起動する。
  あなたが複数のオペレーティングシステムを起動させたいなら(そして、そ
れらをフロッピーディスクから起動したくないなら)、何らかの種類のブート
マネジャーを必要とします。

  Win95 は本当のところはブートマネジャーを持っていません。ブートオプショ
ンは持っていますが、私の意見では、 "ブートマネジャー" とは起動するため
に何がしかの設定ができるものです。

  OS2 のブートマネジャーと Windows NT のブートマネジャーができるように、
LILO はかなりブートを設定することができます。現実にはあなたはこれらの
どれかを使っているでしょう。あなたが望むことはあなたのシステムに依存し
ます。たとえば、あなたが OS2 のブートマネジャーを使っているなら、それ
は DOS に類するパーティションを全部隠します。

2. 見ておいた方がいい関連情報のあるところ。
  あなたが Win95 と Linux を使いたいなら、Win95+Linux Howto が必要でしょ
う。最新版は http://www.in.net/~jkatz/win95/Linux-HOWTO.html にありま
す。
  Win95 と Linux は1つのドライブにインストールできます。この文書やそ
の他の文書で扱っている問題は、それぞれのドライブごとの1つ目の第1
のDOS パーティション についてよりも DOS についての問題です。

  あなたが NT のブートマネジャーを使いたいなら、
http://www.bcpl.lib.md.us/~dbryan/directboot.html を見てください。
Linux を加える(あるいは OS/2 を含む他の OS )ために、NT のローダと一緒
に使うためにブートセクターファイルを作成するよくできた小さなプログラム
があります。これについては次のところに情報があります。
http://ourworld.compuserve.com/homepages/gvollant/othertl.htm

  DOS を最初にブートして Linux をブートさせる LOADLIN.EXE について調べ
るとよいでしょう。

3. なぜこの HOWTO なのか
  この文書は次の内容を扱っています。
* Win95 と同じマシン上で問題なく Win3.x を 使用する方法(これらの問題は
他にあるかもしれません)。
* DOS をリモート起動できる Win95 と共存するマシン上での問題を避ける方法
* lilo を再インストールせずに、Linux と共存させて Win95 をインストール
する方法(フロッピーから Linux を起動するのはつまらない)

  Win95 のファイルシステムは、一応標準の DOS の FAT のファイルシステム
の上に構築されるのですが、 DOS の FAT をかなり奇妙な方法(*)で使ってい
ます。 試しに フロッピから DOS を使って Win95 マシンを起動して、Norton 
ユーティリティでディスクをチェックしてみてください。(ただし修復しよう
としてはいけません。ロングファイル名をぐちゃぐちゃに壊してしまうでしょ
うから)。

訳注(*)DOS FAT ではファイル名に 8 文字 + 拡張子 3 文字という制限があり
ますが、Win95では、DOS FAT と互換性を保ちつつ、ファイル名の長さの制限
を緩めるために、FAT に特別な方法を使って 255 文字までのファイル名を使
えるようにしています。

  現在、私は Win3.x (ローカルおよびネットワーク起動された状態の両方)だ
けでなく、Win95 環境下でもアプリケーションに対応する必要に迫られていま
す。私は、1台の PC でこれを全部出来るように、この文書で解説した設定方
法を開発しました。けれど、Unix 使いがこんなことをするに至ったいきさつ
は聞かないでくださいね。

4. 必要条件
  もしあなたが lilo( lilo 1.7 あるいはそれ以降のものだと思いますが) の
ソースをいじろうと準備しているのなら、1つのハードディスクですべてのこ
とができるでしょう。この場合はシステムをブートするためにパーティション
テーブルの内容を変更することで動きます。もしあなたがこの方法を試すこと
に自信を持てないなら、やってはいけません。

  そうでないなら、2つのハードディスクが必要です。DOS と Windows には
起動するドライブとそのドライブ名の割り当てに制限があるためです。私を信
じてください。私もひとつで試したのですから。(でも、私は LILO ソースで
失敗したくはなかったですから)。

5. 結論を先に
  デバイス名に関する用語について説明しておきます。私は 3つ目の IDE ディ
スク(最初の IDE ディスクはセカンダリコントローラ上に最初の IDE ディス
クがあります) に対して /dev/hdc そして、4つ目のディスクに対して 
/dev/hdd を使うシステムを管理しています。私はさらに /dev/hd1a と 
/dev/hd1b( /dev/hd1a3 のようなパーティション名を与える)を使用するする
システムも管理しています。私のシステムは2番目のスタイルを使っています
が、私は混乱を避けるために /dev/hdc と /dev/hdd という名前に変更してい
ます。

  私の場合について手短に書きます。ドライブ名が変わっていきますので注意
してください。

  あなたが2つ目の IDE コントローラを使用しているなら、そのコントロー
ラ用のデバイスを( /dev/hdcs* と /dev/hdd*)を作成しなければなりません。
IDE ディスクと IDE CDROM がすで取り付けられているマシンに2つ目のハー
ドディスクを追加するならこの例にあたるでしょう。2つ目のハードディスク
は /dev/hdc になります。私の場合はこれで問題はありませんでした。

私は次のように使用しています。
          /dev/hda  - 最初のハードディスク
          /dev/hdb  - cd-rom ドライブ
          /dev/hdc  - 2つ目のハードディスク

オプション 1:
  マシンの始動時に DOS をリモート起動するために、ethernet カード上に 
boot ROM を置いてもかまいません。 C ドライブは 最初の IDE ディスクにあ
る最初の DOS パーティションになります(私の場合は、/dev/hda1 )。D ドラ
イブは、2つ目の IDE ディスクにある最初の DOS パーティションです(私の
場合は /dev/hdc1 )、そして、E ドライブは、2つ目の IDE ディスク
( /dev/hdc2 )に置かれた2つ目の DOS パーティションになります。CD-ROM 
は F になります。

オプション 2:
  ディフォルトシステム(もちろん Linux です)を起動するために lilo を使
います。

オプション 3:
  lilo を中断し 私が作成した DOS というオプションを選びます。これは、
/dev/hda1 から DOS を起動します。そうすると、オプション 1 で述べたよう
に、 C ドライブは /dev/hda1 、D ドライブは /dev/hdc1 、そして E ドライ
ブは /dev/hdc2 となります。CD-ROM ドライブは F になります。

オプション 4:
  lilo を中断し 私が作った Win95 というをオプションを選択します。これ
は2つ目の IDE ドライブ(私の場合は /dev/hdc1 )に置かれた最初の DOS パー
ティションから Win95 を起動します。これは注意して行ってください。 現在 
C ドライブは2つ目の IDE ディスク(/dev/hdc1)上の最初の DOS パーティショ
ンを指しています。D ドライブは、最初の IDE ディスク( /dev/hda1) 上での
最初の DOS パーティション を指しています。そして、E ドライブは2つ目の 
IDE ディスク( /dev/hdc2) 上で2つ目の DOS パーティションを指しています。
CD-ROM ドライブは F になります。

  起動方法によって C ドライブが変わることに注意してください。 Win95 は 
C:\WINDOWS にインストールすることになるし、そして、Win3.x も 
C:\WINDOWS にインストールすることになりますが、これらは別の場所だとい
うことです。

  3つ目の DOS パーティション(私が一般のデータドライブとして使用してい
る)は E になり、どちらから起動しても、CD-ROM ドライブは変更がないこ
とにも注意してください。

6. どのようにしてするか

  まず初めに Linux をインストールします。どちらのドライブにインストー
ルしてもかまいません。しかし、2つのドライブを使用していますから、それ
ぞれにスワップパーティションを作成しておくとよいでしょう。

  2つ目のディスクに、基本 DOS パーティションを作成します。しかし、DOS 
の fdisk では、これが出来ません。そこで、Linux の fdisk でパーティショ
ンを作成しなければなりません。パーティションの ID を設定し(DOS 16 BIT
FAT > 32Mb には 6 です)、fdisk のマニュアルに慎重に従って起動可能に設
定します。
これはこのようにして作成したパーティションを、dd コマンドを使ってその
パーティションの最初の512 バイトを 0 にする方法です。(基本的には、以下
のように使います。
dd if=/dev/zero of=/dev/XXXX bs=512 count=1"
XXXX はデバイスですが、これは時によったらディスクを壊すので注意してく
ださい。たとえば、 /dev/hda1 のかわりに、/dev/hda を書くようなことをし
たら、ディスクを壊す場合もありますので十分に注意してください。

  1つ目のハードディスク上の基本 DOS パーティション の作成には DOS の 
FDISK を使います。同じようにして、他の DOS パーティションを作成します。

  これらの基本パーティションはどちらも起動可能な DOS パーティションと
してフォーマットされなければなりません。 フロッピーから起動して、
FORMAT C: /S そして、 FORMAT D: /S コマンドを使います。混乱を避けるた
めに、パーティションに名前をつけておきましょう。

  2つの基本パーティションのどちらからでも起動オプションを使えるように 
/etc/lilo.conf を作成します。この文書の最後に例を記します。この例に示
したファイルのなかで、"loader" で始まる行に注意してください。

  Win95 と DOS/Win3.x をそれぞれどちらのディスクにインストールするかは
あなたの自由です。私は マシンをネットワーク起動しますから、2つ目のハー
ドディスクに Win95 を入れています。ですから普通の DOS ドライブは C に
なります(それが普通ですね)。
  さらに(これは有益なことですが)、2つ目のハードディスクに Win95 をイ
ンストールすると、復旧ディスク*から Linux を起動して、lilo を再インス
トール(このことについては次に説明します)しなくてすみます。ブートオプショ
ンを設定するために lilo を動作させるのを忘れないでください。

*訳注:原文では to boot linux from a recovery disk となっているので、
フロッピーディスクからの起動という意味。

  (ちょっと賢く) CDROM からWin95 をインストールする予定なら、そのパー
ティションから起動した時に、CDROM ドライブにアクセス出来るように、
Win95 パーティションに適切なドライバを入れておきましょう。

  さて、lilo を使用し DOS と Win3.x をインストールする予定のドライブを
起動し、 DOS と Win3.x をインストールします。Windows のインストールは 
デフォルトで C:\WINDOWS になるはずです。

  これができたら、マシンを再起動させます。そして、lilo を使って、Win95 
パーティションから起動し、Win95 をインストールします。インストーラは 
WINDOWS がすでに存在するかどうかを調べますから、Win95 をインストールす
るディレクトリとして D:\WINDOWS が指定されますが、これを受け入れてはい
けません。Win95 は C:\WINDOWS にインストールします。

  さて、仕上げにかかりましょう。
  Win95 というのは、ちょっとずうずうしいオペレーティングシステムです。
というのは Win95 をインストールした時、マシン上でそれが唯一のオペレー
ティングシステムだと仮定して、勝手にハードディスクに自分自身の MBR を
書いてしまうからです。これが、普通 lilo を再インストールしなければなら
ないという理由です。Microsoft(tm) のプログラマーたちは、2つ目のハード
ディスクに Win95 をインストールする人がいるなんて考えてもいないでしょ
う。

  私がこの操作を行ったマシンのひとつでは、Win95 は2つ目のハードディス
クの MBR を自分自身の MBR に書きかえました。別のマシン上では、MBR が書
き込まれた形跡は全くありませんでした。どちらにしろ得られる結論は、1つ
目のハードディスクの MBR は、Win95 で書きかえられないもとのままの MBR 
だということです。ですから、マシンを再起動した時に、おなじみの LILO プ
ロンプトが出てくるわけです。

パーティションリストの例

  /dev/hda1  *   DOS partition  (C: or D: depending upon boot)
  /dev/hda2      Extended partition
  /dev/hda5      /
  /dev/hda6      swap
  /dev/hda7      /home

  /dev/hdc1  *   Win95 partition  (C: or D: depending upon boot)
  /dev/hdc2      DOS partition    (E: always)
  /dev/hdc3      swap

  (Partitions with a * are set as bootable (or "active") by fdisk)

* 印をつけた区画は、fdisk で起動可能に設定されています。

lilo.conf の例

  # /etc/lilo.conf
  install = /boot/boot.b
  compact
  delay = 20    # optional, for systems that boot very quickly
  #prompt             # use instead of delay to force response to boot prompt
  #vga = normal # force sane state
  #ramdisk = 0  # paranoia setting
  #root = current       # use "current" root
  boot = /dev/hda
  image = /boot/vmlinuz
    read-only
    label = linux
  other = /dev/hdc1
    label = win95
    loader= /boot/any_d.b
  other = /dev/hda1
    table = /dev/hda
    label = dos
  image = /boot/vmlinuz.old
    label = linux.old
    optional
    read-only



7. Q & A

Q: この方法は SCSI ディスクにも有効ですか。
A: この方法でうまく行くという報告を何度か聞きましたが、自分では試す機
会に恵まれていません。


Q: Linux がひとつのディスク全体を使わせて、他のディスクのパーティショ
ンに DOS と Win95 を置きたいのですが、それでもこの方法はうまくいきます
か。

A: だめです。DOS と Win95 の部分は、ディスクの第1パーティションに置か
なくてはいけません。LILO を再コンパイルすることで、これを回避すること
ができます。


Q: 私は DOS と Win95 を選択して起動する方法について書かれたWin95FAQ を
取り寄せました。その文書では、 "windows" とは違ったディレクトリに 
Win3.11 をインストールするなら、Win95 と Win3.11 を両立できると書いて
あります。これは1つのパーティションを使っています。

A: はい、確かに可能なことですが、多少問題が生じるかもしれません。Win95 
は FAT ドライブとにちょっとよくないことをするので、 DOS や古い 
windows(3.x)のもとで行う作業のいくつかは、ロングファイルネームの情報を
簡単に壊してしまいかねません。たとえば、 DOS/Win3.1 のユーティリティを
使ってドライブを最適化するとロングファイルが壊れるでしょう。しかも、こ
の設定はうまく行かない場合の事情をわざわざ複雑にしているようなものです。
うまくいかない場合には、両方の windows の INI ファイル群自体の面倒を見
る上に、さらに Win95 のレジストリにまでも気を使わなくてはいけません。


Q: LBA は影響しますか。

A. 御心配の通りです。
  1994年頃からの BIOS は LBA が出来るようになっており、DOS では 1024番
以上のシリンダをうまく扱えないという DOS 内部の制限を回避します。
LBA というのはディスクのジオメトリ情報を偽造するものです。見かけのシリ
ンダ数が1024 で収まるように実際のシリンダ数を2や4などで割った値を報告
し、その割った数(2 や4 など)を実際のヘッダの数に掛けたものを見かけのヘッ
ダ数とします。これでDOS の制限を回避できます。

  Linux は1024番より大きいシリンダも扱うことができます。ただし、ブート
させるパーティション全体が が 1024 番以下のシリンダ にあることが必要で
す。要するに、Linux は大きなディスク( 504MB 以上のもの)を古いBIOS(1994
年以前のもの)のマシンの上でも扱うことができるのです。また、LBA をサポー
トしている BIOS を使っている場合でも、LBA が有効かどうかにかかわらず、
Linux は大きなディスクを扱えます。

  すべての OS が同じディスクのジオメトリを同じように認識することは必須
です。なぜなら、ディスクにあるパーティションテーブルに書かれている数字
は実際のシリンダ数ではなくて、認識された数になっているからです。そのた
め、BIOS の設定を変更して LBA を有効にすると、既に書かれた情報がダメに
なってしまいます。

  あなたの Linux システムが本当の HDD のジオメトリを見ないようになって
いる場合(言い替えるなら、DOS が認識するのと同じように見かけの情報を見
ている場合)には、lilo.conf に「 append="hd=x,y,z"」という1行を加える
必要があるでしょう。ここで x,y,z はディスクジオメトリの意味です(関連す
るマニュアルページを見てください)。

     
Q: 私の BIOS は4台のハードディスクではなく、2台分の情報しか管理しま
せん。問題がありますか。

A. たぶん問題になるでしょう。古いBIOS を使ってDOS で4台のハードディス
クを使っている時、ドライバソフトウエアが必要でした。新しい BIOS は4台
のハードディスクについての情報を管理します。

  Linux は古い BIOS を使っていても4台分のハードディスクをうまく扱えま
す(一部の例外あり)。しかし DOS パーティションを第3ディスクなどに置い
てしまうと、linux でしかそれを使えなくなってしまうでしょう。

  多くのマシンは IDE ドライブと IDE CD-ROM を持っているでしょうから、
この文書で示した方法に従うと、さらにもう1台(3台目)の IDE ドライブを
追加することになるはずです。

この文書が役立ったら連絡をください。
-----------------------------------------------------------------
日本語訳は Linux-JF プロジェクトの多くの方々にサポート頂きました。
改訂版に新しく加わった Q & A の部分については
山崎康宏(hiro@linux.or.jp)さんに校正をして頂きました。
ありがとうございます。
訳:中谷千絵 jeanne@mbox.kyoto-inet.or.jp
1996/09/22
-------------------------------------------------------

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