달력

4

« 2024/4 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
2008. 11. 25. 13:27

11-5-4. 문제해결-복구콘솔의 활용 Windows Networking2008. 11. 25. 13:27

윈도우 2000 서버부터 마이크로소프트는 복구콘솔이라는 프로그램을 지원한다. 이 복구콘솔을 통해서 관리자는 시스템이 부팅이 되지 않는 등의 문제가 발생했을 때 NTFS파일시스템에 접근이 가능하며 특정 서비스나 디바이스를 중지시키거나 시작시키도록 레지스트리를 수정할 수 있으며 하드디스크를 포맷하는 등 몇가지 작업을 가능하게 만든다.

 

복구콘솔을 사용하는 방법은 두 가지이다. 원본CD롬으로부터 부팅하여 셋업도중 <R>키를 이용한 복구과정에서 복구콘솔을 사용할 수도 있고, 미리 시스템에 복구콘솔을 설치해 둘 수도 있다. 설치를 해 보도록 하겠다.

 

복구콘솔을 서버의 설치프로그램을 통해서 설치할 수 있다. 원본CD i386폴더안에는 winnt32.exe라는 설치 프로그램이 들어있다. 이것을 /cmdcons 스위치를 이용해서 설치해 주면 된다.


<그림11-156. 복구 콘솔 설치 방법 >

 

복구콘솔 설치와 관련된 안내메시지를 보여준다. []를 누른다.


<그림11-157. 복구 콘솔 설치 안내문>

 

설치가 완료되고 나면 C: 루트에 있는 시스템 파일중의 하나인 boot.ini에는 작은 변화가 있다.


<그림11-158. 복구콘솔 부팅 메뉴가 추가된 Boot.ini 파일>

 

“C:\CMDCONS\BOOTSECT.DAT=”Microsoft Windows 2000 복구콘솔” /cmdcons”라는 메뉴가 추가된 것을 보여주는데 이것을 통해서 복구콘솔로 부팅을 하여 몇가지 작업을 할 수 있게 된다.

 

이렇게 설치한 복구콘솔을 사용하는 방법은 다음과 같다.


<그림11-159. 고급 옵션 메뉴>

시스템을 부팅할 때 복구콘솔메뉴를 선택하여 부팅을 시도한다.


<그림11-160. 고급 옵션 메뉴>

복구콘솔은 이 시스템에 설치된 Windows NT 기반의 OS를 찾아내고 해당 OS를 보여주며, 관리자의 암호를 요구한다. 올바른 관리자 암호를 입력해 주었더니 C:\WINNT 에서 명령프롬프트가 시작된 것을 볼 수 있다.

<그림11-161. 고급 옵션 메뉴>

여기서 무슨 작업을 할 수 있을지 “?”를 입력해 보았다. 그랬더니 사용할 수 있는 명령어들이 쏟아진다. DOS명령어들이 대부분이다. 각각의 명령어들에 대한 사용방법을 알고자 한다면 “help 명령어형태로 도움말 정보를 얻을 수 있다.


<그림11-162. 고급 옵션 메뉴>

필자는 예제에서 “disble dns”를 실행했다. 이 명령은 시스템의 DNS서비스에 대한 시작옵션은 ‘Disable’로 변경하는 효과를 주었다. 이 시스템이 다음번에 부팅할 때는 DNS서비스를 시작하지 않고 부팅한다. 이것은 특정한 서비스 문제로 인한 부팅실패를 간단하게 해결할 수 있게 해준다.


:
Posted by 새벽예찬
2008. 11. 25. 13:23

11-5-3. 문제해결 - F8 옵션의 이해 Windows Networking2008. 11. 25. 13:23

간혹.. 아니 심심찮게.. 솔직히 많은 시스템을 만나게 되면 자주 만나게 되는 화면중의 하나이다. 파란색 화면이라는 뜻으로 “Blue Screen”이라고들 부른다. 혹은 어떤 작업을 하든지 모든 것을 멈추고 갑자기 나오는 화면이기에 “Stop Error”라고도 부른다. 이것은 NTLDR이 이끌어가는 초기 부팅과정과는 상관이 없다. 그 이후에 커널을 초기화하는 과정이나 혹은 정상적으로 부팅후 로그온하여 특정 응용프로그램을 사용하다가 만나게 되는 화면이다.

 

대부분의 경우는 재부팅이 되면서 아무런 문제가 없는 것이 보통의 경우이지만 또 다시 부팅이 되면서 이러한 에러가 발생하면서 더 이상 부팅이 진행되지 않는다면 당황스러운 일이 아닐수 없다.


