2.1. Windows 95/98/Me+DOS

EMO
2008/Jan/19

複数のOS

navigation

1. 95/98/Meの構成

Windows 95、Windows 98、Windows Meは、付加的機能こそ違うものの、95から続く一連のバージョンであり、ブートに関する基本は共通なので、差し当たり共通で語るときは「9x」と表記することにします。

(参考) 9xには以下のバージョンがあった。
Windows 95 素の95。
Windows 95a 素の95にService Pack 1を適用したもの。
Windows 95B (OSR2) OSR=OEM Service Release。OEM専用のバージョンアップ版。FAT32がサポートされた。
(OSR2.1) リリース当時はUSB1.0のサポートが喧伝されたが、不具合が多く、後になってサポートは98以降とされた。無責任な話。
Windows 95C (OSR2.5) OSR2の後期版。Internet Explorer 4.0が同梱されており、95のインストール後に自動的にインストールされるようになっていた。アクティブ・デスクトップとプッシュ配信が喧伝されたが、後にフェードアウト。
Windows 98 95のバージョンアップ版。Internet Explorer 4.0が初めから統合されている。USB1.0が正式にサポートされた。
Windows 98 SE (Second Edition) 98の後期版。OEM専用。
Windows Me (Millennium Edition) 98のThird Editionと例えられる。強固とは言えない9xの土台に付加的機能を積み上げた結果、9xの中でも安定性は低いものになった。DOSは表から隠されているが、MeバージョンのDOSは存在する。
[参考情報] Microsoft: 使用中の Windows 95/98/Me のバージョンを確認する方法
Windows 95 での USB サポート

9xのブートは、それ以前のOSであるWindows 3.1と似ています。Windows 3.1はそれ単独では起動できず、DOSが起動した後、そこから実行される形で起動していました。9xも、まず9xのDOS=9xのブート部分が起動し、その後に9x本体が起動するという2段式の起動をします。なお、これは9xのブート過程でDOSが使われるというだけで、9xがDOS上で動作するわけではありません(OSが段階的に起動するのは、ごく普通のこと)。

DOSはPC/AT互換機におけるOSの元祖ですが、単体としてはMS-DOS 6.2/V或いはPC-DOS J7.0/Vがほぼ最後(注1)で、95が出た後は、9xの起動用/作業用として9xに含まれています。実際、中身的には9xのDOSはそれ以前のDOSとかなり異なっています。

(注1) MS-DOSはMicrosoft版のDOS。PC-DOSはIBM版のDOS。Vが付いているのは日本語版。PC-DOSには、一応PC-DOS 2000というもの(2000年問題のバグフィックス版)が存在し、現在でもIBM製ツールの起動FDに使われている。これらの他にDR-DOSもある。

A. 以前のDOS

DOSは、(BIOSから認識される順で)1台目のHDDにある基本パーティションのブートセクタ(PBR)と、そのパーティションのルートにある、基本的には以下のファイル群から構成されます。

ファイル 備考
MS-DOSの場合 PC-DOSの場合
io.sys
msdos.sys
command.com
ibmbio.com
ibmdos.com
command.com
バイナリファイル。最初に読み込まれるのはio.sysで、バージョンにもよるが、パーティションの先頭クラスタにある必要があった。command.comがユーザーのコマンドを受け付ける。
config.sys
autoexec.bat
設定ファイルで、中身はテキストファイル。config.sysにはデバイスドライバ、autoexec.batには起動時に実行されるコマンド・実行ファイルが記述されている。日本語表示等に必要なファイルもここで指定されている。
[参考情報] Microsoft: Err Msg: "No Room for System on Destination Disk" with SYS
(サポートオンラインには日本文もあるが、機械翻訳で読むにたえないので、英文を掲げる。以下の場合も同じ)

B. 9x

9xは、1台目の基本パーティションにある9xのDOS=ブート部分と、9x本体(システムフォルダ)から構成されます。

C. 制限

DOS/9xには、HDDサイズとの互換性の問題と、起動できるためのHDD内のブート部分の位置制限があります。

HDDサイズとの互換性 FDISKが対応するHDDサイズ ブート部分の位置制限(注2)
以前のDOS - 8GBまで 2GB(注3)
95 OSR2.1まで 32GBまで 8GB
OSR2.5以後 64GBまで 8GB以上
98 - 64GBまで
(修正版あり)
Me -
(注2) パーティションの開始位置の制限。数字は目安であって、実際にはBIOSやHDDによって、より小さくなる。
(注3) DOSにおけるFAT16によるパーティションサイズの2GBまでの制限とは別。
[参考情報] Microsoft: Windows 95は32GB以上のハードディスクをサポートしない
Fdiskで64GBを超えるハードディスクのフルサイズが認識されない

2. ブートセクタ(PBR)

