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 (サポートオンラインには日本文もあるが、機械翻訳で読むにたえないので、英文を掲げる。以下の場合も同じ) |
- ブート時には、PBRのブートコードがio.sysをロード・実行し、その後に設定ファイルに従って必要なファイルをロード・実行します。PBRは、基本的には当該DOSのものである必要があります。
- DOSは、基本的に1台目のHDDにある基本パーティションからしか起動できません。ただし、ドライバや外部コマンドの実行ファイルのあるディレクトリは、場所が正しく指定され、かつパスが通っていれば、他の場所でも問題ありません。
B. 9x
9xは、1台目の基本パーティションにある9xのDOS=ブート部分と、9x本体(システムフォルダ)から構成されます。
- 9xのDOSは、そのPBRと、以前のDOSと同名のファイル群から構成されます(9xのバージョンによってバグフィックス等があるため、同一ではない。ただし、かなり互換性がある)。
ファイル 備考 io.sys 機能的には以前のDOSと変わらない。なお、パーティションの先頭クラスタにある必要はない。起動時の画面のデータも入っているらしい。 msdos.sys 以前のDOSとは違い、中身はテキストファイル。9x本体の起動に関する設定ファイルになっている。 command.com 機能的には以前のDOSと変わらない。 config.sys
autoexec.bat機能的には以前のDOSと変わらない。 - ブート時には、以前のDOSと同じく、まずio.sysがロード・実行され、msdos.sysの設定に従って9x本体が起動されます(9x本体のブートだけであれば、この2つのファイルだけで可能)。ドライバ等は9x本体が別に持っているので、その他のファイルは基本的に9xのDOSを使うときに必要なだけです。
[参考情報] Microsoft: Description of the Windows 95 Startup Process - 9x本体は、基本的にどこでも(他の基本パーティションや拡張パーティション内の論理ドライブ。2台目以降のHDDにある場合も含めて)に置くことができます。なお、9x本体の場所はインストール時に指定できますが、ブート部分はインストールの時点でC:と認識されているパーティション(1台目のHDDの「アクティブ」な基本パーティション)に自動的にインストールされます。
- 9x本体は、一旦起動すれば、そのブート部分=9xのDOSがなくても動作します。ただし、パーティション操作等は、9x本体上で動作するツールが9x標準では用意されていないので、DOS上で行うことになります。
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上では「起動専用」にチェックを付けてのフォーマットで可能。 |
- SYSはPBRのブートコードをそのDOSのものに書き換えます。BPB(BIOS Parameter Block。そのパーティション情報が書き込まれている部分)も修正します。
- 以前のDOSのPBRでは9xのDOSは起動できません。
- SYSは同時に、そのDOSがブートした起動ディスクまたは基本パーティションにあるcommand.com等のファイル群を宛先のドライブにコピーします(実際にコピーするのはcommand.comと、その場にある隠しファイル全てだったりする)。FORMAT /Sも同様にファイル群をコピーします。同名のファイルが宛先のドライブに存在する場合には基本的に上書きしますが、
<以前のDOSの場合>- 既にMS-DOSのファイル群があるところにPC-DOSからSYSをかけると、重複するcommand.comを上書きするのは勿論、重複しないio.sysやmsdos.sysも削除してくれます。逆に、PC-DOSのファイル群があるところにMS-DOSからSYSをかけると、同様に重複しないibmbio.comやibmdos.comも削除してくれます。まるでカッコウの雛のような所業です。
[参考情報] Microsoft: SYS.COM Requirements in MS-DOS versions 2.0-6.0
- 既にPC-DOSがあるところに9xのDOS(MS-DOS)からSYSをかけると、以前のDOSとは違い、ibmbio.comとibmdos.comはそのまま残します。
- HDDから起動したDOSの場合、command.com、io.sysはそのままコピーしますが、msdos.sysは元の基本パーティションにあるものとは異なる、ごく短いものが作成されます(9xで作成した起動ディスクのmsdos.sysと同じ)。
[参考情報] Microsoft: Cannot Start Windows 95 After Using the SYS Command
- 既にMS-DOSのファイル群があるところにPC-DOSからSYSをかけると、重複するcommand.comを上書きするのは勿論、重複しないio.sysやmsdos.sysも削除してくれます。逆に、PC-DOSのファイル群があるところにMS-DOSからSYSをかけると、同様に重複しないibmbio.comやibmdos.comも削除してくれます。まるでカッコウの雛のような所業です。
- DOS(9xのDOSを含めて)の場合、PBRをSYSで簡単に修復できるので、NT系と比べて便利です。
3. MSDOS.SYS
9xのDOSのmsdos.sysは、中身はテキストファイルで、9x本体のブートに関する設定ファイルになっています。
- HDDの基本パーティションにあるmsdos.sysは、例えば以下のようなものです。
[Paths]
(以下略)
WinDir=C:\WINDOWS
WinBootDir=C:\WINDOWS
HostWinBootDrv=C
[Options]
BootMenu=0
BootMulti=1
BootGUI=1
Network=1
;
;The following lines are required for compatibility with other programs.
;Do not remove them (MSDOS.SYS needs to be >1024 bytes).
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxaWinDir=C:\WINDOWS
WinBootDir=C:\WINDOWS
HostWinBootDrv=Cそれぞれ9x本体の入っているフォルダ、ドライブを指定している。ドライブレターはDOS/9x共通のルールによるもの。これを修正し、レジストリ内の設定もうまく書き換えれば、9xの別ドライブへの引越しは可能。 BootMenu=0 9x起動直後の「Starting Windows95...」(95の場合)が出ているときにF8キーを押せば起動時のメニューが出るが、この値が1だと、毎回起動時にメニューが出る。0だと自動的には出ない。 BootMulti=1 以前のDOSの上にインストールした場合のもの。この値が1であれば起動時のメニューに「8. Previous Version of MS-DOS」が出る。0であれば出ない。 BootGUI=1 この値が0であれば9x本体(Windows画面)は起動せず、9xのDOSが起動するだけ。 [参考情報] Microsoft: WindowsのMsdos.sysファイルの内容
WinDOwS Tricks Secrets Bugs Fixes: Windows 95/98/ME Complete MSDOS.SYS Reference
- 一方、9xで作成した起動FDにあるmsdos.sysは、HDDにあるものと違い、以下のようにごく短いものです(ファイルサイズもHDDのものが1.7KB程度あるのに対して、起動FDのものは10Bytes程度)。
;W95EBD
(98/Meの場合は「;W98EBD」。EBD=緊急起動ディスク(Emergency Boot Disk)の意味)- これは、9xを他のパーティションにコピーする際に、msdos.sysがSYS等によりシステムを転送した場合のものでは、それ以外のファイルをコピーしても、9x本体は起動しないことを意味します。つまり、msdos.sysは元のパーティションのものがコピーされる必要があります。
- 問題は、msdos.sysには読み取り専用属性が付いているので、一旦SYS等でmsdos.sysが作成されてしまうと、元のパーティションから普通にコピーしても上書きされないことです。また、SYS等もmsdos.sysは上書きしないようです。したがって、方法として以下があります。
- 元のパーティションからmsdos.sysを含めてファイルをコピーした後に、SYS等をかける。
- ATTRIBでmsdos.sysの読み取り専用属性を解除した上で、元のパーティションのmsdos.sysをコピーする。
- XCOPY /Rを使ってコピーする(/rは読み取り専用ファイルも上書きするオプション)。
- 逆に、HDDにあるmsdos.sysを起動FDに上書きコピーしておくと、起動FDから起動した際に9x本体が起動するようになります(HDDにある本体のブート部分は経由しない)。
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から基本パーティションに移行する段階で、パーティションごと分岐させる。 |
|
b. | 同一の基本パーティションに、複数の9xのブート部分を共存させる。 | PBRからファイル群に移行する段階で、ファイル群を入れ替え、起動する9x本体を分岐させる(注5)。 |
|
(注5) | 9xのPBRは、少なくとも9xのDOSを起動することについては互換性がある。 |
- a.の様式であれば、
- まず複数の基本パーティションを作成する。選択肢としては、
- PartitionMagic等のパーティション操作ソフトを使う。必要に応じて既存の基本パーティションを縮小する等調整した上で、空きのスペースに新たな基本パーティションを作成する。
- DOSのFDISKを使う。一旦全てのパーティションを削除し、順々に基本パーティションを作成していく。FDISKでは認識できる基本パーティションが既にある状態では新たな基本パーティションを作成できないので、既存のパーティションを他のツール(SystemCommanderにおけるscdisk、ディスクエディタ等)で隠し設定にし、認識できないようにした上で、新たな基本パーティションを作成する。これの繰り返し。
- ディスクエディタで直接パーティションテーブルを編集する。
- 次に、各基本パーティションに9xをインストールする。インストール先のパーティションを間違えないように。このためにはインストール先の基本パーティションを予めアクティブに設定した状態でインストールを開始すればよい。他の基本パーティションは、可能であれば隠し設定にしておく。
- 最後に、起動するパーティションを選択できるソフトウエア(SystemCommander等)をMBRにインストールし、各基本パーティションを登録・設定する。トラブルをなるべく避けるには、ある9xが起動する際には、他の9xがある基本パーティションが隠し設定になるようにすればよい。
- まず複数の基本パーティションを作成する。選択肢としては、
- b.の様式であれば、
<SyetemCommanderを使う>- SystemCommanderのMultiFAT機能を使う。これは9xのDOSのファイル群を保存しておき、ブート時のメニューで選択されたOSのファイル群をC:のルートに出すもの。9xのインストール状態に即して、かなり凝った動作をする。ただし、「Program Files」フォルダの重複には頓着しないので、この問題は回避できない。
- なお、SystemCommanderはMBRに必ずインストールされるので、必然的にa.とb.の様式の組み合わせが可能となる。
- 「Winboot」は、Microsoftが開発者向けに(異なる言語版の95を同一の基本パーティションに同居させるため)作成した無保証のツール(ファイル名は「intlboot.exe」。Microsoftのサイトからダウンロードできたが、既に消えている)。
- 仕組みは、95のDOSの基本的な5つのファイルを別のフォルダに待避させておき、使う言語版のファイルだけをC:のルートに置くというもの。95本体のシステムフォルダは、別々のフォルダ名でインストールするように指定されていた。「Program Files」フォルダは、使わない言語版のものはフォルダ名をリネームしておくことで、重複の問題を回避するようになっていた。
- 9xのDOSのファイル群を予め保存し、C:のルートにあるファイル群を置き換えるバッチファイルを作成しておき、これを実行することで次回起動する9xのファイル群をC:のルートに戻すというもの。
- 具体的には、
- 最初の9x(仮に95-1とする)をインストールし、そのDOSの基本的な5つのファイルを、msdos.sysとio.sysの属性をATTRIB -H -R -Sで変えた上で、適当なフォルダ(仮にc:\boot\win1とする)に保存しておく。
- 2番目の9x(仮に95-2とする)を本体は95-1とは別のパーティションを指定してインストールし、同様にそのDOSの5つのファイルを適当なフォルダ(仮にc:\boot\win2とする)に保存しておく。
(3番目以降の9xがある場合には、この繰り返し) - バッチファイルを作成する。以下は例。
95-1を起動するための
バッチファイル(win1.bat)95-2を起動するための
バッチファイル(win2.bat)c:
cd\
attrib -h -r -s *.sys
copy c:\boot\win1\*.*
attrib +h +r +s msdos.sys
attrib +h +r +s io.sysc:
cd\
attrib -h -r -s *.sys
copy c:\boot\win2\*.*
attrib +h +r +s msdos.sys
attrib +h +r +s io.sys - 後は、各バッチファイルにショートカットを作っておく。これで、win1.batを実行した後に再起動すれば95-1が、win2.batを実行した後に再起動すれば95-2が起動するはず。なお、9xを実行中にconfig.sysやautoexec.batに変更があった場合には、変更されたファイルで保存されているファイルを上書きする必要がある。
- 番外として、
<2番目のHDDから起動する>- 9xは(ブート部分を含めて)、2番目のHDDの基本パーティションからは通常は起動できない。ただし、1番目のHDDにに当該の9xが認識できる基本パーティションがなければ、2番目のHDDの基本パーティションからも起動可能。このためにはSystemCommander等、細かい設定のできるソフトを使い、1台目のHDDの基本パーティションは全て隠し設定にした上で、2台目の基本パーティションにある9xのブート部分を起こす必要がある。
- この方法で起動した場合、ハードウエアに近いソフトはハングすることがある。
- 起動FDのmsdos.sysをHDD内のものと同じにすればHDD内の9x本体が起動できることを利用する。普通にHDDから起動する9xの基本パーティションとは別に、HDD内のパーティション(論理ドライブを含む)に9x本体を入れておき、当該の9xを起動するファイル群を入れた起動FDから起動する。
- 具体的には、
- 基本パーティションにHDDから普通に起動する9x(仮に95-1とする)をインストールし、C:のルートにある5つの基本的なファイルをどこかに保存しておく。
- 起動FDから起動する9x(仮に95-2とする)を、本体のインストール先をC:以外のパーティション(論理ドライブを含む)に指定してインストールする。95-2から起動FDを作成し、これをコピーした起動FDのmsdos.sysの読み取り専用属性を解除し、C:のルートにある5つの基本的なファイルを起動FDに上書きコピーする。改造した起動FDから起動して、95-2本体が起動することを確認する。
(起動FDから起動する9xが更にある場合には、この繰り返し) - 保存しておいた95-1の5つのファイルをC:のルートに戻す(95-2の同名ファイルを上書き)。これで、HDDから起動すれば95-1が、改造した起動FDから起動すれば95-2が起動するようになる。なお、95-2上でconfig.sys、autoexec.batに変更が加わるようなことをした場合、改造した起動FD中のファイルに同様のの変更を加え、C:のルートにあるファイルは保存しておいた95-1のものに戻す必要あり。
5. 以前のDOSとのデュアルブート
以前のDOSがある上から95をインストールした場合、以前のDOSを選択的に起動することが可能です(ブート時にF8を押し、現れたメニューから「8. Previous Version of MS-DOS」を選択する。またはブート時にF4を押す。パーティションがFAT16であることが前提)。この95と以前のDOSとのデュアルブートは、起動する際にC:のルートにあるファイル群をリネームすることで行われています(PBRの書き換えまではしない)。
[基本情報] | Microsoft: 以前のオペレーティングシステムを起動するための必要条件 |
- 以前のDOSがある上に95をインストールすると、以前のDOSのファイル群は以下のようにリネームされ(基本的に拡張子を「dos」にする)、95のDOSの同名のファイル群が置かれます。
MS-DOSの場合 PC-DOSの場合 command.com
io.sys
msdos.sys
config.sys
autoexec.bat→
→
→
→
→command.dos
io.dos
msdos.dos
config.dos
autoexec.doscommand.com
ibmbio.com
ibmdos.com
config.sys
autoexec.bat→
→
→command.dos
(そのまま)
(そのまま)
config.dos
autoexec.dosMS-DOSの場合 PC-DOSの場合 command.com
io.sys
msdos.sys
config.sys
autoexec.bat→
→
→
→
→command.w40
winboot.sys
msdos.w40
config.w40
autoexec.w40command.com
io.sys
msdos.sys
config.sys
autoexec.bat→
→
→command.w40
(そのまま)
(そのまま)
config.w40
autoexec.w40 - これは以前のDOSの上にWin95をインストールした場合の話ですが、Win95を単独でインストールした場合でも、msdos.sysの記述とこれらのファイルの条件を揃えてやれば、以前のDOSとデュアルブートできるようになります。
- このデュアルブートは、95B(OSR2)の場合はうまく行きません(以前のDOSがMS-DOSの場合)。以前のDOSをデュアルブートで一旦起動すると、再起動しても95が起動できない(ブート中に何も表示しないまま止まる)ということが起こります。これは、95BでPBRに変更があったためで、95のio.sysが、以前のDOSの起動時にwinboot.sysとリネームされたまま戻らないことが原因です(したがって、io.sysがないPC-DOSでは関係ない)。
[参考情報] Microsoft: OSR2 Hangs After Booting Previous Operating System
<95のio.sysを以前のDOSで起動するときにもリネームさせない>- 予め95のio.sysのコピーをwinboot.sysのファイル名にして、C:のルートに置いておく。こうすると、以前のDOSで起動した際にもio.sysはそのまま残るので、95に戻る際も問題が起きません(警告が出ることはある)。なお、この状態では以前のDOSも95のio.sysで動くことになりますが、特に問題は見られません。
- OSR2は、OSR2以前の95のPBRでも起動できるので(逆もまた真)、PBRをOSR2以前の95のもので上書きする。
- 積極的に95BのPBRを修正してしまう。このためのツールとして、「W95Boot」というものが存在した(ファイル名は「W95Boot.zip」。ただし、配布サイトは既に消えている)。
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 |
|
d. | 「Windowsの終了」で「MS-DOSモードでコンピュータを再起動する」で起動したDOS(Meにはない) | |
e. | 起動FDから起動するDOS |
B. DOSの基礎
- コマンドプロンプト
- DOSに入ると真っ黒な画面にC:\>_等と表示される。アンダーバーが点滅しているのはDOSがコマンドの入力待ちであることを示す。C:\の部分は色々変わるが、現在の場所を示す(この例ではC:のルート)。
- コマンドを実行するには、C:\>の後にコマンドを(必要であればパラメータも加えて)タイプして、Enterキーを押す。コマンドと各パラメータの間にはスペースを入れる。
- コマンド
- DOSには内部コマンドと外部コマンドがある。内部コマンドはDOS上ではいつでも使えるが、外部コマンドはその実行ファイルが現在の場所か、パスの通っている(pathで指定した)場所にあることが必要。
- 大文字か小文字かは判別されない。
- コマンドでファイルを指定する際にはワイルドカードが使える。
- *は全てのものを指す(例えばconfig.*はファイル名がconfigである全てのファイルを、c*.*はファイル名がcで始まる全てのファイルを、*.*は全てのファイルを指す)。
- ?は一文字だけ全てのものを指す(例えばa??.*はファイル名がaで始まる3文字である全てのファイルを指す)。
- 結果を表示するタイプのコマンドでは、> (ファイル名)を付けることで、画面に表示する代わりにファイルに書き出すことが可能(例えばdir > part.txtとすると、dirの結果を「part.txt」に出力する)。これは表示がスクロールされてしまう場合や、結果をファイルに保存したい場合に便利。
- ファイル
- DOSではファイル名に制限が多い。
- 上限はファイル名は半角8文字(全角4文字)、拡張子は3文字。
- ファイル名/ディレクトリ名にはスペースは通常入れられない。
- 9xでは256文字までのファイル名が使えるが、DOSでは短いファイル名が表示されることがある(例えば「The Microsoft Sound.wav」は、DOSでは「themic~1.wav」とスペースを抜いた上で後ろが省略されて表示される)。
- ファイルには「読み取り専用」「隠しファイル」「アーカイブ」「システムファイル」属性が付いている。「読み取り専用」のファイルは上書きできず、「隠しファイル」のファイルは通常表示されない。これらの属性の変更にはattribを使う。
- DOSではファイル名に制限が多い。
- 英語と日本語
- DOSは元来英語であるが、日本語を扱うためのドライバを起動時にconfig.sysに従ってロードすることでこれを可能としている。したがって、ドライバがロードされなかった場合、英語モードになる(英語モードではコマンドプロンプトの「\」がバックスラッシュになる)。
- 日本語モードから英語モードに移るときはusを打つ。日本語モードに戻るときはjp。
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-Tonbo:FDISK コマンドの使い方 |
- FDISKを使うには、対象のHDDがBIOSで認識されている必要あり。
- FDISKは、パーティション操作ソフトとしては、PartitionMagic等よりはるかに劣ります。
- パーティションの縮小・拡大・移動等の機能はない。また、基本的に新しいパーティションは既存のパーティションの後方に作成することになっている。したがって、パーティションのサイズ・位置を変更するには、(その後方のパーティションを含めて)一旦削除し、作成し直すことになる。
- 作成できるのはFAT16及びFAT32(OSR2以降)のパーティションのみ。
- パーティションの隠しの設定・解除はできない。
- 基本パーティションを複数作成できない。作成するには、既存の基本パーティションを他のツールを使って隠し設定にする等してから、新しい基本パーティションを作成する必要がある。
- NTFSの論理ドライブは削除できない。その他、削除したつもりのパーティションが残っている等、不可解な状況に陥ることがある。
- バージョンによって対応するHDDサイズに制限がある。
- 大きなパーティションを作成する際、サイズをパーセンテージでしか指定できない。
[参考情報] Microsoft: FDISK.EXE で 100 GB を超える領域を作成する手順
- MBRのブートコードを修復するには、fdisk /mbrとして実行します。
[参考情報] Microsoft: FDISK /MBR rewrites the Master Boot Record
Appendix 2. エラーメッセージ
Invalid system disk
Replace the disk, and then press any key
- DOSのブートコードが出すメッセージ。 起動すべきパーティション(アクティブな基本パーティション)にOSがない場合に出ます。もしくはOSの基本的な構成ファイルが欠けているときです。
[参考情報] Microsoft: Error Message "Invalid System Disk" After Setup Reboots - 起動すべきHDDが起動可能になっていない場合にも出ます。例えばHDDのMBRが正しくない場合です。対策は、起動FDから起動してfdisk /mbrです。
- BIOSのブート順でHDDよりFDDが優先になっている場合、FDDに起動可能でないFDを入れたまま電源を投入しても、これが出ます。
Disk I/O Error
Replace the disk, and then press any key
- DOSのブートコードの出すメッセージ。起動すべきパーティションのPBRが正しくない場合に出ます。対策は、そのDOSの起動FDから起動してsys c:です。
Type the name of the Command Interpreter (e.g., C:\WINDOWS\COMMAND.COM)
C>
- これは95の例ですが、command.comがC:のルートになく、かつ95本体も何らかの理由で起動しない場合に出ます。
- 95のある基本パーティションがアクティブでありながら、隠し設定(FDISKでは「Non-DOS」と表示される)になっている場合にも出ます。対策は、PartitionMagic等のソフトを使って隠し設定を解除することです。