<그림11-153. Blue Screen 또는 Stop Error>

 

마이크로소프트는 이러한 문제를 디버깅이라는 과정을 거쳐서 해결할 수 있는 방법을 제공하고 있지만 조금은 현실성이 떨어지는 방법이다. 또한 대부분의 경우에 재부팅을 통해서 해결이 되는 것이 일반적이기 때문에 디버깅까지 해서 반드시 살려내야 하는 시스템이라면 그전에 이미 문제가 생겼을때를 대비하는 조치를 취했을 노릇이다. 백업이나 서버의 중복 등을 의미한다. 관리자입장에서는 지푸라기라도 잡고 싶은 심정인만큼 최선의 노력을 해 봐야 할 것인데 그럴 때 시스템을 시작시킬 때 [F8]키를 이용해서 접근할 수 있는 고급옵션에서 몇가지를 찾아볼 수 있다.

 

고급옵션은 POST 과정이 끝나고 [F8]키를 이용해서 접근할 수 있다. <그림11-154>을 보면 아래쪽에 고급옵션을 보려면 [F8]을 누르라는 옵션이 보인다.


<그림11-154. 고급 시작 옵션 [F8]>

 

[F8]키를 눌러 고급옵션 메뉴를 볼 수가 있다. 어떤 메뉴들이 있는지 살펴본다.


<그림11-155. 고급 옵션 메뉴>

 

① 안전모드 : 컴퓨터를 시작하는데 필요한 기본 디바이스만을 사용하여 부팅한다. 새로 추가한 디바이스나 특정 디바이스가 문제가 생겨서 부팅이 되지 않을 때 사용할 수 있는 옵션이다.

② 부팅 로깅 사용 : 부팅과정을 %Systemroot% 폴더에 Ntbtlog.txt 파일에 로깅한다.

VGA모드 : 업데이트한 비디오 드라이버가 문제가 생겨서 시스템이 먹통이 된다거나 하는 경우에 유용하다. 기본 VGA드라이버를 로드하여 부팅한다. 부팅후 새롭게 VGA카드 드라이버를 설치하여 해결할 수 있다.

④ 마지막으로 성공한 구성 : Last Known Good Configuration (LKGC)라고 부른다.

⑤ 디렉터리 서비스 복원모드 : 백업받은 Active Directory 데이터베이스를 복구하고자 할 때 이 모드로써 부팅해야 한다.

⑥ 디버그 모드 : 직렬 케이블로 연결된 다른 시스템에서 디버깅 정보를 받을 수 있도록 구성한다.


:
Posted by 새벽예찬

응급복구디스크(ERD) Windows 시스템이 손상되어 부팅이 되지 않을 때 훌륭한 해결책을 제시한다. 이 디스켓을 만들려면 백업프로그램을 이용할 수 있다. 응급복구 디스켓이 없을때도 응급복구를 할 수는 있지만 일부분에 한해서만 가능하다. 미리 응급복구디스크를 만들어 두는 것은 좋은 방법이다.

 

응급복구를 진행하는 방법은 2가지가 있다. 윈도우 서버 설치디스켓으로부터 부팅하여 접근하는 방법과, 윈도우 서버 원본CD롬으로부터 설치과정을 통해서 접근하는 방법이 있다. 부팅디스켓, 셋업디스켓, 응급복구디스켓 이들은 모두 다르다. 필자는 예제에서 Windows 2000 ServerCD롬 부팅을 통한 셋업과정에서 응급복구를 진행해 보도록 하겠다. 


<그림11-144. 응급 복구 과정 1>

윈도우2000서버 원본CD롬으로부터 시스템에서 부팅을 하여 셋업을 진행하는 것과 동일하게 진행한다. <그림11-144>화면에서 <Enter>키를 누르면 셋업을 하게 되는 것이고 <R>키를 입력하여 복구과정을 진행할 수 있다. 의도한 대로 <R>키를 입력하였다.


<그림11-145. 응급 복구 과정 2>

복구옵션을 선택하는 화면인데 2가지가 나온다. 복구콘솔을 이용할 수도 있고, 응급복구를 진행할 수도 있다. 복구콘솔에 대해서는 다음에 다룬다. 응급복구를 진행하기 위해서 <R>키를 입력한다.


<그림11-146. 응급 복구 과정 3>

