mULTI-BOOTING…..???

No comments

2005 년 가을경에 작성했던 꼭 필요한 정보가 있어서 ….
하드를 뒤지다가 2000 년 작성했던 파일 하나를 발견했습니다.

■■■■■■■■ dos에서 multibooting하는 법 v 0.3 ■■■■■■■■

ms-dos는 version 6.0부터 멀티 부팅을 지원하기 시작했지만 windows 95로 접어들면서 이 기능의 필요성이 많이 약화되었습니다만 windows 98의 booting diskette에서 기본적으로 사용하며, 완벽한 multibooting 지원과 또 필요성을 보여 주었습니다.

이 글에서는 이에 해당하는 것에 대해서 간단히 설명하도록 하겠습니다. 만약 이 글에 대한 의문점이 있을 시에는 ms-dos version 6.xx 에서 help를 보시면 대부분 해결될 것입니다. version 6.22에서는 도움말이 한글화되었군요!

참고로 제 하드웨어 사양은 다음과 같습니다.

PENTIUM MMX 200MHz cpu, LEOTEC EXOP P55(M)VP3 mainboard, soundtrack digital XG,
QUANTUM 6GB+13GB harddisk, 3.5 inch floppy disk drive,
ASUS AGP-V3400TNT 16M SGRAM, LG Flatron 795FT+ MONITER, 64M SDRAM(pc66)
PCROUND yes Quick 56k T1 V.90 fax-modem, LG CRD-8400B 40X CD-rom drive,
LOGITECH FIRST MOUSE. ARON 109 KEYBOARD, MULTIMEDIA MMS-100 SPEAKER,
사셈 little OnAir TV수신카드

♠♠♠♠♠♠♠♠  CONFIG.SYS에서의 MULTIBOOTING  ♠♠♠♠♠♠♠♠

[MENU]  ;dos가 MULTIBOOTING을 을 할 것임을 인식한다.
MENUITEM=WINDOWS,WINDOWS.
MENUITEM=CDXMS,CD + XMS.
MENUITEM=CDEMS,CD + EMS.
;MENUITEM은 BOOTING 방법을 설정하는 부분으로, ‘=’에서 ‘,’사이 구문은
;DOS가 만드는 CONFIG 환경변수의 이름입니다. DOS는 MULTIBOOTING을
;이 CONFIG에 의해 하게 됩니다. 이후는 선택을 위해 화면에 표시됩니다.

SUBMENU=REAL,REAL DOS.
;SUBMENU는 뒤에 다시 메뉴에서 선택할 수 있는 선택화면을 처음과 같이
;다시 나타내 줍니다. 자세한 것은 다음에 기술하겠습니다.

MENUDEFAULT=WINDOWS,10
;최초로 선택막대가 위치되는 ITEM과 사용자 선택 대기시간울 설정합니다.
;초단위이며, 시간을 기록하지 않으면 무한대 시간으로 설정됩니다.
※MENUCOLOR라는 항목은 MENUDEFAULT의 뒤에 위치하며,
  ‘MENUDEFAULT=글자색,바탕색’의 형태로 쓰입니다.(16색의 숫자로 표현)

[REAL]
MENUITEM=REAL_DOS1,REAL_DOS1.
MEMUITEM=REAL_DOS2,REAL_DOS2.
;위의  SUBMENU항목에서 이 위치로 오게 됩니다.
;기능은 [MENU]항목과 같으며 작성 문법도 같습니다만
;MENUDEFAULT와 MENUCOLOR를 사용할 수 없음을 주의해야 합니다.
;여기서 CONFIG 환경변수를 만들게 됩니다

[COMMON] ;이것은 어떤 메뉴를 선택하거나 실행되며,
; CONFIG.SYS의 처음과 끝에 올 수 있습니다.
DEVICE=C:\WINDOWS\HIMEM.SYS /TESTMEM:OFF
DOS=HIGH ;이 부분은 하나로 써도 되지만 부분적으로 선택해서 실행해야
DOS=UMB  ;할 경우를 대비해 나눕니다.
SHELL=C:\COMMAND.COM C:\ /E:500 /p
BREAK=ON
FILES=50
STACKS=11,256

[CDXMS]  ;이 부분은 두번째 MENUITEM을 선택하면 실행됩니다.
DEVICE=C:\WINDOWS\EMM386.EXE NOEMS
INCLUDE=DRV