DOS(9xのDOSを含めて)のPBRは、インストール時にC:に書き込まれる他、SYS、FORMATのDOSコマンドにより宛先のパーティションを指定して書き込むことができます。

SYS C: 「C:」の部分は例で、宛先のドライブを指定。
FORMAT A: /S 「A:」の部分は例で、宛先のドライブを指定。フォーマットを行うコマンドを「/S」オプション付きで実行するもの。その時点のドライブレターを要確認。9xの場合、同じことがWindows上では「起動専用」にチェックを付けてのフォーマットで可能。

3. MSDOS.SYS

9xのDOSのmsdos.sysは、中身はテキストファイルで、9x本体のブートに関する設定ファイルになっています。

4. 複数の95/98/Meの共存

9x自体には、9x同士を含めて、他のOSと選択的に起動する機能はないので(以前のDOSとのデュアルブートを除く)、この目的のためには標準以外の方法をとることになります。

A. 前提

9xでは、本体のシステムフォルダ(初期設定ではC:\Windows)はインストール時に任意のパーティションとフォルダ名を指定できますが、同じパーティションに自動的に作成される「Program Files」フォルダはフォルダ名を変更できません。結果的に、複数の9x本体を同じパーティションにインストールすると、不可避的にこのフォルダが重複します(NT系でも同名のフォルダがあるので、NT系とも重複する)。

この重複が直ちに重大な問題となるとは限りませんし、重複を回避する方法もありますが(注4)、いずれにせよ問題が発生するリスクを負う必然性もないので、9x本体はそれぞれ独立のパーティションにインストールすることを前提とします。この本体の場所はmsdos.sys内に記載されるので、ある9x本体を起動するには、それに対応したファイル群(msdos.sys等)のブート部分を起動すればよいことになります。

(注4) 起動切り替えソフトには、起動するOSごとに「Program Files」のフォルダ名をリネームして重複を回避するものもある。ただし、この場合でも、そのソフトの設定や環境の変更によって、何らかの混乱が起こるリスクは残る。

B. 共存の様式

複数の9xをブート過程で選択的に起動するには、HDD構成を固定とすれば、以下の2通り、及びこれらの組み合わせが考えられます。

パーティション構成 分岐 備考
a. 複数の基本パーティションに、それぞれ9x(のブート部分)を入れる。 MBRから基本パーティションに移行する段階で、パーティションごと分岐させる。
  1. MBRから起動するパーティションを選択できるソフト(SystemCommander等)が必要。
  2. 基本パーティションの中で、更にb.の様式で分岐させることも可能。一つの基本パーティションには本体を含めて一つの9xを入れる形にすれば、最も単純明快で面倒がない。
  3. ただし、9xの数は、利用可能な基本パーティションの数(基本的に最大4。拡張パーティションの分を引けば最大3)に制限される。
b. 同一の基本パーティションに、複数の9xのブート部分を共存させる。 PBRからファイル群に移行する段階で、ファイル群を入れ替え、起動する9x本体を分岐させる(注5)
  1. ブート部分のファイル群を選択的に入れ替えるためのソフト・仕掛けが必要(起動する9xのファイル群をパーティションのルートに置き、他の9xのファイル群は他の場所に保管しておく)。
  2. ファイル群の管理には注意を要する。ファイル群に影響のある操作を行った際、混乱が生じやすい。
(注5) 9xのPBRは、少なくとも9xのDOSを起動することについては互換性がある。

5. 以前のDOSとのデュアルブート

以前のDOSがある上から95をインストールした場合、以前のDOSを選択的に起動することが可能です(ブート時にF8を押し、現れたメニューから「8. Previous Version of MS-DOS」を選択する。またはブート時にF4を押す。パーティションがFAT16であることが前提)。この95と以前のDOSとのデュアルブートは、起動する際にC:のルートにあるファイル群をリネームすることで行われています(PBRの書き換えまではしない)。

[基本情報] Microsoft: 以前のオペレーティングシステムを起動するための必要条件

Appendix 1. DOSの使い方

9xでは、パーティション操作、起動環境の修復等のため、往々にしてDOSを使う必要が出てきます。

A. DOSへの入り方

9xでは以下のDOSが存在します。作業環境となるのは、基本的にe.のDOSですが、 c.d.も使えます。