응급복구는 수동복구<M>와 빠른복구<F>가 있는데 수동복구를 선택하면 복구하고자 하는 옵션을 체크해서 복구를 진행하게 된다. 빠른복구를 사용하자. <F>키를 입력하였다.


<그림11-147. 응급 복구 과정 4>

시작환경, 시스템파일, 부팅 섹터를 검사하겠다고 한다. [X]표시가 선택이 된 것이다. 우리는 보통 X 표시는 안 하겠다는 뜻인데 우리랑 관념이 다른가 보다. 계속 진행하기 위해서 <Enter>키를 누른다.


<그림11-148. 응급 복구 과정 5>

응급복구디스켓이 있으면 넣고 <Enter>키를 누르고 없으면 <L>키를 누른다. 응급복구디스켓이 있으면 보다 폭넓은 복구가 가능하다. 하지만 부팅프로세스에서 생기는 문제정도는 디스켓이 없어도 잘 복구가 된다. <L>키를 눌렀다.


<그림11-149. 응급 복구 과정 6>

<참고>전 화면에서 <Enter>키를 입력하면 다음과 같은 화면이 보인다.


<그림11-150. 응급 복구 과정 7>

응급복구 프로세스가 시작되었다. 하드디스크를 검색하여 필요로 하는 파일이 손상되었다거나 하는 것을 검색하면 알려줄 것이다.


<그림11-151. 응급 복구 과정 8>

Ntldr이 버전이 다른 것을 발견하고 멈추었다. 복구하려면 <Enter>키를 누르라고 한다. <Enter>키를 입력하면 원본CD로부터 파일을 가져와서 하드디스크의 파일을 대체하는 작업을 한다.


<그림11-152. 응급 복구 과정 9>

응급복구가 완료되었다는 메시지가 나왔다. 시스템을 재시작하면 부팅이 안되었던 문제점이 해결되어 부팅이 성공하는 것을 확인할 수 있다. 부디 확인할 수 있기를


:
Posted by 새벽예찬

시스템을 관리하다 보면 부팅이 되지 않는 문제점을 종종 발견하게 된다. 서버의 경우는 차라리 적은데 많은 수의 클라이언트 시스템들을 관리해야 한다면 문제는 더더욱 자주 발생하게 된다. Windows 9x 계열의 클라이언트들이 점점 Windows Server 2003, Windows XP로 대체가 되가고 있고 신규수요는 대부분 XP로 발생하고 있는 실정이기 때문에 이러한 부팅의 문제점을 해결하는 것은 이제 “NT” 시스템의 부팅과정을 잘 이해하는 것으로써 해결의 실마리를 찾을 수 있을 것이다.

 

11-5-1-1. 부트 프로세스

 

NT기반 OS가 부팅되는데 어떤 과정을 거치는지 또 어떤 파일들이 사용되는지 해당 파일이 없거나 손상되었을 때 어떤 에러메시지를 만나게 되는지, 그때 해결방법은 무엇인지를 정리해 보도록 한다. 부트 프로세스를 최대한 간소화시켜서 실제로 필요한 파일과 연관시켜 설명하도록 한다. (아래에 캡처한 화면은 Microsoft Virtual PC를 이용하여 화면을 구성한 것이다.)

    처음 파워를 켜면 POST (Power On Self Test)루틴이 시작된다. 독자들도 한번씩은 키보드와 마우스를 바꿔서 꽂았다거나 하는 경험이 있을 것이다. 그때 시스템은 Keyboard 에러가 나면서 비프음과 함께 더 이상 부팅이 되지 않게 된다.

    그리고 MBR(Master Boot Record)를 찾는다. MBR는 파티션 정보를 가지고 있는데 여기서 Active(활성)파티션을 찾아 0번섹터에 해당하는 부트섹터를 찾게 된다. 부트섹터에는 Windows NT기반의 부팅을 시작할 수 있는 짧은 프로그램이 들어있다.

    Windows NT의 부트섹터 프로그램은 같은 파티션에서 NTLDR을 실행시켜 메모리에 로그시킨다. NTLDR이 부팅과정을 책임질 부팅프로그램이다.


<그림11-130. POST Routine 과정>

 

    NTLDR은 가장 먼저 boot.ini파일을 찾아서 화면에 사용자의 선택을 요구하는 화면을 띄운다. 단일OS가 설치된 시스템이라면 화면에 보여지지 않고 해당 OS의 다음 부팅과정을 진행한다.

    NTLDRNtdetect.com을 찾아서 로드한다.

 


