MSDOS.SYS의 [경로] 섹션에 세 가지 다른 설정이있는 이유는 무엇입니까?

Aug 17 2020

Windows 9x에서 MSDOS.SYS 구성 파일에는 [Paths]내용이 일반적으로 다음과 같은 섹션이 포함되어 있습니다 .

[Paths]
WinDir=C:\WINDOWS
WinBootDir=C:\WINDOWS
HostWinBootDrv=C

모두 WinDirWinBootDirWindows 설치 일반적으로 디렉토리를 가리킨 C:\WINDOWSHostWinBootDrv이를 함유하는 드라이브 문자를 가리 킵니다. 고유 한 설정은 잠재적으로 다를 수 있음을 나타냅니다. 이것이 사실 인 상황이 있습니까? 왜 세 가지 다른 설정이 있습니까? 어쨌든 그들의 목적은 무엇입니까?

답변

9 user3840170 Aug 17 2020 at 14:22

HostWinBootDrv설명하기 가장 쉬운 방법은 디스크 압축, 즉 DoubleSpace / DriveSpace와 관련이 있습니다. DriveSpace가하는 일은 디스크 의 압축 된 내용을 포함 하는 이름 DRVSPACE.nnn( nnn3 자리 숫자) 의 파일을 만드는 것 입니다. 압축 된 파일 시스템에는 파일이 포함 된 파티션의 드라이브 문자가 할당되고 후자 ( 이 컨텍스트에서 호스트 드라이브 라고 함 )에는 다른 드라이브 문자가 할당되거나 때로는 완전히 숨겨집니다. Windows가 시작되는 파티션이 압축 된 경우 해당 파티션 HostWinBootDrv의 호스트 드라이브 (기본값은 H)를 가리키고 다른 설정은 압축 된 파일 시스템을 가리 킵니다.


에 관해서 WinDir하고 WinBootDir, 그들이 무엇을 비교적 쉽게 발견 할 수 있습니다. 몇 가지 실험 결과 다음과 같은 사실이 밝혀졌습니다.

WinDirWindows가 설치된 디렉토리를 가리 킵니다. 의 존재 WinDir에는 MSDOS.SYS지시 것입니다 IO.SYS(같은 비상 부트 플로피에, 명령 프롬프트로 바로 부팅 반대)가 출시를 준비해야하는 Windows 설치가 존재했다 (윈도우 ME 전). 경우 WinDir설정, 리얼 모드 커널은 다음 작업을 수행합니다 :

  • PATH환경 변수 에 두 개의 항목을 넣으십시오 :이 가리키는 디렉토리 WinDir와 그 하위 디렉토리 COMMAND;
  • TEMP이 디렉토리 아래 에 하위 디렉토리를 만들고 환경 변수 TEMP와 그 위치 TMP를 가리 킵니다 .
  • 처리 후 시작 여부를 결정 하는 BL 레지스터 비트 5의 인터럽트 0x2f서비스 0x1611에서 반환 된 플래그 COMMAND.COM를 지 웁니다 .WIN.COMAUTOEXEC.BAT
  • 처리하기 전에 장치 구성 관리자를 시작합니다 CONFIG.SYS( 섹션 의 SystemReg=0설정 으로 억제 할 수 있음 [Options]).
  • SYSTEM.DAT(레지스트리) COMMAND.COM(없는 경우 루트 디렉터리로 대체 됨) 및 HIMEM.SYSand IFSHLP.SYS( DOS=NOAUTO에서 설정 하여 억제 할 수 있음 )와 같은 리얼 모드 드라이버를 포함하여이 디렉터리에서 특정 중요 파일을 찾습니다 CONFIG.SYS.
  • winbootdir환경 변수 (모두 소문자!)에 디렉토리 자체를 저장합니다 .

이 중 마지막 두 개는 설정으로 재정의 할 수 있습니다 WinBootDir. 해당 설정도 있으면 해당 파일이 WinBootDir대신 검색되며 물론 winbootdir환경 변수로 끝나는 디렉토리입니다 .

그러나 여기에는 예를 들어 WIN.COM. 때 AUTOEXEC.BAT파일이 존재하지 않는, 비우거나 존재는, (안전 모드의 예처럼) 생략 COMMAND.COM로드되지 않고 직접 실행됩니다 리얼 모드 커널 WIN.COM에서 WinBootDir. 그러나이있는 경우이 ( AUTOEXEC.BAT가) COMMAND.COM실행되어이를 처리 한 다음에서 명령 WIN을 실행하고 WIN.COM…을 실행 PATH합니다 WinDir. 기본적으로 .


음, 좋은,하지만 왜 WinDirWinBootDir전혀 별개의 설정은? 아직 완전히 명확하지는 않지만 내가 모을 수있는 부분은 LAN을 통한 Windows 부팅을 지원하기위한 것일 수 있습니다. 이러한 구성에서, DOS가 처음과 같은 필수 드라이버를로드, 정상적인 파일 시스템에서로드 (또는 자체 디스크 이미지가 네트워크를 통해 다운로드) 될 수 HIMEM.SYS에서 WinBootDir동일한 파일 시스템에 위치를, 다음 주지도, DOS 네트워크 드라이버를로드 (포함 WinDir)을 해당 드라이브 문자로 변경 한 다음 거기에서 부팅을 계속합니다. 이것이 의도 한 시나리오라면 WIN.COM이상 도 이제 의미가 있습니다.에서 정상적으로 부팅 할 때 시작된 '주'Windows 복사본이있을 수 있고 네트워크 부팅이 실패 할 때에서 WinDir안전 모드로 부팅 된 또 다른 최소 '긴급'복사본이 WinBootDir있을 수 있습니다.

어쨌든이 시나리오의 요구 사항은 두 설정이 서로 다른 값을 갖도록 쉽게 요구할 수 있습니다. 다음 은 그러한 구성을 설명 하는 문서 의 짧은 부분입니다 .

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 윈도우 9x와 네트워크 부팅을 달성하는 방법에 대해 설명합니다).

이 모든 것이 어떻게 작동하는지에 대한 세부 사항에 대해서는 다소 부족하지만 두 소스 모두 SETMDIRWindows 95의 일부로 배포되는 유틸리티를 언급 합니다. 이는 네트워크 부팅이 Microsoft에서 의도 한 사용 사례 일 가능성이 있음을 의미합니다.

2 wendy.krieger Sep 22 2020 at 19:34

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 또는 기타 실행)을 담당합니다.

== 편집 ==

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의 옵션으로 여러 Windows 9x 버전을 실행하는 것을 문서화하고 있습니다. 지금까지 DOS98SE에서 Win95를 시작할 때 발생하는 대부분의 문제를 극복했습니다.

https://www.betaarchive.com/forum/viewtopic.php?f=60&t=41489

이것은 DOS98SE에서 Windows 95 및 ME를 실행하는 과정입니다. 실험에 사용 된 DOS 파일에 대한 링크가 있습니다.

이러한 모든 실험은 설명 된 작업을 수행하는 VPC 세션을 기반으로합니다. 예를 들어, Offer가 c : \ MSDOS7의 구성을 게시 한 후, 저는 영어와 독일어로 다른 Win98 및 ME 설치 위에 여러 NT5x로 실험을 실행했습니다. c : \ msdos7을 사용하는 아이디어를 얻었습니다.