a. Windows上のDOS窓のDOS DOSではあるが、あくまで9x上のタスクの一つとして動いているので、制限がある。9x本体を壊すようなこと(その区画の削除やフォーマット)は不可。
b. ブート時にF8で呼び出せるメニューで「8. Previous Version of MS-DOS」を選択して(または直接F4で)起動した、以前のDOS 以前のDOSの上に95をインストールした場合に、この項目が出る(OSR2では非サポート)。
c. b.と同じメニューで「Command Prompt Only」で起動したDOS
  • 基本的に同じものであるが、ロードされるドライバ等が違う。「Command Prompt Only」の場合はconfig.sysとautoexec.batに従ってロードされるが、「MS-DOSモードでコンピュータを再起動する」の場合、これらに加え9xのシステムフォルダにあるdosstart.batにも従ってロードされる。
  • これは9xのインストールと関係があり、インストーラは既存のautoexec.batに例えばmscdex.exeがあると、これをコメントアウトし、代わりに同じ記述をdosstart.batに書く。つまり、mscdex.exeは9xの32ビットのドライバの動作に支障があるので、Windowsの実行中は使わないようにするが、「MS-DOSモードでコンピュータを再起動」した際は、以前と同様になるよう実行するということらしい。
d. 「Windowsの終了」で「MS-DOSモードでコンピュータを再起動する」で起動したDOS(Meにはない)
e. 起動FDから起動するDOS

B. DOSの基礎

C. 最小限のDOSコマンド

[基本情報] YanaKen's DOS/V & Windowsコマンド・プロンプト・リファレンス@FPCU
dir 現在見えているファイルとディレクトリを表示する。/wオプションでファイル名、ディレクトリ名のみを横に並べて表示。/pオプションで自動的にスクロールせずにキー入力を待つ。例えばdir /w /pでは、ファイル名、ディレクトリ名のみ並べて一定行数ごとに表示する。パラメータとして直接ファイル名を指定することも可能。隠し属性のファイルを見るには/ahオプションがある。
cd / chdir ディレクトリを移動する。パラメータに現在見えているディレクトリ名を指定すれば、そこに移動する。例えば、C:\>というコマンドプロンプトからcd windowsとすれば、コマンドプロンプトがC:\windows>となる。逆に\のパラメータでルート(ドライブ内のディレクトリ構造の一番根元)に戻る。例えばC:\WINDOWS>からcd\とすればc:\>に戻る。ディレクトリを一つ戻るときは「..」を使う。
*: ドライブを移動する。アルファベットのドライブレターに「:」を付ける。例えば、コマンドプロンプトがC:\>であれば現在はC:にいるということであるが、D:が存在し、そこに移りたい場合は、d:とすればコマンドプロンプトがD:\>になる。
copy ファイルをコピーする。パラメータはコピー対象のファイル名と、コピー後のファイル名。後者は存在しなければ自動的に作成され、宛先でも可。例えば、copy config.sys C:\dosとすれば、config.sysと同じファイルがC:\dosに作成される。
del ファイルを削除する。パラメータは削除するファイル名。
ren / rename ファイル名を変更する。パラメータは変更するファイル名と、変更後のファイル名。
md / mkdir ディレクトリを作成する。パラメータは作成するディレクトリ名。
rd / rmdir ディレクトリを削除する。パラメータは削除するディレクトリ名。なお、ディレクトリ内にファイルやディレクトリが残っている場合は削除不可。
path 指定したディレクトリをコマンド実行時に常に実行ファイルの検索対象にする。パラメータはそのディレクトリ。別のディレクトリに実行ファイルがある場合に便利。例えば、path C:\dosとすれば、以後C:\dosにある実行ファイルがいつでも使用可能。
fdisk(fdisk.exe) パーティション操作を行う。
sys(sys.com) 基本パーティションまたはFDを起動可能にする。パラメータには宛先のドライブを指定。
format(format.com) ドライブをフォーマットする。パラメータには宛先のドライブを指定。例えば、format c:とすればC:をフォーマットする。フォーマットするとそのドライブ内の全てのデータが消える。/sオプションでsysと同じことを同時に行う。
attrib(attrib.com) ファイルの属性を変える。attribだけで現在見えている全てのファイルの属性を表示する。ファイル名をパラメータとして指定することも可。隠し属性のファイルであっても、これで指定すれば表示される。例えば、msdos.sysは隠し、読み出し専用、システム属性になっているが、これを外したい場合、attrib -h -r -s msdos.sysとする。逆は、attrib +h +r +s msdos.sys
edit(edit.exe) テキストファイルを編集する。編集対象のファイル名をパラメータとして指定すると、そのファイルを開いた状態で起動する。
(注) 実行ファイルを併記しているのは外部コマンド。

D. FDISK

FDISKは、DOSでパーティションの作成・削除、アクティブの設定、MBRのブートコードの修復を行うツールです。9xも標準では9xのDOSでFDISKを使うことになります。

[基本情報] Microsoft: Fdisk および Format ツールを使ったハードディスクにおけるパーティションの作成/再作成方法
Windows.FAQ: 基礎講座:FDISK コマンドの使い方
Yakushima-TonboFDISK コマンドの使い方

Appendix 2. エラーメッセージ

Invalid system disk
Replace the disk, and then press any key

Disk I/O Error
Replace the disk, and then press any key

Type the name of the Command Interpreter (e.g., C:\WINDOWS\COMMAND.COM)
C>