맨위로가기

NTLDR

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

NTLDR은 윈도우 NT 계열 운영 체제를 시작하는 데 사용되는 부트 로더이다. PC가 켜지면 BIOS는 부팅 가능한 장치를 찾고, NTLDR은 마이크로프로세서를 32비트 모드로 전환하고 파일 시스템에 접근하여 운영 체제를 시작한다. NTLDR은 boot.ini 파일을 사용하여 부팅 메뉴를 표시하며, 사용자가 운영 체제를 선택할 수 있도록 한다. boot.ini 파일은 부팅 옵션을 설정하며, 커널 스위치를 통해 윈도우의 동작 방식을 변경할 수 있다. NTLDR 파일 손상 시 부팅 오류가 발생할 수 있으며, 윈도우 비스타 이후 버전에서는 윈도우 부트 매니저가 NTLDR을 대체한다. bootsect.exe 유틸리티는 NTLDR 또는 Vista 부트 레코드를 파티션의 첫 번째 섹터에 저장하는 데 사용된다.

더 읽어볼만한 페이지

  • 부트 로더 - 윈도우 비스타 시작 프로세스
    윈도우 비스타 시작 프로세스는 윈도우 시동 관리자, 시동 구성 데이터, `bcdedit.exe`, 운영 체제 로딩, `winload.exe/winload.efi`, `winresume.exe/winresume.efi`를 포함하여 윈도우 비스타 운영 체제가 시작되는 과정을 제어하고 관리합니다.
  • 부트 로더 - BootX (애플)
    BootX는 2001년 Mac OS X 10.0과 함께 도입된 애플 컴퓨터의 부트로더로, 네트워크 부팅, 다양한 커널 형식 및 파일 시스템 지원, 부팅 옵션 변경 등의 기능을 제공하며 파워PC 기반 매킨토시의 커널과 커널 확장을 로드하는 역할을 수행했다.
  • 시스템 소프트웨어 - 유틸리티 소프트웨어
    유틸리티 소프트웨어는 컴퓨터의 운영 체제, 하드웨어, 응용 소프트웨어를 관리하고 성능을 향상시키거나 특정 작업을 수행하는 프로그램으로, 시스템 관리, 파일 관리, 데이터 복구, 보안 등의 기능을 제공하며 백업 소프트웨어, 바이러스 백신 등이 대표적이다.
  • 시스템 소프트웨어 - 가상 사설 서버
    가상 사설 서버(VPS)는 공유 웹 호스팅과 전용 호스팅의 중간 단계 서비스로, 가상화 기술을 기반으로 슈퍼유저 수준의 접근 권한, 높은 운용 자유도와 향상된 보안성을 제공하지만, 환경 유지 관리 필요성, 상대적으로 높은 비용, 회선 공유 문제 등의 단점도 가진다.
  • 윈도우 구성 요소 - 인터넷 익스플로러
    마이크로소프트가 개발한 웹 브라우저인 인터넷 익스플로러는 윈도우 운영 체제와의 통합으로 높은 시장 점유율을 유지했으나, 웹 표준 문제와 보안 취약점으로 비판받으며 2015년 엣지에 자리를 내주고 2022년 지원이 종료되었지만, 엣지의 IE 모드로 레거시 호환성을 유지하고 있다.
  • 윈도우 구성 요소 - 원격 데스크톱 서비스
    원격 데스크톱 서비스(RDS)는 네트워크를 통해 원격으로 컴퓨터의 데스크톱 환경에 접근할 수 있게 해주는 기술이며, 클라이언트 소프트웨어, 서버 구성 요소, 다양한 역할을 수행하는 구성 요소로 구성된다.
