고스트 자동복구시디와 CD Drive 할당 문자명 > MySQL Tip

본문 바로가기
 

고스트 자동복구시디와 CD Drive 할당 문자명

페이지 정보

작성자 차동박 이름으로 검색 댓글 0건 조회 17,407회 작성일 05-09-13 19:07

본문

고스트 자동복구시디와 CD Drive 할당 문자명
고스트 자동복구시디를 제작시 CD-ROM등 (CD-ROM,CD-R(W),DVD-R(W).......) 에 할당되는
드라이브 할당 문자의 가변성 때문에, 고스트 복구구문 작성시 어려움을 호소하는 분들에게
다소나마 도움이 될까하여 이 글을 작성하여 본다.
물론, 이글은 초급자들을 위한 설명이다.

우선, 간단한 고스트 자동복구 구문을 예시해 보자.

시스템 환경 : C: (HDD, 1st Partition, FAT32, OS설치)
D: (HDD, 2nd Parttition, FAT32, DATA저장)
E: (e-ide CD-ROM)

고스트 자동복구시디를 이용하여 C:드라이브를 자동 복구하고자 하는 경우이다.
이 때, 고스트 백업File명은 "backup.gho"이며 시디의 Root에 있다고 가정한다.
모든 예문은 win98용 MS-DOS 및 고스트 8.0을 기준으로 설명한다.
또한, 고스트 실행파일(ghost.exe, ghost.env)은 부팅시디의 부팅영역(A:)에 포함되어 있다고
정한다.

NOTE : 특별한 이유가 없는 한 고스트 실행파일은 부팅시디의 부팅영역(A:)에 넣도록 하자.
부팅시디의 DATA영역에 있을 때보다는 훨씬 더 쓰임새가 많다.

아래 예문은 위의 경우의 일반적인 구문일 것이다.
또한, 부팅디스크에 필요한 파일은 다음과 같을 것이다.

command.com, msdos.sys, io.sys, himem.sys, oakcdrom.sys,
mscdex.exe, config.sys, autoexec.bat, ghost.exe, ghost.env
findcd.exe(if required), findcd.com(if required)

--config.sys---
device=himem.sys
dos=high,umb
device=oakcdrom.sys /d:mscd000
lastdrive=z

---autoexec.bat---
lh mscdex.exe /d:mscd000
ghost.exe -clone,mode=pload,src=E:\\BACKUP.GHO:1,dst=1:1,-rb -sure

그런데, 문제가 되는 것은 CD Drive 할당 문자명(위의 경우는 E:)이 경우에
따라서 바뀐다는 것이다. 즉, 하드디스크를 추가/제거 한다던가? , 파티션을 분할/병합
한다던가? 시디드라이브를 추가/제거 한다던가? 파티션변환(FAT--NTFS)한다던가?
유동램드라이브를 사용한다던가? 혹은 다른PC나 노트북에서 부팅한다던가?,,,,등등,
시디드라이브 할당문자명이 바뀌는 경우의 수는 많다.
추가가 되는 경우에는 CD Drive명이 F:, G:, H,등등으로 밀려난다.
DOS는 드라이브명 할당시 Hard Disk---RAM Disk---CD Drive 순으로
알파벳문자를 순차적으로 할당하기 때문이다.
또 제거/감소되는 경우에는 CD드라이브명이 앞 번으로 당겨질 것이다.
이런 경우에 기존의 자동복구CD를 넣고 부팅하면 당연히 에러가 발생한다.
자동복구 구문중 "src=E:\\backup.gho-------"가 문제가 되기 때문이다.
그러면 그 때마다 고스트 자동복구 시디를 다시 만들어야 하는가?????
우린 그렇게는 못 한다.

그러면 해결책은 무었인가?????
될 수 있는대로 만병통치약을 만들어야 한다.

1. CD Drive 문자 할당명을 가변시키지 않고 고정한다.
lh mscdex.exe /d:mscd000 /L:Q
따라서,
ghost.exe -clone,mode=pload,src=Q:\\backup.gho:1,dst=1:1 -rb -sure