<그림11-131. OS 선택화면>

 

    Ntdetect.com은 시스템의 하드웨어를 점검하고 목록을 만든다.

    NTLDRboot.ini ARC Path를 참고하여 %Systemroot%\system32 폴더에서 Ntoskrnl.exe를 로드하고 디바이스 드라이버 및 서비스들을 로드하는 작업을 한다.

<그림11-132. 커널 로드 과정>

 

    Ntoskrnl.exe는 커널을 구성하는 작업을 한다.

<그림11-133. 커널 구성 과정>

    Ntoskrnl.exe는 마지막으로 Winlogon.exe 프로세스를 로드한다. 사용자는 [Ctrl+Alt+Del]을 입력하여 로그온할 수 있는 화면을 얻는다.

 

<그림11-134. 로그온 프로세스 시작>

 

 

위에서 부트프로세스에 대한 설명을 했다. 그림으로 파일을 기준으로 살펴보겠다.

 


<그림11-135. Windows NT기반 시스템의 부팅 프로세스>

 

이번에는 부팅과정에서 어떤 문제가 생길 것인지에 대해서 접근해 보자.

 

부트 프로세스에서 POST과정부터 MBR을 찾는 과정까지 생기는 문제는 하드웨어 적인 문제이다. OS와는 무관하다는 뜻이다. MBR에서 파티션 정보를 찾았지만 활성파티션을 발견하지 못했다면 혹은 활성파티션은 있지만 부트섹터가 없다면 그때도 역시 시스템은 부팅이 되지 못한다. “Non system disk error” 라는 일반적인 에러를 내며 멈추고 만다. 부트섹터를 찾았지만 Windows NT의 부트섹터 프로그램이 아닌 Windows 9x의 부트섹터였다면 시스템에서는 Windows NT를 부팅할 수 없다. 부팅이 되기 위한 최소한의 기본조건은 시스템의 활성파티션에 Windows NT기반의 부트섹터가 있어야 한다는 것을 뜻한다. 아래의 내용은 Windows NT기반의 부팅과정에서 생기는 문제점을 설명한 화면이다. 단계별로 접근하고 있다.


<그림11-136. 부트프로세스 에러1>

““NTLDR is missing”혹은 “Could not found NTLDR”이라는 에러메시지가 나왔다. 이 메시지가 나왔다면 적어도 부트섹터 문제는 아니라는 것이 보장된다. 부트섹터에 있는 프로그램이 NTLDR을 찾아서 메모리에 로드하려고 시도했지만 NTLDR을 찾지 못했기 때문에 발생되는 메시지이다. (해결방법☞) 다른 시스템으로부터 ntldr 파일을 옮겨오든지 부팅디스켓으로부터 부팅을 하면 된다. (Windows20002003과는 버전이 다르다)


<그림11-137. 부트프로세스 에러2>

Ntldr이 정상적으로 로딩되었다면 boot.ini파일이 필요한데 이때 boot.ini 파일이 없다고 해서 “Could not found boot.ini”등의 에러메시지를 내 보내지는 않는다. 만일 boot.ini파일이 없다면 ntldr은 자동적으로 OS C:\winnt 폴더에 있을 거라는 가정을 하고 다음 단계로 진행한다.

 

그 다음 순서인 ntdetect.com을 로드하게 되는데 만일 이 파일이 손상되었다면 부팅은 더 이상 진행이 되지 않고 하드웨어를 점검하지 못했다는 에러메시지를 발생시킨다. (해결방법☞) 다른 시스템으로부터 ntdetect.com 파일을 옮겨오든지 부팅디스켓으로부터 부팅을 하면 된다. (Windows2000 2003과는 버전이 다르다)


<그림11-138. 부트프로세스 에러3>

Ntdetect.com이 로드되었다면 다음으로 필요한 파일은 %Systemroot%\system32 폴더에 있는 Ntoskrnl.exe를 로드하게 되는데 바로 이 파일이 손상되었거나 없어서 로딩하지 못하겠다는 에러메시지이다. 속으면 안 된다. 처음 이런 에러메시지를 만났을 때 많은 관리자들이 Ntoskrnl.exe파일을 찾아서 헤맨다. 다른 시스템이나 원본 CD-Rom으로부터 이 파일을 복사해다 붙여넣으려는 시도를 한다. 1.6M정도의 그다지 크지는 않은 파일이지만 아쉽게도 그것으로 해결되지는 않는다. 실제로 이 파일이 손상되어서 이러한 에러가 나오는 경우는 극히 드물다. (해결방법☞) 이 경우는 boot.ini파일을 살펴봐야 한다. Boot.ini파일의 ARC Path를 통해서 NTLDR Ntoskrnl.exe의 위치를 찾게 되는데 이 파일의 위치가 잘못 설정되어 있다면 (예를 들면 실제로 winnt폴더가 D:에 있는데 C:에 있는것으로 가리키고 있다거나) 시스템은 Ntoskrnl.exe를 찾지 못하고 이러한 에러메시지를 발생하는 것이다.