[CDEMS]  ;이 부분은 세번째 MENUITEM을 선택하면 실행됩니다.
DEVICE=C:\WINDOWS\EMM386.EXE RAM
INCLUDE=DRV ;MENUITEM이 실행될 때 공동으로 실행되는 부분이 많을 경우에
;이 부분을 따로 하나로 떼어서 중간에 하나의 LABLE로 만든 후
;불러서 사용하기 위한 명령어입니다.

[DRV]
devicehigh=c:\windows\ramdrive 4096 4096/e
DEVICEHIGH=C:\D011V110.SYS /D:MSCD001
;DOS용 CDROM DRIVER를 등록합니다.

[WINDOWS] ;이 부분은 첫번째 MENUITEM을 선택하면 실행됩니다.
deviceHIGH=C:\WINDOWS\biling.sys
DEVICEHIGH=C:\WINDOWS\SETVER.EXE

[REAL1]
[REAL2]

[common] ;이 부분이 다시 나타났습니다. [COMMON]부분은 없어도 됩니다.
SWITCHES=/F/N/W
rem LASTDRIVE=H

※numlock라는 항목은 numlock key를 켜거나 끄는 용도로 사용됩니다.
  config.sys의 어디에나 올 수 있으며, 형태는 ‘numlock=on|off’입니다.

♠♠♠♠♠♠♠♠  AUTOEXEC.BAT에서의 MULTIBOOTING  ♠♠♠♠♠♠♠♠

AUTOEXEC.BAT에서는 일반 배치화일과 같은 문법을 사용하며, 단지 몇 가지가 틀릴 뿐입니다.

@ECHO OFF
SET ARJ_SW=-JYRY -JV -I1 -JM1 -hf2
SET RAR=-M5 -COL
PROMPT %CONFIG% $P$G
;CONFIG.SYS의 MENUITEM에서 설정된 환경변수 ‘CONFIG’가 이곳에서 사용되었습니다.
;일반적으로 환경변수는 SET으로 AUTOEXEC.BAT에서 설정되지만 CONFIG라는 환경변수는
;사용자의 선택과 동시에 설정됩니다. 윗줄과 같이 명령을 내리면 %CONFIG%부분에
;CONFIG 환경변수로 치환됩니다. 꼭 사용할 필요는 없습니다.
;TEXT환경에서 어떤 부팅을 했는지 알수 있도록 첨가한 것입니다.
SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\UTIL;C:\UTIL\MDIR;C:\HNC;
GOTO %CONFIG%
;일반적인 GOTO의 사용법과 같습니다만 여기서는 주의할 점이 있습니다.
;CONFIG.SYS의 MULTIBOOTING에는 아무 문제가 없이 사용할 수 있습니다만,
;’-‘,’+’등과 같은 특수문자는 GOTO문에서는 인식이 안돼서 사용할 수가 없습니다.
;따라서 CONFIG.SYS내에서의 MENU상의 LABLE에 특수문자가 포함되면 AUTOEXEC.BAT의
;GOTO문에서 ‘LABLE NOT FOUND’라는 출력문을 출력하며 MULTIBOOTING이 잘 안됩니다.

:WINDOWS
loadhigh C:\WINDOWS\nlsfunc.exe C:\WINDOWS\country.sys
win.COM ;DOS로 BOOTING을 할 때를 위해서 WINDOWS로 BOOTING을 할 WIN.COM을 실행시킴니다.
GOTO END
;이 때는 이미 MSDOS.SYS에서 WIN.COM을 실행시키지 못하도록 해야 합니다.
:CDEMS
:CDXMS
LH C:\WINDOWS\COMMAND\MSCDEX.EXE /E/L:h /D:MSCD001 /M:10
GOTO END

:REAL_DOS1
:REAL_DOS2

:END
ECHO ON

♠♠♠♠♠♠♠♠  MSDOS.SYS에서의 MULTIBOOTING  ♠♠♠♠♠♠♠♠

  ;이 MSDOS.SYS는 WINDOWS 95 OSR2에서 사용되는 것입니다.
  ;WINDIWS 98에서는 약간 다른 명령어를 포함하고 있습니다.
  ;MS-DOS 6.xx에서는 MSDOS.SYS를 편집하면 안됩니다.