mscdex.exe 의 스위치 "/L:Q"에 의해서 CD Drive명은 항상 "Q"로
고정된다. 물론, 예문과 같이 반드시 "Q"로 할당해야 하는 것은 아니다.
config.sys 에서 "lastdrive=z"로 설정해 놓았으므로 "Z"이내에서 임의로
고정시키면 된다. 단, 너무 앞쪽의 알파벳은 Hard Disk 나 Ram Disk
추가시 드라이브명이 중복될 염려가 있으므로 가능하면 사용하지 않는다.

위의 방법이면 대부분의 경우에 해결이 되나 다음과 같은 경우에는 문제가 된다.
요즈음은 CD Drive류를 두 개 이상 장착하는 경우가 적지 않다.
예를 들어, Secondary Master에는 CD-Rom이나 DVD-ROM을
Secondary slave에는 CD-R(W)나 DVD-R(W)를 (혹은 이와 반대로)....
이 경우 CD Drive 할당 문자명은 Secondary Master---Secondary Slave
순으로 할당된다. 따라서, 위의 경우 1번 구문을 사용하게 되면
CD-ROM에 "Q"가 CD-R(W)에 "R"이 할당되게 되며, 만일, CD-R(W)에
자동복구시디를 넣고 부팅하게 되면 (CD-Rom 고장이나 기타등등으로.......)
에러가 발생하게 된다.(당연하지 않은가!!!!!!!)

그러면, Hard Disk Drive명이 추가/감소되던 말든, CD Drive가 하나던
두개 이건 또한, 어느 CD Drive에서건 관계없이 사용할 수 있는 방법은?

2. autoexec.bat 내에서 배치구문을 사용하는 방법이 있다.
원리는 간단하다. IF문을 이용하여 우선 Master에 연결된 CD Drive에서
고스트백업파일이 있나 검색하고, 있으면 Master에 지정된 드라이브명을
이용하여 고스트 자동복구 구문을 실행하고,
없으면 Slave에 할당된 드라이브명을 이용하여 고스트 자동복구구문을
실행하는 방법이다. 이렇게 되면 두 개의 CD Drive(나름에 따라 몇개라도)
어디에서나 자동복구시디를 사용할 수 있다.
이 곳 강좌 "12번"이 이런 방법을 이용한 설명이다.
여기서는 간단한 예문만 제시한다.

lh mscdex.exe /d:mscd001 /L:Q
if exit Q:\\BACKUP.GHO goto ghostQ
goto ghostR

:ghostQ
ghost.exe -clone,mode=pload,src=Q:\\backup.gho:1,dst=1:1,-rb -sure
goto quit

:ghostR
ghost.exe -clone,mode=pload,src=R:\\backup.gho:1,dst=1:1,-rb -sure
goto quit

:quit

그러나, 이 방법도 약간의 불편을 감수해야 한다.
즉, 자동복구시디가 Slave에 연결된 CD Drive에 들어 있을 때는,
"IF"문 명령에 의해 먼저 비어 있는 Master CD Drive를 검색하므로
검색 직후에 "CD가 준비되지 않았다는" 에러메세지를 나타낸다.
이 때, 키보드의 A(bort)키를 눌러 주어야만 다음 단계로 진행한다.

사실 우리가 원하는 고스트 자동복구시디는, 그야말로 완전 자동복구시디이다.
복구시디를 어느 시디드라이브건 넣어 놓고 전원스위치를 껏다가 켜기만 하면,
신경끄고 비디오한편 보는 동안에 저절로 복구되고 재부팅되어 있는........
그래서, 한 번 만들어 두면 컴맹인 유치원 아들도 복구시킬 수 있는 그런 복구시디...,

그럼 다른 더 편한(?) 해결 방법은??????