NTLDR
개요
NTLDR 부트 프로세스
NTLDR 부트 프로세스
종류
종류부트 로더
상세 정보
개발사마이크로소프트
운영 체제윈도우 NT 계열
파일 시스템FAT
인터페이스명령 줄
관련 파일
관련 파일NTLDR (부트 로더)
NTDETECT.COM (하드웨어 감지)
boot.ini (부트 메뉴 구성)
설명
설명NTLDR (New Technology Loader)은 윈도우 NT 계열 운영 체제에서 사용되는 부트 로더이다. 윈도우 2000, 윈도우 XP, 윈도우 서버 2003에서 사용되었다. NTLDR은 FAT 파일 시스템에서 실행되며, boot.ini 파일을 읽어 운영 체제 선택 메뉴를 표시하고, 선택된 운영 체제를 로드한다.
기능운영 체제 선택 메뉴 표시
하드웨어 감지 (NTDETECT.COM 사용)
운영 체제 로드
역할컴퓨터 전원 공급 후 운영 체제 커널이 시작되기 전에 실행
하드웨어 초기화 및 운영 체제 로드 준비
대체윈도우 비스타 이후 버전에서는 윈도우 부트 매니저 (BOOTMGR)로 대체되었다.
같이 보기
같이 보기부트 로더
윈도우 부트 매니저
BOOTMGR
FORMAT
SYS

2. 시작 프로세스

PC 전원이 켜지면 BIOS는 구성된 부팅 순서에 따라 부팅 가능한 장치를 찾는다. 이는 하드 디스크, 플로피 디스크, CD/DVD, USB 장치 등이 될 수 있다.[3] 플로피 디스크의 경우 부트 섹터를 로드하며, 하드 디스크의 경우 마스터 부트 레코드(MBR) 코드가 활성 파티션을 찾아 해당 파티션의 부트 섹터를 로드한다. 이 부트 섹터 코드는 활성 파티션의 루트 디렉터리에서 `ntldr` 파일을 찾아 실행한다.[3]

NTLDR이 실행되면 운영 체제를 시작하기 위해 다음과 같은 단계를 순서대로 진행한다.

# 부팅 드라이브의 파일 시스템(FAT 또는 NTFS)에 접근한다.

# 윈도우가 최대 절전 모드로 전환된 상태인지 확인하기 위해 ''hiberfil.sys'' 파일을 찾는다. 만약 이 파일이 존재하면, 파일의 내용을 메모리에 로드하고 시스템이 중단되었던 지점부터 다시 시작한다.

# ''hiberfil.sys'' 파일이 없거나 최대 절전 모드 상태가 아니라면, ''boot.ini'' 설정 파일을 읽어들인다. 만약 ''boot.ini''에 여러 개의 운영 체제가 설정되어 있다면, 사용자에게 부팅할 운영 체제를 선택할 수 있는 메뉴를 보여준다.

# 사용자가 부팅 메뉴에서 NT 기반이 아닌 운영 체제(예: DOS, 윈도우 9x)를 선택하면, NTLDR은 ''boot.ini'' 파일에 지정된 해당 운영 체제의 부트 섹터 파일(일반적으로 ''bootsect.dos'')을 로드하고, 시스템 제어권을 해당 파일에 넘겨준 뒤 자신의 역할은 종료된다.

# 사용자가 NT 기반 운영 체제(윈도우 NT, 윈도우 2000, 윈도우 XP, 윈도우 서버 2003)를 선택하면, NTLDR은 ''ntdetect.com'' 파일을 실행한다. ''ntdetect.com''은 컴퓨터에 설치된 하드웨어 장치들을 감지하고 관련 정보를 수집한다. (하드웨어 감지 과정에서 문제가 발생하는 경우를 대비하여, 마이크로소프트에서 제공하는 디버그 버전인 ''ntdetect.chk'' 파일도 존재한다.[4])

# 마지막으로, NTLDR은 윈도우 NT 커널 파일인 ''Ntoskrnl.exe''를 실행하고, 이전 단계에서 ''ntdetect.com''이 수집한 하드웨어 정보를 커널에게 전달한다. 이 정보를 바탕으로 윈도우 커널이 부팅 프로세스를 이어받아 운영 체제 로딩을 완료한다.[5][16]

3. boot.ini

`''boot.ini''`는 NTLDR이 사용하는 설정 파일로, 부팅 시 사용자에게 어떤 운영 체제로 시작할 것인지 선택하는 메뉴를 보여주는 역할을 한다.[6] 이 파일은 일반적으로 NTLDR과 동일한 디스크의 루트 디렉터리에 위치한다. 윈도우 NT 계열 운영 체제의 경우, 사용자는 `''boot.ini''`를 통해 커널에 미리 설정된 부팅 옵션(스위치)을 전달할 수도 있다. NT 기반 운영 체제의 설치 위치는 고급 RISC 컴퓨팅(ARC) 경로 형식을 사용하여 이 파일에 기록된다.

