MSDOS.SYSの[パス]セクションに3つの異なる設定があるのはなぜですか?
Windows 9xでは、MSDOS.SYS構成ファイルには、[Paths]
通常次のような内容のセクションが含まれています。
[Paths]
WinDir=C:\WINDOWS
WinBootDir=C:\WINDOWS
HostWinBootDrv=C
とは両方ともWinDir
、WinBootDir
通常はC:\WINDOWS
であるWindowsインストールディレクトリをHostWinBootDrv
指し、それを含むドライブ文字を指します。異なる設定があることは、これらが異なる可能性があることを示唆しています。これが当てはまる状況はありますか?なぜ3つの異なる設定があるのですか?とにかく彼らの目的は何ですか?
回答
HostWinBootDrv
説明するのが最も簡単です:それはディスク圧縮、すなわちDoubleSpace / DriveSpaceと関係があります。DriveSpaceが行うことは、ディスクの圧縮された内容を含むDRVSPACE.nnn
(nnn
3桁の数字である)のような名前のファイルを作成することです。圧縮ファイルシステムには、ファイルを含むパーティションのドライブ文字が割り当てられ、後者(このコンテキストではホストドライブと呼ばれます)には別のドライブ文字が割り当てられるか、完全に非表示になる場合があります。Windowsの起動元のパーティションが圧縮HostWinBootDrv
されている場合、はそのパーティションのホストドライブを指します。これはデフォルトではですがH
、他の設定は圧縮されたファイルシステムを指します。
とに関してはWinDir
、WinBootDir
彼らがしていることは比較的簡単に発見できます。いくつかの実験により、次のことが明らかになりました。
WinDir
Windowsがインストールされているディレクトリを指します。存在WinDir
ではMSDOS.SYS
、指示するものであるIO.SYS
(のような緊急ブートフロッピーには、コマンドプロンプトにだけブートではなく)それは打ち上げに準備されるべきであることをWindowsインストール存在があったこと(Windows Meの前に)。場合はWinDir
設定されている、リアルモードカーネルは、次の操作を行います:
PATH
環境変数に2つのエントリを配置します。が指すWinDir
ディレクトリとそのサブディレクトリCOMMAND
です。TEMP
このディレクトリの下にサブディレクトリを作成し、環境変数TEMP
とそのディレクトリをポイントしますTMP
。- BLレジスタビット5の割り込み
0x2f
サービスによって返されるフラグをクリアします。このフラグは、処理後に起動するかどうかを決定します。0x1611
COMMAND.COM
WIN.COM
AUTOEXEC.BAT
- 処理する前にデバイス構成マネージャーを起動します
CONFIG.SYS
(これSystemReg=0
は[Options]
セクションの設定で抑制できます) - このディレクトリで、
SYSTEM.DAT
(レジストリ)COMMAND.COM
(存在しない場合はルートディレクトリにフォールバックします)やHIMEM.SYS
andIFSHLP.SYS
(で設定DOS=NOAUTO
することで抑制できます)などのリアルモードドライバを含む特定の重要なファイルを探しますCONFIG.SYS
。 - ディレクトリ自体を
winbootdir
環境変数(すべて小文字!)に格納します。
これらの最後の2つは、設定によってオーバーライドできるものWinBootDir
です。その設定も存在する場合、それらのファイルはWinBootDir
代わりに検索されwinbootdir
ます。もちろん、環境変数で終わるのはそのディレクトリです。
ただし、ここにはいくつかのしわがありますWIN.COM
。たとえば、に関してです。ときにAUTOEXEC.BAT
ファイルが存在しない、空またはビーイングは、(セーフモードで例えばのように)スキップされ、COMMAND.COM
ロードされず、リアルモードカーネルではなく、直接実行されますWIN.COM
からWinBootDir
。ただし、AUTOEXEC.BAT
が存在する場合は、COMMAND.COM
それを処理するために起動され、その後、コマンドを実行し、WIN
で検索してWIN.COM
…を起動PATH
しますWinDir
。これは、デフォルトでを指します。
まあ、素晴らしいですが、なぜWinDir
、WinBootDir
個別の設定があるのですか?まだ完全にはわかりませんが、私が収集できることからすると、LAN経由でのWindowsの起動をサポートすることを意図していたのでしょう。このような構成では、DOSは最初に通常のファイルシステムから(またはネットワーク経由でダウンロードされたディスクイメージからそれ自体を)ロードし、同じファイルシステム上にあるような重要なドライバーをロードしてHIMEM.SYS
からWinBootDir
、DOSネットワークドライバーをロードし、共有をマップします。 (を含むWinDir
)をドライブ文字に追加し、そこから起動を続けます。それが意図したシナリオである場合は、WIN.COM
奇妙なことでも意味があり始めます。ネットワークブートが失敗すると、から通常の起動時に「メイン」のWindowsコピーが開始されWinDir
、からセーフモードで起動される「緊急」のコピーがもう1つある可能性がありWinBootDir
ます。
いずれにせよ、このシナリオの要件では、これら2つの設定に異なる値を設定する必要があります。これは、まさにそのような構成を説明しているドキュメントからの短い断片です。
D-2. MSDOS.SYS Sample File for DM9102 : ======================================= [Paths] WinDir=g:\client1 WinBootDir=d:\winboot <== According to RAMDRIVE.SYS assign HostWinBootDrv=c Virtual Drive (D: or E:)
あり、紙とMicho Durdevich(で一連の記事パート1、2、3、4、5と6のWindows 9x系でネットワークブートを実現する方法を説明します)。
これらすべてがどのように機能したかについての詳細はやや不十分ですが、どちらのソースSETMDIR
もWindows 95の一部として配布されているユーティリティについて言及しています。これは、ネットワークブートがおそらくMicrosoftが意図したユースケースであったことを意味します。
Winbootdirは、DOSスタートアップファイルが存在するディレクトリを指します。Windirとは異なる場合があります。
Windirは、ユーザーのレジストリが存在するディレクトリを指します。ネットワーク上では、これはWindowsがインストールされている場所とは異なる場合があります。
Winbootdirは、config.sys / autoexec.batがない場合に使用され、himem.sys、ifs $ hlp.sys、coなどのドライバーをロードします。たとえば、ネットワークを介して送信されるブートイメージ上にある可能性があります。
3.0のWindirには、win.comが含まれている必要がありますが、win.comは(win32.vxdなどを実行して)Windowsを起動する責任があります。
==編集==
http://reboot.pro/topic/22047-dual-boot-msdos-710-and-630/
この投稿では、Win98seのDOSと、わずかに変更されたMS-DOS 6.22を使用して、最小限のDOSセットアップを作成する方法について説明します。
winbootdirとwindirが変更されたときに何が起こるかの例。コマンドsetmdirは、システムの起動後にwindirを変更します。ここでは使用していません。
http://reboot.pro/topic/18130-ms-dos-7-help-file/
このトピックには、DOS 5から7用のqbasicヘルプファイルを作成するための実用的なコメントが含まれています(つまり、CDROMにあるものの代わりとして)。
https://www.betaarchive.com/forum/viewtopic.php?f=72&t=34798&p=401645#p401645
これは、config.sysのオプションとして複数のWindows9xバージョンの実行を文書化する場所です。これまでのところ、DOS98SEからWin95を起動する際の問題のほとんどを克服しました。
https://www.betaarchive.com/forum/viewtopic.php?f=60&t=41489
これは、DOS98SEからWindows95およびMEを実行する際の進捗状況です。実験で使用したDOSファイルへのリンクがあります。
これらの実験はすべて、説明されていることを実行するVPCセッションに基づいています。たとえば、Offerがc:\ MSDOS7の構築を投稿した後、英語とドイツ語で、さまざまなWin98とMEのインストールの上にいくつかのNT5xを使用して実験を実行しました。ここで、c:\ msdos7を使用することを思いつきました。