3. MS 의 Window 설치 CD에서 사용하는 방법을 응용해 보자.
아시다시피, MS의 Window설치 CD는 부팅시디이며, 아주 다양한 Sysytem
에서 사용된다. 그렇다면, 반드시 위에 언급한 문제에 봉착할텐데 MS는
도대체 어떤 방법으로 문제를 해결하였을까?
Windows 98(se) 설치CD의 autoexec.bat의 내용을 보면 실마리를 얻게된다.
내용중에 다음과 같은 항을 볼 수 있다.

lh mscdex.exe /d:mscd000
set cdrom=foo23
findcd.exe
if "%cdrom%"=="foo23" goto nocdrom
path=a:\\;%cdrom%\\
%cdrom%
cd \\win98
setup.exe
goto quit

즉, FINDCD.EXE 란 파일이 핵심이다. 이 파일이 실행되면 우선,
모든 CD Drive를 검색하여 CD의 루트에 "\\win98\\setup.exe" 파일이 존재하는
CD Drive가 어느 CD Drive인가를 찾아내어, %CDROM% 이란 환경변수에
해당 CD Drive명을 돌려 주는 역할을 한다. 물론, 할당되는 CD Drive명은 가변적이다.
따라서, windows 98 설치 시디가 들어 있는 CD Drive명이 무었이던 어느
CD Drive에 들어 있던 관계없이 설치(setup.exe 실행)가 되는 것이다.

우리는 이 파일을 우리 입맞에 맞게 개조해서 사용하고자 한다.
win98 시디에 들어 있는 findcd.exe는 win98\\setup.exe를 검색하게끔
코딩되어 있으므로, 이것을 Ultra Edit와 같은 HEX. Editor를 이용하여
원하는 임의의 문자로 치환하면 된다. 단, 치환하려는 자리수는 정확히
일치하여야 한다.(Hex. Editor 사용법은 스스로 익히기를... 간단함)

NOTE : 당연하지만, windows ME 설치 시디에 들어 있는 "findcd.exe" 파일은
"win98\\setup.exe" 가 아니라 "win9X\\setup.exe"를 검색하도록
코딩되어 있다. 즉, 파일이름만 같을 뿐 실제로는 다른 파일이다.
수정해서 사용할 때는 어떤 파일을 사용해도 무방하다.

예를 들면, gbak\\backup.gho 로 치환시켜 저장하고, 복구시디를
만들 때 CD의 Root에 gbak이라는 디렉토리를 만들고 고스트 백업파일인
backup.gho를 gbak이란 디렉토리안에 집어넣으면 된다.
이럴 경우 autoexec.bat의 내용은 다음과 같이 작성된다.

lh mscdex.exe /d:mscd000
set cdrom=foo23
findcd.exe
if "%cdrom%"=="foo23" goto nocdrom
path=a:\\;%cdrom%\\
ghost.exe -clone,mode=pload,src=%CDROM%\\gbak\\backup.gho:1,dst=1:1 -rb -sure
goto quit

:nocdrom
echo.
echo The specified ghost back-up image files were not found
echo.
goto quit

:quit

위의 방법이 훌륭한 방법이지만 HEX EDITOR로 수정해야하고, 파일명의
자리수 제한도 있고 조금 귀찮다.

약간의 트릭을 쓰면 findcd.exe 파일 자체를 손대지 않고 자리수 제한도 없이 그대로
이용할 수 있는 편리한 방법이 있다.
전술하였듯이 findcd.exe의 역활은 CD Drive를 검색하여 "\\win98\\setup.exe"파일이
들어 있는 CD Drive명을 찾아 %CDROM% 이란 환경변수에 할당하여 주는 것이다.
이 때 단지, 디렉토리와 파일명만 체크할 뿐 파일의 크기,형식등은 무관하다.
setup.exe 파일의 크기가 "0 byte"여도 관계없다. 이 점을 이용하면 된다.
우선, 손쉽게 메모장등을 열고 파일명만 setup.exe인 빈 파일 하나를 만들어 두고,
이것을 win98 이란 디렉토리를 만들어 저장해둔다.
이것을 백업파일과 함께 CD 의 Root에 집어넣고 레코딩하면 그만이다.
이 방법이 아주 간단하다. 백업파일명도 임의대로 정할 수 있고, 파일을 손댈 필요도 없고,
단지, 복구CD를 탐색기로 열어 보면, 백업파일과 함께 "\\win98\\setup.exe"란 파일이
보일 것이다.
사용상 전혀 지장이 없고 편리하지만, 보기에 좀 찜찜하게 여기는 분들도 있을 것이다.