`''boot.ini''` 파일은 사용자의 설정을 보호하기 위해 기본적으로 시스템, 숨김, 읽기 전용 파일 특성을 가지고 있다. 따라서 이 파일을 직접 편집하려면 먼저 파일의 속성을 변경해야 한다. 속성을 변경하는 방법은 다음과 같다.


  • 명령 프롬프트에서 `attrib -s -h -r boot.ini` 명령어를 입력하여 시스템(`-s`), 숨김(`-h`), 읽기 전용(`-r`) 속성을 제거한다.
  • 파일 탐색기의 폴더 옵션에서 "숨김 파일 및 폴더 보기"에 체크하고 "보호된 운영 체제 파일 숨김"의 체크를 해제한 다음, 루트 디렉터리에 나타난 `''boot.ini''` 파일의 속성 창에서 읽기 전용 속성을 해제한다.


파일을 직접 수정하는 것보다 안전하게 편집하는 방법도 있다.

  • 명령 프롬프트에서 `bootcfg` 명령어를 사용하면 파일을 편집하고 자동으로 다시 보호 속성(시스템, 숨김, 읽기 전용)을 설정해 준다.
  • 시스템 구성 유틸리티(`msconfig`)를 실행하여 그래픽 인터페이스를 통해 시동 환경 설정을 수정할 수 있다.


한편, NTLDR은 도스윈도우 9x와 같은 비 NT 계열 운영 체제도 부팅할 수 있는데, 이때는 `''bootsect.dos''`라는 부트 섹터 파일을 로드한다. `''boot.ini''` 파일의 운영 체제 목록에서 특정 부트 섹터 파일이 지정되지 않은 경우, 기본적으로 `''bootsect.dos''` 파일을 사용하게 된다.

3. 1. boot.ini 파일 예시

NTLDR은 사용자가 어느 운영 체제로 시동할 것인지 선택하는 메뉴를 보여주는데, 이 메뉴의 구성 정보는 `boot.ini` 파일에 저장된다. 이 파일은 일반적으로 NTLDR과 같은 위치인 시스템 파티션의 루트 디렉터리에 위치하며, 사용자의 변경으로부터 보호하기 위해 시스템, 숨김, 읽기 전용 속성을 가진다.

아래는 `boot.ini` 파일의 일반적인 예시이다.



