Windows 2000 시동 과정(Startup Process) 목차 1. Windows 2000 시동 요구사항(Startup Requirements) 2. Windows 2000 시작하기(Starting Windows 2000) 3. 시동시 발생하는 문제점 해결(Troubleshooting Startup Problems) 4. 시스템이 시동되지 않을 때 사용하는 옵션들(Options to Use When a System Does Not Start) Windows 2000이 시동되는 과정을 이해함으로써 시동시 발생할 수 있는 문제를 미연에 예방하 거나 해결할 수 있다. 또한, Windows 2000에서는 시동시 발생할 수 있는 문제점을 파악하고 복구할 수는 도구들도 제공한다. 1. Windows 2000 시동 요구사항 Windows 2000 운영체제가 시작하기 위해서는 시스템 파일이 포함된 데이터가 필요하다. 시동 과정중에는 화면에 여러가지 다양한 화면과 메시지가 나타난다. 다음의 과정을 통해 Windows 2000이 시동된다. 1. POST(Power-on self test) 과정 2. 초기 시동 과정 3. 부트스트랩 로더 과정 4. 운영 체제 선택 5. 하드웨어 검색
6. 구성 선택 7. 커널(Ntoskrnl.exe) 로딩 및 초기화 8. 로그인 또한 다음의 두가지 방법을 이용하여 시동할 수 있다. 1. 컴퓨터를 켠다 2. Shut Down Windows 대화상자에서 Restart 를 선택한다. 시스템의 하드웨어 구성요소들이 제대로 초기화되지 않는다면 Windows 2000 이 시동되지 않거나 동작하지 않을 수도 있다. 또한 Windows 2000이 시동되는데 필요한 파일들이 정확한 경로에 있지 않거나 손상되었을 때에도 제대로 초기화되지 않을 수 있다. Welcome to Windows 대화상자에서 Press Ctrl+Alt+Delete 를 누르라고 하는 때에는 Windows 2000의 로딩 및 초기화가 대부분 이루어진 상태이다. 하지만, Welcome to Windows 대화상자 에서 로그인을 성공적으로 수행할 때에만 시동이 완벽하게 이루어지게 된다. 2. Windows 2000 시작하기 다음의 표는 Windows 2000 을 시작하는데 필요한 파일들의 목록이다. 파일 NTLDR Boot.ini Bootsect.dos (멀티부팅일때만 필요함) Ntdetect.com Ntbootdd.sys (SCSI BIOS가 활성화되어 있 지 않은 SCSI 컨트롤러를 사용하는 부팅 파 티션이 있는 경우에만 필요함) Ntoskrnl.exe 위치(Location) Active Partition Active Partition Active Partition Active Partition Active Partition %SystemRoot%\System32
Hal.dll SYSTEM key 장치 드라이버들(Device drivers) %SystemRoot%\System32 %SystemRoot%\System32\Config %SystemRoot%\System32\Drivers %SystemRoot% 문자열은 Windows 2000 시스템 파일을 포함하고 있는 부트 파티션의 디렉터리를 말한다. POST(Power-on self test) 과정 컴퓨터의 전원을 켜거나 재시작할 때에, 시스템은 POST 루틴을 시작한다. POST 루틴은 사용 할 수 있는 실제메모리와 키보드와 같이 필수적인 하드웨어 구성요소들이 존재하는지 확인한다. 컴퓨터가 POST 루틴을 마친 후에, BIOS를 가진 각각의 어댑터 카드들은 자기만의 POST루틴 을 수행한다. 컴퓨터와 어댑터 제조사들은 POST 진행과정을 어떻게 화면상에 보여줄지를 결정 한다. 초기 시동 과정 POST를 성공적으로 마친 후에, 시스템 BIOS는 전원이 들어와 있는 첫번째 하드 디스크를 검사한다. 하드 디스크가 시동 디스크일 때 시스템 BIOS는 MBR(Master Boot Record)를 읽고 메모리 에 로드한다. 그리고 나서, 시스템 BIOS는 MBR로 시동 과정의 실행부(execution of the startup process)를 전송한다. MBR이 활성파티션의 부트섹터의 복사본을 메모리에 로드한 후에, 부트섹터 코드는 운영체제를 시작한다. 부트스트랩 로더 과정(Bootstrap Loader Process) NTLDR는 Windows 2000 운영체제의 부트스트랩 로더이고, 다음의 동작들을 책임진다. 사용자가 시작할 운영체제를 선택할 수 있게 해준다. 부트 파티션에 있는 운영 체제 파일들을 로드한다. 운영체제 선택 과정을 제어하고, Windows 2000 커널 초기화가 이루어지기 전에 하드웨어 검색을 수행한다.
운영체제를 시작하기 전에, NTLDR 와 다음의 파일들은 반드시 시동 디스크의 활성파티션에 위치해 있어야 한다. Ntdetect.com Boot.ini Bootsect.dos ( 컴퓨터에 하나 이상의 운영체제로 부팅하려고 계획한다면) Signature() Syntax Signature() 문법은 SCSI()와 동일하지만, Windows 2000 의 Plug and Play 아키텍처를 지원하기 위해 대신 사용된다. SCSI 컨트롤러 번호는 Windows 2000 을 시작할 때마다 다양할 수 있지만, 특히 설치가 끝난 후에 새로운 SCSI 컨트롤러를 추가할 때 변할 수 있다. Signature() 문법을 사용하면 드라이브가 연결된 SCSI 컨트롤러에 관계없이 디스크 Signature 의 괄호안에 있는 값에 일치되는 드라이브를 NTLDR 에 알려주게 된다. 다음은 signature() 엔트리가 들어 있는 Boot.ini 파일의 예이다. signature(8b467c12)disk(1)rdisk(0)partition(2)\winnt="description" Note 만약 이전에 scsi()를 사용하는 여러 개의 Boot.ini 엔트리가 존재한다면, 그대로 유지되고 signature() 문법으로 바뀌지 않는다. Boot.ini 에 있는 Advanced RISC Computing(ARC) 경로 엔트리에서는 다음과 같은 상황에서 signature() 문법을 사용한다. Windows 2000을 설치한 파티션의 크기가 7.8GB 이상이거나, 마지막 실린더 번호가 1024 보다 큰 경우 Windows 2000 을 설치한 디스크가 BIOS가 비활성화된 SCSI 컨트롤러에 연결된 경우 에는 시동 과정중에 INT13 BIOS 호출을 사용하지 않는다. Signature() 는 scsi() 문법을 대신하기 때문에, 시동시 SCSI 컨트롤러를 알려주도록 시스템 파티션의 루트 폴더에 Ntbootdd.sys 라는 파일이 필요하다는 동일한 요구사항이 적용된다. 이 파일은 부팅하는 SCSI 어댑터의 miniport 장치 드라이버로 Ntbootdd.sys로 이름이 변경 되어 시스템 드라이브의 루트 폴더에 위치한다.
Note 만약 이전에 scsi()를 사용하는 여러 개의 Boot.ini 엔트리가 존재한다면, 그대로 유지되고 signature() 문법으로 바뀌지 않는다. Signature() 문법에 대한 자세한 정보는 다음의 마이크로소프트 지식베이스를 참고한다. http://www.microsoft.com/technet/support/searchkb.asp. NTLDR NTLDR 가 실행될 때, 화면이 깨끗이 지워지고 다음과 같은 부트스트랩 로더 메시지가 나타난다. OS Loader V5.0 그 다음 NTLDR 는 다음의 과정들을 수행한다. 프로세서를 32비트 플랫 메모리 모드로 스위칭한다. 컴퓨터가 처음 시작될 때에는 808x CPU 처럼 real mode로 실행된다. NTLDR는 거의 32비트 프로그램이기 때문에 다 른 기능들을 수행하기 전에, 먼저 프로세서를 32비트 플랫 메모리 모드로 전환한다. 적절한 미니파일 시스템을 시작한다. FAT 와 NTFS 파일 시스템상에 있는 파일을 액세 스하기 위한 코드는 NTLDR에 포함되어 있다. 이 코드는 NTLDR로 하여금 파일을 읽거 나, 액세스 그리고 복사할 수 있게 해준다. Boot.ini 파일을 읽어 운영 체제를 선택할 수 있도록 화면에 표시한다. 이 화면을 부트 스트랩 로더 화면이라고 한다. 부트스트랩 로더 화면에서 운영체제를 선택할 수 있다. 만약 Windows 2000 이 아닌 다른 운영체제를 선택한다면, NTLDR 는 Bootsect.dos 를 로드하여 제어를 넘겨준다. 그러면 운영체제는 정상적으로 동작하는데 그 이유는 Bootsec.dos 에는 Windows 2000 이 설치되기 전의 주 파티션상에 있던 부트섹터를 포함하기 때문이다. 만약 Windows 2000 을 선택한다면 NTLDR 는 현재 설치된 하드웨어의 정보를 수집하기 위해 Ntdetect.com 을 실행한다. 구성에서 시작할 컴퓨터(기본적으로 마지막으로 셧다운했을 때 사용했던 구성)를 선택
하거나, F8키를 눌러 문제 해결 및 고급 시작 옵션을 선택할 수도 있다. 좀더 자세한 내용은 후에 나오는 안전 모드 를 참고한다. Ntoskrnl.exe를 로드하고 시작한다. NTLDR는 Ntdetect.com이 수집한 하드웨어 정보를 Ntoskrnl.exe로 넘겨 준다. Selecting the Operating System NTLDR 는 부트스트랩 로더 화면을 출력하여 사용자가 시작할 운영체제를 선택할 수 있게 해준다. Boot.ini 파일에 있는 정보에 기반하여 화면이 출력된다. 화면은 다음과 비슷하다. Please select the operating system to start: Windows 2000 Advanced Server Use [υπ] and [δοων] to move the highlight to your choice. Press ENTER to choose. Seconds until highlighted choice will be started automatically: 29 For troubleshooting and advanced startup options for Windows 2000, press F8. 카운터가 0 에 다다르기 전에 아무런 엔트리도 선택하지 않는다면, NTLDR 는 Boot.ini 파일에서 기본(default)로 지정한 운영체제를 로드한다. Windows 2000 Setup 은 가장 최근에 설치한 Microsoft Windows NT v4 또는 그 이전 버전을 기본 엔트리로 설정한다. 사용자는 기본 운영체제를 Windows 2000 이전 버전 또는 다른 운영체제로 설정하려 한다면 Boot.ini 를 수정하면 된다. Windows 2000 Setup 은 활성 파티션의 Boot.ini 파일을 대체한다. NTLDR 는 사용자가 운영체제를 선택할 수 있도록 부트스트랩 로더 화면을 출력하는데에 Boot.ini 파일에 있는 정보를 사용한다. 다음은 Boot.ini 파일의 예이다. [boot loader] timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\winnt [operating systems] multi(0)disk(0)rdisk(0)partition(1)\winnt="windows 2000 Server" /fastdetect Boot.ini 는 [boot loader], [operating systems] 두가지 섹션으로 구성된다. 다음 표에서 설명한 것과 같이 시동을 사용자 구성하기 위해 [boot loader]에 있는 매개변수들을 사용할 수 있다. Table 15.2 Bootstrap Loader Parameters Parameter 대기시간 (Time-out) Default Description NTLDR가 기본 운영체제를 로드하기 전에 부트스트랩 로더 화면에서 운 영체제를 선택할 수 있도록 대기하는 시간. 만약 대기시간이 0이 되면, NTLDR는 부트스트랩 로더 화면을 출력하지 않고 곧바로 기본 운영체제를 시작한다. 만약 대기시간을 1로 설정하면, 운영체제를 선택하도록 계속 기다린다. 제어판의 시스템 옵션에서는 1이 잘못된 값이기 때문에 직접 Boot.ini 파일을 수정해야 한다. 기본 운영체제를 나타내는 ARC 경로이름 [operating systems] 섹션에 있는 각각의 엔트리는 운영체제의 부트파티션의 ARC 경로이름, 부트 스트랩 로더 화면에서 보여줄 문자열, 옵션 매개변수 등을 포함한다. 부트스트랩 로더 화면이 앞에서 설명했다. 다른 운영체제 (Microsoft MS-DOS, Microsoft Windows 95, and Microsoft Windows 98) 뿐만 아니라 여러 버전의 Windows 2000 운영체제를 시작하는데에 Boot.ini 파일을 이용할 수 있다. Boot.ini Switches 아래 표에 나타난 스위치들은 Boot.ini 파일의 [operating systems] 섹션의 뒷부분에 추가될 수 있으며 대소문자를 구분하지 않는다. /MAXMEM 과 /SOS 스위치에 대한 자세한 정보는
[Problem Occurs After the Bootstrap Loader Starts] 부분을 참고한다. 사용자가 추가하려는 스위치는 Boot.ini 파일에서 분리된 라인에 위치해야 한다. Table 15.3 Boot.ini Switches Switch /BASEVIDEO 설 명 표준 VGA 비디오 드라이버를 사용하여 컴퓨터를 시작한다. 만약 사용자가 새로운 비디오 드라이버를 설치하여 제대로 동작하지 않는다면, 컴퓨터를 시작하여 다른 드라이버로 변경할 수 있도록 이 스위치를 사용한 Windows 2000 엔트리를 선택할 수 있다. /BAUDRATE=nnnn 디버깅에 사용되는 직렬포트의 전송 속도를 지정한다. 만약 모뎀 으로 연결된다면 기본 전송 속도는 9600 보(Baud)이며, 널 모뎀 케이블이라면 19200이다. Boot.ini 파일에 이 스위치를 포함함으 로써 /DEBUG 스위치가 활성화된다. /CRASHDEBUG /DEBUG /DEBUGPORT= comx /MAXMEM:n /NODEBUG NUMPROC=x /FASTDETECT =[COMx Windows 2000 이 시작할 때 디버거가 로드되지만 커널 에러가 발생하지 않으면 비활성화 상태를 유지한다. 만약 랜덤 (Random) 커널 에러를 경험한다면 이 스위치가 유용하다. Windows NT가 시작할 때 디버가 로드되고, 컴퓨터에 연결된 호 스트(host) 디버거가 어느때든지 활성화할 수 있다. 규칙적으로 재현가능한 문제를 디버깅할 때 이 스위치를 사용한다. 디버깅에 사용할 통신포트를 지정한다. Boot.ini 파일에 이 스위 치를 포함하면 /DEBUG 스위치가 활성화된다. Windows 2000 이 사용할 최대 메모리의 크기를 지정한다. 만약 메모리 칩의 불량이 의심된다면 이 스위치를 사용한다. 디버깅 정보가 사용되지 않는다. 시작시 시스템에 장착된 프로세서보다 적은 x개로 시작하게 한 다. NTDETECT에서 직력 및 버스 마우스 검색을 사용하지 않는다. 만약 시동 과정 중에 직렬포트에 마우스가 아닌 다른 구성요소
COMx,y,z...] /SOS /PAE 를 장착하였다면 이 스위치를 사용한다. 만약 통신포트를 지정하 지 않고 /FASTDETECT 스위치를 사용한다면 모든 통신포트 상 의 직렬 마우스를 검색하지 않는다. 로드되는 장치 드라이버의 이름을 출력한다. 드라이버가 로딩되 는 동안에 시동이 실패하는 때에 이 스위치를 사용하여 어떤 드 라이버가 실패를 야기하는 지 점검한다. Boot.ini 에 있는 엔트리에 /PAE를 지정함으로써 PAE(Physical Address Extension)을 지원하는 컴퓨터가 정상적으로 시작하게 해준다. 안전모드에서는 /PAE 스위치가 지정되더라도 정상적인 커널을 사용하여 시작한다. Editing Boot.ini Windows 2000 을 설치할 때 Boot.ini 파일에는 읽기 전용, 시스템, 숨김 속성이 설정된다. 이들 속성에 관계없이, 제어판의 시스템 옵션을 사용하여 대기시간(timeout) 및 기본 매개변수(default parameters)를 편집할 수 있다. 문서 편집기를 사용하여 Boot.ini 파일을 편집하려면 먼저 파일을 보이게(숨김 제거)하고 읽기 전용 속성을 제거할 필요가 있다. 내 컴퓨터 또는 명령 프롬프트를 사용하여 파일의 속성을 변경할 수 있다. 내 컴퓨터를 이용하여 파일의 속성 변경하기 1. 도구 메뉴에서 폴더 옵션을 클릭한다. 2. 보기 탭에서 Hidden files and folders 를 더블클릭한다. 3. Do not show hidden files and folders 또는 Show hidden files and folders를 선택한다. 4. OK를 클릭한다. Important 만약 Windows 2000 부트 파티션의 경로를 변경한다면, 기본 경로와 운영체제 경로 엔트리 모두 편집했는지 확인한다. 만약 하나만 변경하고 다른 하나는 그대로 두었다면, 새로운 선택은 기본 선택으로 임명되고, 부트스트랩 로더 화면에 추가된다. Detecting Hardware
Ntdetect.com 은 Windows 2000 시동 과정중에 설치된 하드웨어를 검색한다. Ntdetect.com 은 수집한 정보를 NTLDR 에 넘겨주고, 레지스트리의 목록에 위치시킨다. Ntdetect.com 은 다음과 같은 하드웨어 구성요소들을 검색한다. Computer ID Bus/adapter type SCSI adapters Video adapters Keyboard Communication ports Parallel ports Floppy disks Mouse/pointing device Floating-point coprocessor Ntdetect.com 은 부트스트랩 로더 화면에서 운영체제를 선택하고 난 후 또는 대기 시간이 만료된 후에 실행된다. NTLDR 는 사용자가 다음과 같은 메시지를 보게 될 때 시작된다. Starting Windows... 이 메시지 뒤에 막대 그래프가 나타나고, 막대 그래프가 모두 완료되었을 때 텍스트 모드는 그래픽 모드로 전환되어 Microsoft Windows 2000 Server Family 화면이 나타난다. Loading and Initializing the Kernel 하드웨어 프로필 또는 구성을 선택한 후에 또는 NTLDR 가 자동으로 사용자에게 선택할 수 있게 한 때에 커널은 Windows 2000 시동 과정 부분을 로드한다. 이 과정중에 NTLDR 는 다음과 같은 동작들을 수행한다. Windows 2000 커널(Ntoskrnl.exe)을 로드하고 하드웨어 추상 계층(Hal.dd)을 메모리로 로드한다.( NTLDR는 이들 프로그램들을 아직 초기화하지 않는다.) %SystemRoot%\System32\Config\System 로부터 HKEY_LOCAL_MACHINE \SYSTEM 레지스트리 키를 로드한다. 구성을 선택한다. 기본적으로 첫번째 하드웨어 프로필이 반전(highlighted)된다. 만약 사
용자가 생성한 다른 하드웨어 프로필을 가지고 있다면, 사용자가 사용하려는 프로필을 선택하기 위해 DOWN 방향키를 사용한다. 컴퓨터를 초기화하는데 사용되는 control set을 선택한다. 0x0 시작값을 가지고 있는 장치 드라이버들을 로드한다. Important %SystemRoot%\System32\Config\System 에 있는 값들을 수정하면 안된다. 하드웨어 프로필에 대한 자세한 정보는 Windows 2000 서버 도움말을 참고하라. Selecting the Control Set HKEY_LOCAL_MACHINE \SYSTEM \Select 서브키에 있는 엔트리의 값들은 사용할 Control set 이 무엇인지 결정한다. 만약 사용자가 OS Loader V5.0 화면이 출력될 때 F8 키를 누르지 않거나, 오직 하나의 하드웨어 프로필을 가진다면 NTLDR 는 HKEY_LOCAL_MACHINE \SYSTEM \Select 서브키에 있는 기본 엔트리의 값을 식별하여 control set 을 사용한다. 하지만, 사용자가 F8 키를 눌러 Windows 2000 고급 옵션 메뉴에서 Last Known Good Configuration 을 선택하거나 Hardware Profile/Configuration Recovery 메뉴에서 Last Known Good Configuration 을 선택한다면, HKEY_LOCAL_MACHINE \SYSTEM \Select 서브키에 있는 LastKnownGood 엔트리의 값이 control set 을 지정한다. 사용자의 동작과 대응되는 Select 서브키 엔트리의 값을 기반으로 NTLDR 는 어떤 ControlSet00x 를 사용할지를 결정한다. NTLDR 는 현재 HKEY_LOCAL_MACHINE \SYSTEM \Select 서브키의 값을 사용할 control set 의 숫자로 설정한다. Note 레지스트리 편집기에는 Regedt32.exe 와 Regedit.exe 가 있으며 모두 Windows 2000 설치 CD 에 포함되어 있다. 레지스트리를 보는데에는 둘 중 아무거나 사용할 수 있다. 레지스트리에 대한 자세한 정보는 Windows 2000 Resource Kit 의 부록 CD 를 참고하라. Loading Device Drivers NTLDR 는 HKEY_LOCAL_MACHINE \SYSTEM \ CurrentControlSet \Services 서브키에시작값이 0x0 으로 설정된 장치 드라이버를 검색한다. 이 값은 장치드라이버들이
로드되어야 하고 초기화는 되지 않아야 함을 의미한다. 장치 관리자들은 real mode 에서 BIOS 호출을 이용하거나 Ntbootdd.sys 를 통해 메모리로 로드된다. 다음, Ntoskrnl.exe 는 커널을 초기화한다. 만약 Boot.ini ARC 경로 엔트리에 /SOS 스위치가 포함되어 있다면 다음과 비슷한 화면이 출력된다. Microsoft (R) Windows 2000 (TM) Version 5.0 (Build xxxx) 1 System Processor (16 MB Memory) Upon successful nitialization, Ntoskrnl.exe: Current control set의 복사본을 통해 Clone control set을 생성한다. NTLDR에서 넘겨받은 정보를 사용하여 HKEY_LOCAL_MACHINE \HARDWARE 키를 생 성한다. 이 키에는 시스템이 시동될 때마다 검색된 하드웨어 데이터를 포함하고 있다. 데이터에는 시스템 보드상의 하드웨어 구성요소들과 특정한 장치가 가로챈(hooked) 인 터럽트에 대한 정보를 포함한다. Initializing Device Drivers Ntoskrnl.exe 는 커널 로드 부분에서 로드된 시작값이 0x0 인 low-level 장치 드라이버들을 초기화한다. 그런 다음 Ntoskrnl.exe 는 HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Services 서브키에 있는 0x1 값을(로드되자마자 초기화된다) 가진 장치 드라이버들을 검색한다. BIOS 에 의해 로드되지 않고 오직 커널 로드 부분동안에 로드되거나 이미 초기화된 장치 드라이버에 의해 로드된다. Error Processing 장치 드라이버의 로드 및 초기화동안에 에러가 발생하면, 문제가 발생한 장치의 HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Services 서브키에 있는 ErrorControl 엔트리의 값에 기반하여 동작이 처리된다. Logging On to Windows 2000 Windows 2000 서브시스템은 자동으로 Winlogon.exe 를 시작한다. Winlogon.exe 는 로컬 보안 관리(Local Security Administration) 프로그램인 Lsass.exe 를 시작한다. Welcome to Windows
대화상자에는 Press Ctrl+Alt+Delete to begin 문자열이 나타난다. 비록 Windows 2000 은 네트워크 장치 드라이버를 여전히 초기화하지만 사용자는 로그온할 수 있다. 다음, 서비스 제어기(Service Controller : Screg.exe) 는 HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Services 서브키에 0x2(자동으로 로드된다) 값을 가진 서비스를 검색한다. 서비스들은 의존성(dependencies)에 기반하여 대등하게(in parallel) 로드된다. 의존성은 HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Services 서브키에 있는 DependOnGroup 과 DependOnService 엔트리에서 나타내고 있다. Note Windows 2000 시동은 사용자가 시스템에 성공적으로 로그온할 때까지 완료되지 않는다. 성공적인 로그온 후에, Clone control set 은 LastKnownGood control set 에 복사된다. 3. 시동시 발생하는 문제점 해결(Troubleshooting Startup Problems) 만약 사용자의 시스템이 시동을 실패한다면, 멈추거나 에러메시지를 출력할 수도 있다. 이번 장에서는 Windows 2000 시동시에 발생할 수 있는 문제점을 해결하는 방법에 대해 논의한다. 시동 문제를 분석하는 첫번째 단계는 문제점의 발생이 운영체제가 제어권을 얻기 전인지 후인지를 확인한다. 만약 사용자가 부트스트랩 로더 화면을 볼 수 없다면, 문제점은 하드웨어 실패 때문일 수도 있다. 또한 잘못된 MBR 또는 파티션 테이블, 손상된 부트섹터도 원인일 수 있다. 손상은 바이러스를 포함하여 여러가지 원인이 있을 수 있다. 바이러스는 자신을 설치하기 위해 BIOS 호출을 사용하므로 운영체제에 독립적이다. Windows 2000 은 실행되는 동안 BIOS 호출을 숨기지만, 멀티부팅으로 구성된 컴퓨터에 MS-DOS 를 사용하는 때에는 보호하지 못한다. 바이러스로부터 컴퓨터를 보호하고, 바이러스 때문에 발생한 문제 복구에 대한 자세한 정보는 마이크로소프트 지식베이스를 참고하라. http://www.microsoft.com/technet/support/searchkb.asp.
부트스트랩 로더 화면에서 Windows 2000 을 선택한 후에 문제가 발생한다면, 운영체제가 필요로 하는 파일들이 없거나 깨진 경우 일수도 있다. 좀더 자세한 정보는 Options to Use When a System Does Not Start 부분을 참고하라. Problem Occurs Before the Bootstrap Loader Starts 이번 장에서는 컴퓨터의 전원을 넣고 부트스트랩 로더 화면을 보기전까지 발생할 수 있는 문제에 대해 설명한다. 발생한 문제의 증상은 다음과 같다. 컴퓨터가 POST(Power-On Self Test)를 수행하고 난후 곧바로 다운된다. 부트스트랩 로더 화면을 볼 수 없다. 다음과 같은 에러 메시지를 보게 된다 : o Missing operating system. o A disk read error occurred. o Insert a system diskette and restart the system. o Invalid partition table. o Hard disk error. o Hard disk absent/failed. 다음 표에서는 증상, 가능한 문제의 원인, 그리고 자세한 정보를 나타내고 있다. Table 15.4 Startup Problems 다음에 관련된 메시지를 보 거나 문제점이 있다고 의심 된다면 POST routine System partition 가능한 문제점 POST routine을 액세 스할 수 없다. 첫번째 하드 디스크에 시스템 파티션이 없다. 자세한 정보 이 장 후반의 "Hardware Problems" 이 책의 "Disks Concepts and Troubleshooting" Master boot record MBR이 손상되었다. 이 책의 "Disks Concepts and
Troubleshooting" Partition table Windows 2000 과 MS-DOS 간의 멀티부팅 Boot.ini 파티션 테이블이 잘못 되었다. Bootsect.dos 가 반드 시 복구되어야 한다. Boot.ini 파일이 누락 되었다. 이 책의 "Disks Concepts and Troubleshooting" Windows 2000 서버 도움말 이 장 후반의 "Problem Occurs after the Bootstrap Loader Starts" 부트스트랩 로더 화면 NTLDR가 누락되거나 손상되었다. CMOS CMOS가 손상되거나 배터리가 방전되었다. 이 장 후반의 "Problem Occurs after the Bootstrap Loader Starts" 이 책의 "Disks Concepts and Troubleshooting" Hardware 만약 새로운 하드웨어 나 드라이버를 설치했 다면 문제의 원인일 수 있고, 하드웨어 구 성요소를 오동작시킬 수도 있다. 이 장 후반의 "Hardware Problems" 문제점을 해결하기 위해 컴퓨터를 시작하지 못할 수도 있다. 시스템에 있는 모든 볼륨이 NTFS 로 포맷되었다면, MS-DOS 기반의 유틸리티들을 사용할 수 없다. Problem Occurs After the Bootstrap Loader Starts 이 단원에서는 NTLDR 가 실행을 시작하고 Windows 2000 에 성공적으로 로그온하기 전까지 발생할 수 있는 문제점에 대해 설명한다. Using Checked Version of NTDETECT NTDETECT 는 설치된 하드웨어 구성요소를 검색한다.
Windows 2000 Resource Kit 부록 시디에는 Ntdetect.com 의 디버그 버전이 들어 있다. 만약 사용자가 찾을 수 있다고 생각하는 모든 하드웨어를 Ntdetect.com 이 검색하지 못한다면, 이 문제점을 따로 분리하기 위해 Ntdetect.chk 를 사용할 수 있다. 일반적으로 마우스나 디스크 컨트롤러가 문제일 수도 있다. Ntdetect 의 디버그 버전 사용하기: 1. 시스템 파티션의 루트 폴더에 있는 Ntdetect.com을 Ntdetect.bak로 이름변경한다. 2. Support\Debug\I386에 있는 Ntdetect.chk 파일을 루트 폴더로 복사한다. 3. Ntdetect.chk 를 Ntdetect.com으로 변경한다. Installd 유틸리티는 Windows 2000 Resource Kit 부록 시디에 포함되어 있는데 같은 기능을 수행한다. Ntdetect.com 파일은 Windows 2000 설치시에 숨김, 시스템, 읽기 전용 속성을 가지고 있다. 파일을 보려면 이들 속성들을 제거해야 한다. Ntdetect.chk 가 구성요소에 대한 정보를 출력한 후에, ENTER 키를 누르면 계속 이어진다. 그 다음 Ntdetect.chk 는 컨트롤러와 주변장치의 현재 노드에 대한 정보를 출력한다. 각 화면의 끝에 ENTER 를 누른다. Ntdetect.chk 를 사용하여 마쳤을 때에 Ntdetect.com 을 Ntdetect.chk 로 이름변경하고 Ntdetect.bak 를 Ntdetect.com 으로 변경한다. Using the /MAXMEM Switch Boot.ini 파일에는 Windows 2000 이 얼마만큼의 메모리를 사용할 것이지 지정하는 /MAXMEM 스위치가 있다. 메모리 패리티 에러, 잘못된 SIMM 속도, 다른 메모리와 관련된 문제들을 해결하기 위해 이 스위치를 사용할 수 있다. 이 스위치를 사용하기 위해서는 메모리가 연속적(contiguous)적이어야 한다. Windows 2000 프로페셔널 버전에서 32 이보다 작은 값을 지정하지 마라. 이 스위치는 Boot.ini 파일의 [operating systems] 섹션에 지정한 ARC 경로의 맨끝부분에 포함된다. 다음은 처음 32MB RAM 만을 사용하도록 제한한 Boot.ini 의 예이다.
[operating systems] multi(0)disk(0)rdisk(0)partition(1)\winnt="windows 2000 Professional" /fastdetect /MAXMEM=32 Note Windows 2000 서버에서는 최소한 64MB 는 사용해야 한다. 메모리에 관련된 문제 해결에 대한 자세한 정보는 Troubleshooting Strategies 부분을 참고하라. Using the /SOS Switch NTLDR 가 로드되는 커널과 장치 드라이버이금들을 출력하도록 Boot.ini 에 /SOS 스위치를 추가할 수 있다. 만약 Windows 2000 이 제대로 시동되지 않거나 사용자가 생각하기에 드라이버가 누락되거나 손상되었다고 생각되면 이 스위치를 사용한다. Boot.ini 스위치 변경에 대한 자세한 정보는 앞부분 Boot.ini Switches 를 참고한다. Hardware Problems 만약 POST 루틴 동안에 장치를 초기화하지 못하여 실패한다면, 사용자는 그 장치에대해 액세스할 수 없게 될 것이다. 사용자가 마지막 시동 이후에 장치를 변경하거나 추가하지 않았다면 다음을 점검한다. 컨트롤러 카드들이 제대로 삽입되었는가 확인한다. 케이블이 제대로 연결되었는가 확인한다. 디스크에 전원이 들어왔는지 확인한다. 만약 마지막 시동 이후에 하드웨어 나 장치 드라이버를 변경했었다면, 이 새로운 구성에서 문제가 발생한 것일 수도 있다. 다음 사항들을 점검해야 한다. SCSI 장치에 제대로 터미네이션이 되었는가 확인한다. IRQ 충돌(conflicts)이 있는지 확인한다.. 만약 있다면 첫번째 SCSI 컨트롤러에만 BIOS가 활성화되었는지 확인한다. 시동 과정중에 Hardware Profile/Configuration Recovery 메뉴는 대안적인 구성을 사용할 수 있도록 옵션들을 제공해 준다. 만약 위의 항목들을 확인하고도 Windows 2000 이 제대로
시동되지 않는다면, Hardware Profile/Configuration Recovery 메뉴에 있는 구성 옵션들을 사용하여 보라. 하드웨어 문제에 관련된 좀더 자세한 정보는 이 책의 Troubleshooting Strategies 부분을 보거나 마이크로소프트 지식베이스를 참고하라. http://www.microsoft.com/technet/support/searchkb.asp. Note NTFS 볼륨에서는, 볼륨상의 정보를 볼 수 있는 DiskProbe 와 같은 Windows 2000 기반의 유틸리티를 사용할 필요가 있다. 만약 사용자가 Windows 2000 시동 플로피 디스크를 사용하고 있다면 다음 유틸리티들을 사용하여 보라. 관리도구의 컴퓨터 관리 스냅인에서 시스템 정보를 볼 수 있다. DiskProbe 도구는 디스크 섹터를 살펴보거나 변경하는데 사용할 수 있는 저수준 디스 크에디터이다. 4. 시스템이 시동되지 않을 때 사용하는 옵션들 Windows 2000 에서는 컴퓨터가 제대로 시작하지 않을 때 사용할 수 있는 안전 모드, 복구 콘솔, 응급 복구 디스크(ERD)와 같은 다양한 옵션들을 제공한다. 사용자는 최소한의 필요한 서비스들로만 컴퓨터를 시동하기 위해 안전모드를 사용할 수 있다. 마지막으로 성공한 구성을 포함하는 안전 모드 옵션에서는 특히 새로 설치한 드라이버가 문제를 일으키는 경우에 유용하다. 만약 안전 모드에서 컴퓨터가 시동되지 않는다면, 복구 콘솔을 사용할 수 있다. 복구 콘솔은 고급 사용자나 관리자만이 사용할 것을 추천한다. Windows 2000 설치 CD 또는 CD 로부터 사용자가 생성한 설치 플로피 디스크를 사용하여 복구 콘솔을 시작할 수 있다. 복구콘솔은 명령줄 인터페이스로 사용자가 서비스의 시작 및 중지와 로컬 드라이브의 액세스와 같은 작업들을 수행할 수 있게 해준다.
ERD(응급 복구 디스크)는 안전모드나 복구 콘솔로도 시스템을 시작하지 못한경우에 사용할 수 있는 다른 옵션이다. 만약 이미 ERD 를 생성하였다면, Windows 2000 설치 CD 또는 설치 플로피 디스크로 시스템을 시작하여 핵심(core) 시스템 파일들을 복원하기 위해 ERD 를 사용할 수 있다. Safe Mode 안전모드는 Windows 2000 의 시작 또는 운영중에 발생할 수 있는 문제를 해결할 수 있는 진단 도구이다. 오직 컴퓨터가 시작할 때만 액세스할 수 있다. Windows 2000 Advanced Options 메뉴의 일부분으로, safe mode allows the user to specifically control how the computer starts Windows 2000. 만약 컴퓨터가 제대로 시동되지 않거나 다음번 재시작에서 실패한다면, Windows 2000 은 여러가지 시동 문제 해결 옵션을 포함하는 Windows 2000 Advanced Options 메뉴를 출력한다. 또한 사용자가 수동으로 Windows 2000 Advanced Options 메뉴를 나타나게 할 수도 있다. Windows 2000 이 안전모드로 시동될 때, 오직 필수 드라이버(마우스, 키보드, CD-ROM, 표준 VGA 장치 드라이버)와 시스템 서비스(이벤트 로그, PNP, RPC, 논리 디스크 관리 시스템 서비스)들만이 로드된다. 따라서 잘못된 애플리케이션, 시스템 서비스, 자동으로 시작되는 장치 드라이버로 인해 발생할 수 있는 에러를 분리하고 해결하는데 안전모드가 유용하다. 비록 안전모드로 시동한 컴퓨터는 최소한의 필수 서비스만 가지지만, 동작하는 물리적 디스크 상의 모든 파티션을 액세스할 수 있다. 다음과 같은 상황에서 안전모드를 사용한다. 만약 Windows 2000이 오랜 시간 동안 시동되지(stall for) 않을 때 만약 Windows 2000이 제대로 동작하지 않거나, 예상치 못한 결과를 가져올 때 비디오 디스플레이가 제대로 동작하지 않을 때 컴퓨터가 갑자기 다운될 때 사용자가 가끔식 에러 상황을 테스트할 필요가 있을 때 안전 모드에서는 시스템 서비스, 장치 드라이버 또는 컴퓨터가 정상적으로 시작시에 자동으로 시작하는 애플리케이션을 비활성화 또는 활성화할 수 있다. 안전 모드 옵션을 사용하려면, 컴퓨터를 재시작하고, Boot 메뉴를 볼 때 F8 키를 누른다. Windows 2000 Advanced Options 메뉴는 다음과 같다.
Windows 2000 Advanced Options Menu Please select an option: Safe Mode Safe Mode with Networking Safe Mode With Command Prompt Enable Boot Logging Enable VGA Mode Last Known Good Configuration Directory Services Restore Mode (Windows 2000 domain controllers only) Debugging Mode Boot Normally Use [υπ] and [δοων] to move the highlight to your choice. Press Enter to choose. 옵션을 선택하고 ENTER 를 누른다. BOOT 메뉴가 다시 출력되고, 화면의 하단에 붉은 색으로 Safe Mode 라는 단어가 나타난다. 시작하려는 운영체제를 선택하고 ENTER 키를 누른다. Important 사용자가 시작할 운영체제를 선택할 때, Windows 2000 버전을 선택해야 한다. 다른 Windows 기반의 운영체제를 선택하지 마라. 사용자가 안전모드를 사용할 때 환경변수 Safeboot_Options 이 Network 또는 Minimal 으로 설정된다. 기본 마이크로소프트 VGA 드라이버는 640 x 480 x 16 색이 사용된다. 사용자는 모든 모드로 로그온해야 한다.( 사용자가 선택한 안전 모드에 따라 도메인이나, 로컬 SAM 둘 중에 하나) 다음 표는 Windows 2000 Advanced Options 메뉴에 대해 설명하고 있다. Option Safe Description Mode 네트워킹 없이 기본적인 파일 및 드라이버만으로
(Safeboot_Option=Minimal) Safe Mode with Networking (Safeboot_Option= Network) Safe Mode with Command Prompt (Safeboot_Option= Minimal) Enable Boot Logging Enable VGA Mode Last Known Good Configuration Directory Service Restore Mode Windows 2000을 시작한다. 드라이버 및 파일들 은 마우스, 모니터, 키보드, 대용량 저장소, 기본 비디오 와 기본 시스템 서비스들이 사용된다. 표준 안전 모드와 비슷하지만, 네트워킹을 시작하 는데 필요한 필수적인 서비스와 드라이버를 추가 한다. 표준 안전모드와 비슷하지만, 사용자 쉘로 Explorer.exe 대신에 명령 인터프리터를 로드한 다. Ntbtlog.txt라는 로그 파일을 생성한다. 시작동안 에 메모리상에 로드된 모든 드라이버의 이름과 상태가 기록된다. 로그파일은 %SystemRoot% 폴 더에 저장된다. 현재 설치된 비디오 드라이버가 손상되거나 또는 호환되지 않는 경우에 기본 VGA 모드로 컴퓨터 를 시작한다. 기본 비디오 드라이버는 모든 안전 모드로 Windows 2000을 시작할 때 항상 사용된 다. Windows가 마지막 셧다운시에 저장한 설정(레지 스트리 정보)를 사용하여 Windows 2000을 시작 한다. 마지막으로 성공한 구성은 잘못된 구성인 경우에만 사용하라. 드라이버나 파일의 손상 또는 누락의 원인으로 발생한 문제는 해결할 수 없다. 마지막으로 성공한 시작이후에 변경된 모든 시스 템 설정사항은 잃어버리게 된다. 도메인 컨트롤러 상의 액티브 디렉터리를 복원한 다. 이 옵션은 Windows 2000 Professional 또는 멤버 서버를 운영하는 컴퓨터에서는 사용할 수 없다.
Debugging Mode Boot Normally Windows 2000을 커널 디버그 모드로 시작한다. 커널 디버그모드는 문제 해결과 시스템 분석을 위해 디버거가 커널을 액세스할 수 있게 해준다. 모든 정상적인 시동 파일과 레지스트리 값을 로 딩하여 Windows 2000을 시동한다. 만약 사용자의 컴퓨터에 Windows 2000 을 설치하기 위해 원격 설치 서비스를 사용하거나 사용했었다면, 고급 시작 옵션에는 위에서 설명한 옵션 이외에 원격 설치 서비스를 이용한 시스템 복원 또는 복구에 관련된 옵션이 포함될 수도 있다. 만약 안전 모드로 컴퓨터를 시작하려 계획한다면, 휴대용(Removable) 저장장치를 이용하여 백업을 수행하고, 사용할 수 있는 안전 모드 옵션은 Enable VGA Mode, Last Known Good Configuration, and Directory Services Restore Mode 등이다. 컴퓨터가 마지막으로 성공한 구성을 제외하고 다른 안전 모드 옵션으로 시작할 때 로딩되는 장치들과 서비스들의 부트로그가 생성된다. 이 로그파일은 Windows 2000 이 설치된 폴더(보통 \Winnt)에 저장된다. 만약 새로 설치한 드라이버로 인해 문제가 발생한다면, 마지막으로 성공한 구성 옵션을 사용하여 컴퓨터를 시작하여 문제가 발생한 드라이버를 찾는다. 다른 많은 원인이 있다면, 컴퓨터를 안전모드로 시작한 후에, 이벤트 뷰어, 시스템 정보, 제어판, 백업 그리고 문제를 진단하고 해결하는데 사용할 수 있는 다양한 다른 도구를 사용할 수 있다. Recovery Console 복구 콘솔은 명령줄 콘솔로 Windows 2000 기반의 컴퓨터가 제대로 시작하지 않을 때에 복구할 수 있도록 설계되었다. 사용자는 Windows 2000 설치 CD 또는 설치 플로피 디스크로 컴퓨터를 시작한 후에 복구 콘솔을 사용할 수 있다. 그래픽 인터페이스로 시작하지 않고 NTFS, FAT, FAT32 볼륨에 제한적인 액세스를 하기 위해 복구 콘솔을 사용할 수 있다. 복구 콘솔을 사용하려면 반드시 관리자(Administrator)로 로그인해야 한다. Caution 복구콘솔은 매우 강력한 도구이기 때문에 문제가 있는 드라이버와 파일들을 식별하고 위치시키는 기본 명령어를 사용할 수 있는 고급 사용자 또는 관리자만이 사용할 것을 추천한다.
레지스트리의 복사본인 시스템 상태 데이터를 백업하기 위해 백업(Backup)을 사용할 때마다 로컬 시스템 파티션상의 %SystemRoot%\Repair\RegBack 서브폴더에 복사본이 저장된다. %SystemRoot%\Repair\RegBack 에서 %SystemRoot%\System32\Config(레지스 트리의 위치)로 복사하기 위해 복구콘솔을 사용할 수 있다. 이렇게 하면, 시스템 상태데이터가 마지막으로 백업된 이후에 변경된 레지스트리 정보는 모두 잃게 된다. Caution 다른 대안이 없지 않다면 레지스트리를 직접 편집하기 위해 레지스트리 편집기를 사용하지 마라. 레지스트리 편집기는 관리 도구에서 제공하는 표준 안전장치(safeguard)를 통과한다(무시한다.bypass) 이러한 안전장치는 시스템의 성능을 낮추거나 손상줄 수 있는 설정을 입력하는 것을 예방해준다. 레지스트리를 직접 편집하게 되면 시스템이 시작하지 못하거나 Windows 2000 을 재설치해야 하는 심각하거나 예측할 수 없는 결과를 가져올 수도 있다. Windows 2000 을 구성하거나 사용자 정의하려면 가능한한 제어판에 있는 프로그램이나 MMC(Microsoft Management Console)을 사용한다. 복구 콘솔 및 사용할 수 있는 명령어에 대한 자세한 설명은 이 책의 Repair, Recovery, and Restore 를 참고하라. Emergency Repair Disk 만약 시스템이 제대로 시작하지 않거나, 안전모드 또는 복구콘솔로도 도움받지 못한다면, 백업에 있는 응급 복구 디스크 옵션을 사용할 수 있다. 미리 ERD 를 준비했다면 시스템 파일( Windows 2000 설치 CD 또는 설치 플로피 디스크를 사용하여 시스템을 부팅한 후에)을 복구하는데 ERD 를 사용할 수 있다. ERD 는 시스템 파일, 부트 섹터, 시동 환경 변수와 같은 기본적인 시스템 복구만 할 수 있다. ERD 는 데이터나 프로그램을 백업하지 않고 일반적인 시스템 백업을 대체하지는 않는다. ERD 에 대한 자세한 정보는 이 책의 Repair, Recovery, and Restore 부분을 참고하라. 위에서 설명한 옵션을 사용하여 문제점을 해결할 수 없다면, 컴퓨터에서 디스크를 분리하고, Windows 2000 을 운영하는 다른 시스템 상에 2 번째 디스크로 설치하라. 그런후에 Windows 2000 기반의 문제 해결 유틸리티를 사용할 수 있다. 디스크 문제해결 유틸리티 사용에 대한 자세한 정보는 Windows 2000 Resource Kit 도구 도움말을 참고한다.
Caution 만약 두 시스템 간의 디스크 컨트롤러가 호환되지 않거나 다르게 구성되어 있다면 문제가 발생할 수 있기 때문에 디스크를 옮기는 것을 추천하지 않는다. 하지만, 두 대의 시스템이 같은 하드웨어 구성을 가지고 있다면, 문제를 확인하고 해결할 수 있다. 작성일 : 2001 년 05 월 11 일 작성자 : 문일준( security@mcse.co.kr ) 리비즌 : v1.01 원문서 : www.microsoft.com/technet