그렇다면 보기에도 깔끔하고 완전히 손안대고 코푸는 방법은 무었인가?????

4. Bart Lagerweij가 제공하는 "FINDCD.COM" 이란 유틸을 사용하는 것이
아무래도 제일 수월할 것 같다.
findcd.com은 findcd.exe과 유사한 기능을 제공하면서도 옵션 스위치를 사용하므로
위의 findcd.exe처럼 file 자체를 손 댈 필요는 없으며 당연히 자리수일치 제한도 없다.

사용법은 "findcd.com -f\\원하는 파일명 -e" 이다. 또는,
"findcd.com -f\\디렉토리\\원하는파일명 -e" 이다.

여기서 "원하는 파일명"이란 해당시디에 실제로 들어 있는 파일이라면 어떤 파일명이어도
상관없다. (물론, 부트드라이브/이미지(A:)에 들어 있는 파일은 안된다.)
아래 예문에서 고스트 이미지파일(backup.gho) 이름을 사용한 것은 하나의 예에
불과할 뿐이다.

아래의 예제는 백업파일(backup.gho)이 시디의 Root에 있는 경우이다.
아래에서 사용자의 입맛에 따라서 달라지는 것은 백업파일명 뿐이다.
나머지는 공식이려니 하고 그대로 쓰면 그만이다. 사용상 어려움이 없다는 말이다.

lh mscdex.exe /d:mscd000
set cddrv=
findcd.com -f\\backup.gho -e
if errorlevel 255 goto nocdext
if errorlevel 254 goto nocdrom
if errorlevel 0 set cddrv=a:
if errorlevel 1 set cddrv=b:
if errorlevel 2 set cddrv=c:
if errorlevel 3 set cddrv=d:
if errorlevel 4 set cddrv=e:
if errorlevel 5 set cddrv=f:
if errorlevel 6 set cddrv=g:
if errorlevel 7 set cddrv=h:
if errorlevel 8 set cddrv=i:
if errorlevel 9 set cddrv=j:
if errorlevel 10 set cddrv=k:
if errorlevel 11 set cddrv=l:
if errorlevel 12 set cddrv=m:
if errorlevel 13 set cddrv=n:
if errorlevel 14 set cddrv=o:
if errorlevel 15 set cddrv=p:
if errorlevel 16 set cddrv=q:
if errorlevel 17 set cddrv=r:
if errorlevel 18 set cddrv=s:
if errorlevel 19 set cddrv=t:
if errorlevel 20 set cddrv=u:
if errorlevel 21 set cddrv=v:
if errorlevel 22 set cddrv=w:
if errorlevel 23 set cddrv=x:
if errorlevel 24 set cddrv=y:
if errorlevel 25 set cddrv=z:
path=a:\\;%cddrv%\\
ghost.exe -clone,mode=pload,src=%CDDRV%\\backup.gho:1,dst=1:1 -rb -sure
goto quit

:nocdext
echo.
echo cd-rom extentions(like as MSCDEX.EXE....)are not loaded.
echo.
goto quit

:nocdrom
echo.
echo The specified ghost back-up image files were not found.
echo.
goto quit

:quit