[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /fastdetect

C:\bootsect.dos="Microsoft Windows 98"


  • '''`[boot loader]` 섹션''': 부팅 동작과 관련된 전반적인 설정을 포함한다.
  • `timeout`: 운영 체제 선택 메뉴가 화면에 표시되는 시간(초 단위)을 지정한다. 위 예시에서는 30초 동안 메뉴가 표시된다. 만약 이 값을 0으로 설정하면, 부팅 시 선택 메뉴가 나타나지 않고 바로 기본 운영 체제로 부팅된다. 다만, 운영 체제 시동에 실패하는 경우에는 메뉴가 표시될 수 있다.
  • `default`: 사용자가 일정 시간 동안 아무런 선택을 하지 않았을 때 자동으로 부팅될 기본 운영 체제의 경로를 지정한다. 경로는 ARC(Advanced RISC Computing) 경로 형식을 따른다.

  • '''`[operating systems]` 섹션''': 부팅 메뉴에 나타낼 운영 체제 목록을 정의한다. 각 항목은 다음과 같은 형식으로 구성된다.
  • `운영_체제_경로="메뉴_표시_이름" /옵션`
  • `운영_체제_경로`: 운영 체제가 설치된 위치를 ARC 경로 또는 드라이브 문자를 포함한 경로(예: `C:\`)로 지정한다. 예시의 `multi(0)disk(0)rdisk(0)partition(2)\WINDOWS`는 첫 번째 디스크 컨트롤러(`multi(0)`)에 연결된 첫 번째 물리 디스크(`rdisk(0)`)의 두 번째 파티션(`partition(2)`)에 설치된 윈도우 NT 계열 운영 체제(윈도우 XP 등)를 가리킨다. `C:\bootsect.dos`는 MS-DOS윈도우 9x 같은 다른 운영 체제를 부팅하기 위한 부트 섹터 파일의 경로를 나타낸다.
  • `"메뉴_표시_이름"`: 부팅 메뉴에 실제로 표시될 운영 체제의 이름을 지정한다.
  • `/옵션`: 부팅 시 적용할 추가 옵션을 설정한다. `/fastdetect`는 부팅 과정에서 하드웨어 검색 과정을 일부 생략하여 부팅 속도를 높이는 옵션이다.

3. 2. NT 커널 스위치

NTLDR은 사용자가 어느 운영 체제로 시동할 것인지 메뉴를 띄워 주며, 이 과정에서 ''boot.ini'' 파일에 저장된 커널 옵션(스위치)을 읽어들여 윈도우의 동작 방식을 변경할 수 있다. ''boot.ini'' 파일은 일반적으로 NTLDR과 같은 위치(같은 디스크의 루트)에 있으며, 시스템, 숨김, 읽기 전용 파일 특성을 가지고 있다.

'''NTLDR''' 부트로더의 고급 옵션 메뉴


다음은 ''boot.ini'' 파일에서 사용할 수 있는 주요 커널 스위치와 그 설명이다.

  • `/3GB` – x86 기반 시스템에서 사용자 프로그램에 할당되는 가상 주소 공간을 3GB로 늘리고, 커널 및 실행 구성 요소에 할당되는 공간을 1GB로 줄인다. 표준 할당(사용자 2GB, 시스템 2GB)보다 더 많은 메모리를 필요로 하는 특정 프로그램(예: 데이터베이스 서버, Microsoft Exchange Server 2003)에 유용하며, 일부 Windows Server 2003 구성에서는 성능 향상을 위해 필요할 수 있다.[7][8] 이 옵션은 특정 비디오 렌더링(VMR-9)이나 사운드 카드(Creative SB X-Fi 시리즈 등)에서 문제를 일으킬 수 있다.[9]
  • `/BASEVIDEO` – 시스템이 모든 비디오 어댑터와 호환되는 표준 640 × 480 해상도의 16색 VGA 모드로 부팅하도록 강제한다. 잘못된 비디오 드라이버 설치로 운영 체제 로딩에 문제가 생겼을 때 이 스위치를 사용하여 시스템을 부팅한 후, 문제가 되는 드라이버를 제거하거나 업데이트할 수 있다. `/SOS` 스위치와 함께 사용하면 문제의 원인이 되는 드라이버를 식별하는 데 도움이 된다.[7]
  • `/BAUDRATE=*nnn*` – 커널 디버깅에 사용될 디버그 포트의 전송 속도 (baud rate)를 설정한다. 이 스위치를 사용하면 `/DEBUG` 스위치가 자동으로 활성화된다.[7] 기본값인 19200bps 대신 지정된 속도(예: `/BAUDRATE=115200`)로 원격 커널 디버거와 통신한다.[8]
  • `/BOOTLOG` – 부팅 과정을 기록하는 로그 파일을 활성화한다. 로그는 `%SystemRoot%\Ntbtlog.txt` 파일에 저장된다.[7]
  • `/BOOTLOGO` – 기본 윈도우 부팅 로고 대신 사용자 지정 비트맵 이미지를 표시한다. 이미지는 640 × 480 해상도의 16색 비트맵이어야 하며, `boot.bmp`라는 이름으로 \Windows 디렉터리에 저장해야 한다. `/NOGUIBOOT` 스위치와 함께 사용된다.[8]
  • `/BURNMEMORY=*nnn*` – 윈도우가 사용하지 않을 메모리 양을 메가바이트(MB) 단위로 지정한다. RAM 부족이나 성능 관련 문제를 진단할 때 사용된다.[7]
  • `/CHANNEL=*nn*` – `/DEBUG` 및 `/DEBUGPORT=1394` 스위치와 함께 사용하여, 커널 디버깅 통신에 사용할 IEEE 1394 (FireWire) 인터페이스 채널(0번부터 62번까지)을 선택한다.[7]
  • `/CRASHDEBUG` – 운영 체제 시작 시 커널 디버거를 로드하지만, 중지 오류(crash)가 발생하기 전까지는 비활성 상태로 유지한다. 이 스위치를 사용하면 윈도우가 정상적으로 실행되는 동안 COM 포트를 다른 용도로 사용할 수 있다. 시스템 충돌 시 해당 포트가 디버그 포트로 전환되어 원격 디버깅이 가능해진다.[7]
  • `/DEBUG` – 윈도우 시작 시 커널 디버거를 활성화한다. `/CRASHDEBUG`와 달리, 이 스위치를 사용하면 디버깅 세션 연결 여부와 관계없이 지정된 COM 포트를 디버깅 전용으로 사용하게 된다.[7]
  • `/DEBUGPORT=com*x*` – 디버깅에 사용할 COM 포트를 지정한다 (예: `/DEBUGPORT=com1`). 지정하지 않으면 기본적으로 COM2 포트를 사용하며, COM2가 없으면 COM1을 사용한다. 이 스위치를 사용하면 `/DEBUG` 스위치가 자동으로 활성화된다.[7]
  • `/FASTDETECT[:com*x*[,com*y*]]` – 지정된 COM 포트 또는 모든 COM 포트에서 시리얼 마우스 및 버스 마우스 감지 기능을 비활성화한다. 부팅 과정에서 시리얼 포트에 연결된 비(非)마우스 장치(모뎀 등)가 문제를 일으킬 경우 사용한다. 여러 포트를 지정하려면 쉼표로 구분한다 (예: `/FASTDETECT:com1,com2`). Windows NT 4.0 및 이전 버전에서는 `/NOSERIALMICE` 스위치가 이 기능을 수행했다.[7]
  • `/HAL=*filename*` – 부팅 시 로드할 하드웨어 추상화 계층 (HAL) 파일을 지정한다. 기본 HAL 파일(`HAL.DLL`) 대신 다른 HAL 파일을 테스트하거나, 다중 프로세서 모드와 단일 프로세서 모드 간 전환 시 `/KERNEL` 스위치와 함께 사용된다. 지정하는 파일은 System32 디렉터리에 있어야 한다.[7]
  • `/KERNEL=*filename*` – 부팅 시 로드할 커널 파일을 지정한다. 디버깅 기능이 포함된 커널과 일반 커널 간 전환 등에 사용된다. `/HAL` 스위치와 마찬가지로 지정하는 파일은 System32 디렉터리에 있어야 한다.[7]
  • `/MAXMEM=*nnn*` – 윈도우가 사용할 수 있는 최대 RAM 용량을 메가바이트(MB) 단위로 제한한다.[7] 메모리 홀(memory hole)을 고려하지 않으므로, 특정 메모리 양을 제외하려면 `/BURNMEMORY` 스위치를 사용하는 것이 더 정확할 수 있다.[10]
  • `/MININT` – Windows 사전 설치 환경(WinPE)에서 사용되는 옵션으로, 레지스트리 SYSTEM 하이브를 휘발성(volatile)으로 로드하여 변경 사항이 디스크에 저장되지 않도록 한다.[8]
  • `/NODEBUG` – 커널 디버깅 기능을 비활성화한다. 프로그램 코드 내에 하드코딩된 디버그 중단점이 있을 경우, 이 스위치를 사용하면 중지 오류가 발생할 수 있다.[7]
  • `/NOEXECUTE={OPTIN|OPTOUT|ALWAYSON|ALWAYSOFF}` – 32비트 윈도우에서 데이터 실행 방지 (DEP) 기능을 제어한다. DEP는 특정 메모리 영역을 실행 불가능하도록 표시하여 악성 코드가 버퍼 오버플로 등을 통해 임의 코드를 실행하는 것을 방지하는 보안 기능이다. 64비트 윈도우에서는 DEP가 기본적으로 활성화되어 있다. 다음과 같은 옵션을 사용할 수 있다.[8]
  • `'''/NOEXECUTE=OPTIN'''`: 핵심 시스템 파일과 사용자가 지정한 프로그램에 대해서만 DEP를 활성화한다 (기본값).
  • `'''/NOEXECUTE=OPTOUT'''`: 사용자가 지정한 예외 프로그램을 제외한 모든 프로그램에 대해 DEP를 활성화한다.
  • `'''/NOEXECUTE=ALWAYSON'''`: 모든 프로세스에 대해 DEP를 항상 활성화한다.
  • `'''/NOEXECUTE=ALWAYSOFF'''`: DEP 기능을 완전히 비활성화한다.
  • `/NOGUIBOOT` – 윈도우 부팅 시 그래픽 로고 화면 대신, 로드되는 장치 드라이버 목록을 텍스트로 표시한다. `/BASEVIDEO` 스위치와 함께 사용하면 부팅 실패의 원인이 되는 드라이버를 찾는 데 도움이 된다.[7]
  • `/NOPAE` – 시스템이 물리 주소 확장 (PAE)을 지원하고 4GB 이상의 실제 메모리를 가지고 있더라도, PAE 기능이 없는 버전의 윈도우 커널을 강제로 로드한다.[8]
  • `/NOSERIALMICE[=com*x*]` – (구 버전 스위치) `/FASTDETECT` 스위치로 대체되었다. 지정된 COM 포트 또는 모든 COM 포트에서 시리얼 마우스 감지를 비활성화한다.[8]
  • `/NUMPROC=*nnn*` – 부팅 시 사용할 CPU 코어의 최대 개수를 지정한다. 다중 코어 시스템에서 특정 수의 코어만 사용하도록 강제하여 성능 문제나 결함이 있는 CPU를 진단하는 데 사용될 수 있다.[7]
  • `/ONECPU` – `/NUMPROC=1`과 동일한 기능으로, 다중 코어 시스템에서 단 하나의 CPU 코어만 사용하도록 강제한다.[8]
  • `/PAE` – 물리 주소 확장 (PAE) 기능을 활성화하여 32비트 윈도우가 4GB 이상의 물리 메모리를 인식하고 사용할 수 있도록 한다. 안전 모드로 부팅할 경우에는 이 스위치가 지정되어 있어도 일반 커널로 시작된다.[7]
  • `/PCILOCK` – x86 시스템에서 운영 체제가 PCI 장치의 하드웨어 리소스(입출력 포트, IRQ 등)를 동적으로 할당하는 것을 막고, 대신 BIOS가 설정한 구성을 사용하도록 한다.[7]
  • `/REDIRECT` – Windows Server 2003, Enterprise Edition에서 긴급 관리 서비스 (EMS)를 활성화한다. EMS를 사용하려면 Boot.ini 파일의 [boot loader] 섹션과 [operating systems] 섹션 모두에 관련 설정을 추가해야 한다.[7]
  • `/SAFEBOOT:{MINIMAL|NETWORK|DSREPAIR}[(ALTERNATESHELL)]` – 윈도우를 안전 모드로 부팅한다. 다음 세 가지 주요 옵션 중 하나를 콜론(:) 뒤에 지정해야 한다: `MINIMAL`, `NETWORK`, `DSREPAIR`. 추가적으로 `(ALTERNATESHELL)` 옵션을 사용하면 기본 Windows 탐색기 대신 레지스트리에 지정된 대체 셸 프로그램으로 부팅된다.[8] 다른 boot.ini 스위치(예: `/SOS`, `/BOOTLOG`, `/NOGUIBOOT`)와 함께 사용하여 문제 해결에 도움을 받을 수 있다.[7]
  • '''안전 모드 (`/SAFEBOOT:MINIMAL`)''': 최소한의 필수 장치 드라이버와 서비스만 로드하여 부팅한다.[11] (예: `/SAFEBOOT:MINIMAL /SOS /BOOTLOG /NOGUIBOOT`)
  • '''네트워킹 사용 안전 모드 (`/SAFEBOOT:NETWORK`)''': 최소 모드에 네트워크 기능에 필요한 드라이버와 서비스를 추가로 로드한다.[11] (예: `/SAFEBOOT:NETWORK /SOS /BOOTLOG /NOGUIBOOT`)
  • '''명령 프롬프트 사용 안전 모드 (`/SAFEBOOT:MINIMAL(ALTERNATESHELL)`)''': 최소 모드와 동일하지만, 그래픽 셸 대신 Cmd.exe (명령 프롬프트)를 실행한다.[11] (예: `/SAFEBOOT:MINIMAL(ALTERNATESHELL) /SOS /BOOTLOG /NOGUIBOOT`)
  • '''디렉터리 서비스 복원 모드 (`/SAFEBOOT:DSREPAIR`)''': 도메인 컨트롤러에서만 사용 가능하며, 액티브 디렉터리 복구를 위해 사용된다.[11] (예: `/SAFEBOOT:DSREPAIR /SOS`)
  • `/SOS` – 부팅 시 윈도우 로고 대신, 로드되는 장치 드라이버 목록, 윈도우 빌드 번호, 버전 정보 등을 텍스트로 표시한다. Windows 2000 및 XP에서는 이 텍스트 정보가 CHKDSK 비트맵 영역 내에 표시된다.
  • `/USEPMTIMER` – 시스템이 지원하는 경우, 윈도우가 기본 타임 스탬프 카운터 (TSC) 대신 PM(Power Management)-Timer를 시스템 타이머로 사용하도록 강제한다.[7] 특정 하드웨어 구성(다중 프로세서 APIC 또는 ACPI HAL)에서는 이 타이머가 기본값일 수 있으나, 그렇지 않은 경우 이 스위치를 통해 사용을 강제할 수 있다.[12]
  • `/USERVA=*nnn*` – `/3GB` 스위치와 함께 사용될 때, 사용자 프로세스에 할당되는 가상 주소 공간의 크기를 메가바이트(MB) 단위로 미세 조정한다. 커널이 사용할 수 있는 페이지 테이블 항목(PTE) 공간을 늘리면서도 사용자 공간을 거의 3GB에 가깝게 유지할 수 있도록 한다.[11]
  • `/WIN95` – NTLDR이 `bootsect.w40` 파일에 저장된 윈도우 부트 섹터를 로드하도록 지시한다.[8]
  • `/WIN95DOS` – NTLDR이 `bootsect.dos` 파일에 저장된 MS-DOS 부트 섹터를 로드하도록 지시한다.[8]
  • `/YEAR=*yyyy*` – 시스템의 실시간 시계(RTC)가 보고하는 연도 값을 무시하고, 지정된 연도(*yyyy*)를 윈도우 시간 함수에서 사용하도록 강제한다. 예를 들어, `/YEAR=2001`과 같이 사용한다. 이 스위치는 Y2K 버그 테스트를 위해 도입되었다.[8]

4. 문제점

Windows NT 계열 운영 체제 중 XP 및 이전 버전에서는 사용자의 실수나 바이러스 감염, 또는 기타 환경 요인으로 인해 NTLDR 파일이 손상되거나 삭제되는 경우가 있었다. 이런 경우, 겉으로는 문제가 없어 보이지만 컴퓨터를 다시 시작할 때 부팅에 실패하며 'NTLDR is missing, Press Ctrl+Alt+Del to restart'라는 오류 메시지가 나타난다.

다만, 이 메시지가 나타난다고 해서 반드시 NTLDR 파일이 손상되었거나 삭제된 것은 아니다. 파일을 불러오는 과정에서 알 수 없는 이유로 일시적인 오류가 발생하여 나타날 수도 있기 때문이다. 하지만 재부팅을 해도 계속 같은 메시지가 나타난다면 파일 손상을 의심해 볼 수 있다. 이때는 윈도우 원본 설치 CD에 포함된 복구 콘솔 기능을 이용하여 문제를 해결할 수 있다.

이러한 NTLDR의 문제점 때문에 마이크로소프트윈도우 비스타 및 이후 버전의 윈도우 운영 체제부터는 윈도우 부트 매니저라는 새로운 부트 로더를 도입하여 안정성을 개선하였다.

5. 역사

Windows NT는 본래 ARC(Advanced RISC Computing) 호환 플랫폼을 위해 설계되었다. 이 시스템은 부트 매니저 지원에 의존했으며, 윈도우 디렉토리 파티션, 위치, 부트 매개변수 등을 지정하는 명령줄 인수를 받아 작동하는 로딩 프로그램인 'osloader.exe'만을 제공했다. 사용자가 특정 Windows NT 운영 체제를 시작하도록 선택하면 ARC 호환 부트 매니저가 이 'osloader.exe'를 실행하는 방식이었다.

그러나 x86 아키텍처는 ARC를 지원하지 않았기 때문에, x86 플랫폼을 위한 별도의 부트 로더가 필요했다. 이것이 바로 NTLDR이다. NTLDR은 사용자가 여러 운영 체제와 해당 옵션 중에서 선택할 수 있는 텍스트 기반 메뉴를 제공하고, CPU를 보호 모드로 전환하는 등의 초기 작업을 수행하는 역할을 했다. 사용자가 부트 메뉴에서 운영 체제를 선택하면, 필요한 정보가 'osloader.exe'로 전달되었다. NTLDR은 부팅 설정을 위해 boot.ini 파일을 사용했다.

윈도우 비스타 및 Windows Server 2008부터는 NTLDR이 새로운 부트 로더 구성 요소들로 대체되었다. NTLDR의 기능은 부트 매니저 역할을 하는 Windows 부트 매니저(Bootmgr)와 시스템 로더 역할을 하는 'winload.exe'로 분할되었다. 새로운 부트 매니저는 더 이상 boot.ini 파일을 구성 파일로 사용하지 않는다. 하지만 윈도우 XP나 윈도우 서버 2003과 같은 이전 버전 윈도우와의 멀티 부팅 구성을 위해 boot.ini 파일을 수정하는 bootcfg 유틸리티는 여전히 제공된다.

6. 명령어 인터페이스 (bootsect.exe)

'''bootsect.exe'''는 Windows PE 도구에 포함된 유틸리티 프로그램이다. 이 명령어는 지정된 파티션의 첫 번째 섹터에 NTLDR 또는 비스타(Vista) 부트 레코드를 저장하는 데 사용된다.[1] 주요 옵션으로는 NTLDR 호환 부트 코드를 적용하는 '''/nt52'''와 비스타 및 이후 버전 윈도우의 부트 코드를 적용하는 '''/nt60'''이 있다. FATNTFS 기반 파일 시스템에서 사용할 수 있으며, 기존의 `FixFAT` 및 `FixNTFS` 도구를 대체한다.[2]

6. 1. 예시

다음 예시는 NTLDR 호환 마스터 부트 코드를 D: 볼륨에 적용하는 방법을 보여준다:[2]

C:\>bootsect /nt52 D:

참조

[1] 웹사이트 Bootsect Command-Line Options https://technet.micr[...] Microsoft Technet 2011-07-03
[2] 웹사이트 MS-DOS and Windows command line bootsect command https://www.computer[...]
[3] 웹사이트 Boot Configuration Data Editor Frequently Asked Questions https://learn.micros[...] Microsoft Learn 2024-01-04
[4] 웹사이트 Ntdetect.com (Installd.cmd) https://web.archive.[...]
[5] 서적 Windows 2000 Professional Resource Kit https://archive.org/[...] Microsoft Press
[6] 웹사이트 Startup and Shutdown Problems, part 1 http://www.pctoptips[...] 2009
[7] 웹사이트 Available switch options for the Windows XP and the Windows Server 2003 Boot.ini files https://learn.micros[...] 2024-01-04
[8] 웹사이트 Boot INI Options Reference https://learn.micros[...] Microsoft 2023-01-04
[9] 웹사이트 Loss of DirectDraw Overlay and VMR9 after upgrade/update https://forum.videoh[...] 2008-07
[10] 웹사이트 /burnmemory (Windows Drivers http://msdn.microsof[...] Microsoft
[11] 웹사이트 A description of the Safe Mode Boot options in Windows XP https://web.archive.[...]
[12] 웹사이트 Programs that use the QueryPerformanceCounter function may perform poorly https://learn.micros[...] 2023-02-23
[13] 문서 Basic Input/Output Systemの対応が必要
[14] 뉴스 マイクロソフト サポート オンライン http://support.micro[...] 2011-01-29
[15] 서적 Inside Windows Server 2003 https://books.google[...] Addison-Wesley Professional 2003-04-14
[16] 서적 Windows 2000 Professional Resource Kit Microsoft Press



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com