<그림11-139. 부트프로세스 에러4>

간혹 <그림11-139>와 같은 에러가 발생하는 경우도 있다. Boot.ini를 통해서 보게 되는 메뉴중에 분명히 리스트에는 없던 “Windows 2000 (기본값)”이라는 메뉴가 보인다. 이것도 역시 boot.ini ARC Path가 잘못지정되어 있기 때문에 생기는 에러이다. <그림11-140>의 경우에 이러한 에러가 발생한다. 그림에서 하이라이트된 부분이 timeout=30초 내에 OS를 선택하지 않을 때 부팅이 되는 기본OS이다. 그런데 이 기본OS와 일치하는 Path를 아래의 세개의 목록중에서 찾을 수가 없다. 그럴때는 Boot.ini파일이 없는것과 동일하게 취급된다. “Windows 2000 (기본값)”이라는 것은 C:\winnt 폴더에 OS가 설치가 되어 있을 거라고 가정하고 부팅을 시도하는 것이다.


<그림11-140. 잘못 설정된 Boot.ini ARC Path>

 

이상으로 부팅시 생기는 문제점들에 대해서 살펴보았는데 해결방법마다 꼬박꼬박 나오는 것이 부팅 디스켓이라는 것이 있었다. 부팅 디스켓 만드는 방법을 알아보자.

 

11-5-1-2. 부팅 디스켓 만들기

 

초기 부팅과정에서 생기는 문제점은 부팅 디스켓 하나만으로도 해결할 수 있는 경우가 있다. 부팅 디스켓은 3.5” 디스켓 한장이면 만들수 있다. 다음과 같이 진행하면 된다.

 

먼저 3.5” 플로피 디스켓 한장을 준비한다. 반드시 Windows Server 2003에서 디스켓을 포맷한다. DOS에서 부팅디스켓을 어떻게 만들었는지 상기해 보면 “format a: /s”라고 /s 스위치를 주고 포맷했던 것을 기억할 것이다. 이 스위치는 a: DOS의 부트섹터를 만드는 작업을 해 주었다. 마찬가지이다. 하지만 그것보다 오히려 간편하다. Windows Server 2003에서 디스켓을 포맷하기만 하면 자동으로 그 디스켓의 0번 섹터에는 Windows Server 2003의 부트섹터가 생성되게 된다.

 


<그림11-141. Windows Server 2003 에서 윈도우 탐색기를 이용한 디스켓 포맷>

 

다음에 이 포맷한 디스켓에 시스템 파일을 저장해 주어야 한다. 기본적으로 시스템 파일들은 감춰져 있다. 윈도우 탐색기의 도구-폴더옵션을 열어서 숨김 파일 및 폴더 표시를 설정하고 보호된 운영 시스템 파일 숨기기(권장)’을 해제한다.


<그림11-142. 폴더 옵션 변경>


<그림11-143. 시스템 파일들>

 

C: 루트에 보면 boot.ini, NTDETECT.COM, ntldr 이 보인다. 이것을 A:로 복사한다.

 

이상으로 부팅디스켓이 만들어졌다. 이 디스켓이 해 주는 일은 하드디스크에서 해 주어야 할 일을 대신하는 것이다. 이것으로 초기부팅 과정에서 NTLDR이 해야 할 모든 일은 부팅 디스켓으로 처리해 준다. Ntoskrnl.exe가 로드될때까지는 이 디스켓이 역할을 담당한다.

 

물론 이것은 일시적이다. 이 부팅디스켓으로 부팅을 한 후에는 디스켓에 있는 시스템 파일들을 하드디스크의 C: 루트로 복사를 해야 할 것이다. 하지만 부트섹터가 망가진 경우라면 복사해서 붙여넣기를 할 수는 없다. 그때는 응급복구과정을 거쳐서 해결할 수 있다. 다음장에서 다루어진다.


:
Posted by 새벽예찬