NOTE: 위의 예문에서 본인은 강좌라는 특성상 if errorlevel 0 set cddrv=a: 서부터
if errorlevel 25 set cddrv=z: 까지 전부 나열하였는데 실제로는 "Z:" 까지 전부
나열할 필요는 없다. (물론, 있어도 상관없고...) 왜냐하면, 개인 PC가 아무리
드라이브가 많다고 하기로서니 C,D,E,F,G,H,I,J..........Z 까지 드라이브명이
할당될 일은 없기 때문이다.
즉, 적당한 선(본인은 습관적으로 Q: 까지만 나열한다.)에서 마무리해도 좋다.


새벽에 이 글을 쓰고 있어 제대로 썼는 지 비몽사몽이다.
한숨 자고나서 다시 한번 손 좀 봐야 될 것 같다.

이 글을 읽는 분들도 틀린 부분을 지적해 주면 감사!!!!!

아울러 더욱 편리하고 간단한 방법을 아시는 분들은 댓글을.......

P.S. : 1. 첨부 파일 "findcd.zip" 압축을 풀면 "findcd.com"과 "findcd.exe"
파일이 나오는데 "findcd.exe"는 수정하지 않은 win98 용 Original 파일임.

2. 본 강좌는 Bart의 "findcd.com"을 토대로 작성되었다.
개중에 파일이름명은 동일한데 실제로는 다른 파일인 findcd.com 이 있다.
이 파일은 강좌의 설명과 기능이 다르다.
따라서, 본 강좌를 적용하려면 첨부된 파일을 이용하던가 Bart의 NU2사이트
http://www.nu2.nu/utils/ 에서 다운받은 파일을 사용해야 한다.



........................................................................................
■ 이천권: 좋은강좌 감사 합니다 (yykpeh@kornet.net) -[01/14-00:44]-
........................................................................................
■ 박윤식: ghost7.5, 8.0, 2002, 2003의 차이점이 뭔가요...각각 다른 버젼의 고스트인가요? (bioheart@hanmail.net) -[01/15-13:32]-
........................................................................................
■ 유병인: ghost2002,2003...... 이렇게 표시되는 것은 개인용버전이고요.
ghost 7.5, 8.0.......이렇게 표시되는 것은 기업용 버전입니다.
둘의 큰 차이점은 기업용버전은 멀티캐스팅등의 기능이 포함되어 있어요.
예를들면 기업의 서버컴에서 수많은 클라이언트PC에 고스트를 복구/백업등 콘트롤을 할 수 있는 기능등.......개인은 쓸 일이 없는 기능입니다.
고스트2003 은 ghost 7.75 버전에 해당됩니다.
고스트 8.0이 가장 최신의 버전이고 최신버전답게 속도가 많이 향상되어 있습니다. 현재까지 ghost2003 과 ghost8.0 버전만이 NTFS파티션에 쓰기를 할 수 있습니다.
(cloud62@orgio.net) -[01/15-15:03]-
........................................................................................
■ 박윤식: 유병인님 친절한 설명고맙습니다. 그런데, 강의중..mode중 (p)copy에 대한 강의도 해주시면 안될까요..아래 글에서처럼 예를 들어서요...부탁만 하니 죄송.... (bioheart@hanmail.net) -[01/16-11:34]-
........................................................................................
■ 박윤식: 아참 그리고, (p)load에서는 강의하신것처럼 src에서 숫자나 문자를 써야하는 것을 이해했는데 (p)dump에서는 다 숫자로만 하셨는데 차이점을 구별해서 설명좀 해주세요...^_^ (bioheart@hanmail.net) -[01/16-11:55]-

........................................................................................
■ 박형주: findcd.com 파일 활용 autoexec.bat 스크립중에 잘못된 부분 있습니다. if 구문에서 cddrv 변수값에 : 이 추가되어 있으면(set cddrv=a:) 고스트로 백업시 src=%cddrv%\\win.gho 이런식이 되야겠지요. 아무튼 : 을 빼고 set cddrv=a 이런식으로 하는게 보편적이라고 생각합니다 (dewyheart@hanmir.com) -[01/16-18:45]-