[Options]
BootGUI=0   ;기본적으로 1로 설정되어 있습니다. 0이면 WIN.COM이 자동적으로
           ;실행되지 않습니다. 따라서 사용자 프롬프트(DOS)로 들어갑니다.
BootMulti=1
Network=0
;
;The following lines are required for compatibility with other programs.
;Do not remove them (MSDOS.SYS needs to be >1024 bytes).
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxa
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxb
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxd
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxe
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxg
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxh
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxi
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxj
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxk
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxl
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxm
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxn
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxo
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxp
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxq
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxr
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxs

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


WINDOWS 98과 WINDOWS 98 SE의 BOOTING DISKETTE에서도 같은 문법이 사용되었습니다.
오히려 WINDOWS 98의 BOOTING DISKETTE에서 최적화 되지 못한 것을 보면 아직 개선해야 할
사항이 있는것 같습니다. 그 DISKETTE으로BOOTING을 했더니 에러메시지가 뜨더군요..^^

참 그리고 WINDOWS 98의 BOOTING DISKETTE에서는 RAMDRIVE를 만들고서 그곳에 여러가지
기본적인 복구 UTILITY를 넣더라구요.. 예전에 저도 그렇게 썼었는데 간단하게
AUTOEXEC.BAT에서 필요한 프로그램들을 복사해 넣으면 됩니다. 그리고 PATH에도 RAMDRIVE의
경로를 추가해두는 것도 잊으면 안되구요… WINDOWS 98의 BOOTING DISKETTE에 있는 RAMDRIVE의
위치를 알려주는 프로그램을 사용하면 더 편리한 방법이 있더군요..^^ 단 사용법은 더 까다롭습니다.
MS-DOS 6.xx 시절이었을 때에 저는 MDIR을 넣었었습니다. DOS로 BOOTING할 때 유용하겠죠..
RAMDRIVE를 만들 때는 위에서는 4M를, WINDOWS 98에서는 2M를, 그리고 DOS에서 한계치를 제시한 것은
2M던가(?) 였는데, 제가 해본 바로는 13M크기까지 생성해 보았습니다.

열심히 노력해서 사용하면 더 편해질 수 있습니다.

참고로 MULTIBOOTING과는 상관없지만 한가지 덛붙이자면은, AUTOEXEC.BAT과
CONFIG.SYS의 맨 마지막에 빈 줄 하나를 넣는것이 좋을 것입니다.
상황에 따라서 에러가 생길 수 있다는데 도스의 에디터는 그래서
기본적으로 마지막줄에 빈줄을 (무조건) 넣게 되었다는군요..
_M#]
파일 작성한 시간이 정확히 2000-02-29 오전 8:15:32로 되어있군요.
MS-DOS에서 멀티부팅은 v6.0부터 지원되었습니다. 물론 6.1로 바뀌면서 아주 조금 바뀌었고, windows체제로 넘어오면서 거의 비슷했습니다만 조금 또 수정해야 했습니다.

처음에는 config.sys만 수정할 수 있었습니다만, 곧이어서 config.sys에서 분류하는 이름이 환경변수에 남는다는 것을 알아냈고, 배치파일의 if문이나 for문으로 제어가 된다는 것을 알아내서 결국에는 autoexec.bat에서도 멀티부팅 모드로 사용하게 됐습니다.
아마 1994~1995년 당시에 MS-DOS를 썼던 분들이라면 멀티부팅의 강력한 기능이 왜 필요했는지 아실 것입니다. 90% 정도는 J-dos용 게임 때문이었습니다만 나머지 10%는 학습을 위한 프로그램들 때문이었죠. 당시에는 프로그램들이 스스로 메모리를 관리하던 시절이라서 emm386.exe같은 프로그램을 설치하면 에러가 나는 그런 것들이 존재했었습니다. ^^
그래서 위의 파일을 봐도 realmode가 존재했었던 것이구요.

MSDOS.SYS는 windows체제로 넘어오면서 수정해야 햇던 것입니다.

이걸 발견하니 아련한 추억으로 다가오는군요. ^^

ps.
생각해 보니 이 문서는 당시 컴퓨터 학원에서 강사를 하던 알고 지내던 분이 부탁하셔서 보충설명까지 달아가면서 작성하던 것이었군요. ^^;

댓글 남기기