........................................................................................
■ 유병인: 박형주님 예리한 지적 감사합니다. 어쨌거나 말씀하신대로 (:) 중복이네요!!
SET문자명은 그대로 두고 고스트 자동복구구문 SRC=-----에서 (:)를 빼는 걸로
본문을 수정해 놓았습니다.
이러나 저러나 마찬가지지만 findcd.exe의 경우와 일치시키기 위해서....
(cloud62@orgio.net) -[01/16-20:20]-

........................................................................................
■ 양군: 드라이브를 고정하는것 만으로도 전 만족합니다
음....결벽증은 아니고 이미지 덮어쓰기 전에 포멧 함 해주면 좋다던데, 그러면 autoexec.bat 에다가 어떻게 추가하면 될까요?
(passyang00@hanmail.net) -[01/17-02:26]-

........................................................................................
■ 이광수: 버전에 구애없이 사용할수있고. 고스트 부팅시디로 구워사용해보니 아주훌륭합니다. (kwansa@hanmir.com) -[01/20-15:29]-

........................................................................................
■ 유병인: 고스트로 복구하기전에 먼저 FORMAT해 주면 좋다는 말은 아주 근거가 희박한
소리입니다. 그런 말이 혹가다 한 번씩 들리던데 출처가 어딘지 모르겠습니다.
고스트복구시 먼저 FORMAT 할 필요는 없습니다.

이광수님 도움이 되셨다니 다행입니다.
(cloud62@orgio.net) -[01/24-00:57]-

........................................................................................
■ 이광수: 병인님 후의에 깊이 감사드림니다. 항상 건강하시고요... (kwansa@hanmir.com) -[01/25-01:01]-

........................................................................................
■ 유병인: 고스트 자동복구 구문 예에서 clone 앞에 "-" 기호가 누락되어 본문 수정해
놓았습니다. 급히 작성하다보니 간혹 실수가!!!!!!!!!
질문/답변란을 검색해 보다가 발견하였습니다.

(cloud62@orgio.net) -[02/01-21:05]-

........................................................................................
■ 유병인: 본 예제는 고스트 실행파일이 부팅이미지(A:)에 포함될 경우에 대한 예문임을
서두에 밝혀 두었다. 고스트실행파일은 부트이미지에 포함해도 되고 시디루트등에
포함되어도 되나 부트이미지에 포함되어 있는 편이 훨씬 폭 넓게 쓰이기 때문이다.
그런데, 본 예문을 참고하시는 분들이 고스트실행파일은 시디루트등에 넣어 놓고
본 예문을 수정없이 그대로 COPY해 사용함으로써 에러를 발생시키는 경우가
있어 , 이런 경우에도 에러없이 실행되도록 PATH를 설정해 두는 것으로 본문 예문을 수정해 놓았음.
다시 한번 강조하거니와 특별한 이유가 없는 한 고스트실행파일은 부트이미지에
넣어 놓도록 하자.
(cloud62@orgio.net) -[02/04-06:57]-
 

댓글목록

등록된 댓글이 없습니다.

Total 243건 9 페이지
MySQL Tip 목록
번호 제목 글쓴이 조회 날짜
99 차동박 이름으로 검색 19204 10-22
98 차동박 이름으로 검색 9296 10-21
97 차동박 이름으로 검색 19767 10-19
96 차동박 이름으로 검색 19440 10-19
95 차동박 이름으로 검색 21639 10-19
94 차동박 이름으로 검색 18218 10-15
93 차동박 이름으로 검색 10313 10-13
92 차동박 이름으로 검색 16471 10-13
91 차동박 이름으로 검색 17169 10-13
90 차동박 이름으로 검색 18697 10-13
89 차동박 이름으로 검색 18252 09-27
88 차동박 이름으로 검색 16147 09-21
87 차동박 이름으로 검색 17560 09-21
86 차동박 이름으로 검색 21801 09-14
85 차동박 이름으로 검색 18576 09-13
열람중 차동박 이름으로 검색 17408 09-13
83 차동박 이름으로 검색 10434 09-13
82 차동박 이름으로 검색 10396 09-13
게시물 검색