NTLDR 부트 매니저의 구조와 작동 원리
지난 글에서는 윈도우 XP 의 부트 매니저인 NTLDR 부트 매니저가 어디에 위치해 있는지 알아보았습니다.
- 윈도우 XP 의 부팅 - NTLDR 부트 매니저의 확인
이제 이러한 NTLDR 부트 매니저의 각 파일들이 어떠한 역할을 하는지 우리는 무엇을 해야 하는지 간단하게 알아보도록 하죠. 우선 NTLDR 부트 매니저를 이루는 네 개의 파일들은 각각 다음의 기능을 가지고 있습니다.
그럼 짧게 NTLDR 부트 매니저의 윈도우 부팅 구조를 살펴보도록 하죠.
우선 NTLDR 에게 부팅의 제어권이 넘어오면 NTLDR 은 환경 설정 파일인 BOOT.INI 파일을 읽어 윈도우의 부팅 환경을 확인한 후 이곳에서 부팅할 윈도우가 선택되면 NTDETECT.COM 를 실행하여 현재 시스템의 하드웨어를 검색하고 확인합니다. NTDETECT.COM 은 다시 이 정보를 NTLDR 에게 되돌려주고 하드웨어 정보를 받은 NTLDR 은 이를 확인하고 적용하여 해당 윈도우의 커널을(NTOSKRNL.EXE) 읽어들이고 윈도우의 부팅이 시작되는 겁니다. 간단하죠?
설명 중 홀로 BOOTFONT.BIN 파일만 설명이 안 되었는데 이건 뭐냐하면 BOOT.INI 에 윈도우 설정이 하나가 아닌 여러 개가 존재한다면 즉, 멀티 부팅 환경이라면 NTLDR 은 부팅 항목을 선택할 수 있는 멀티 부팅 화면을 출력해주게 됩니다. 근데 우리가 사용하는 것은 한글 윈도우인지라 멀티 부팅 화면에서 한글을 출력해주어야 하고 그에 맞는 한글 폰트가 필요하죠. 그러한 한글 폰트를 담고 있는 것이 동아시아 언어 폰트 모음인 BOOTFONT.BIN 파일입니다. 쉽죠?
이제 NTLDR 부트 매니저를 구성하는 네 개의 부트 파일들이 각각 무슨 일을 담당하는지 아시겠죠? NTLDR 부트 매니저의 구조와 작동 원리는 여기까지! (더 알 필요도 없고 중요한 건 이게 아니니까요!)
NTLDR 부트 매니저의 환경 설정 파일 - BOOT.INI
그러니까 위의 NTLDR 작동 과정에서 나머지 과정은 전부 알아서 자동으로 이루어지는 부분이고 우리가 개입할 수 있는 것은 환경 설정인 BOOT.INI 뿐 입니다. 우리는 이러한 BOOT.INI 환경 설정 파일의 적절한 수정을 통해 5.x 버전대인 XP 계열 윈도우들의 부팅을 새로 추가하거나 제거하고 원하는대로 부팅 옵션을 설정해 줄 수 있는 겁니다.
즉, 이는 윈도우 XP 의 부팅은 순전히 BOOT.INI 파일의 내용에 달려 있다고 봐도 되는 겁니다. 그래서 XP 계열 윈도우들의 부팅을 정복하려면 BOOT.INI 파일을 알아야 합니다.
BOOT.INI 파일에 접근하기
그럼 일단 BOOT.INI 파일을 수정할 수 있도록 읽어야겠죠? 여기에는 두 가지 방법이 있습니다.
1. 시스템 등록 정보를 통하는 방법
2. 메모장을 통해 직접 여는 방법
이상의 두 가지 방법을 통해 NTLDR 부트 매니저의 환경 설정 파일인 BOOT.INI 파일을 열 수 있으며 어느 방법을 통하든지 BOOT.INI 파일은 텍스트 파일이기 때문에 아래와 같이 윈도우의 기본 텍스트 에디터인 메모장을 통해 열리게 됩니다.
이후 이제 여러분이 원하는대로 적절히 BOOT.INI 파일을 수정하여 저장하면 되는 것이죠. 어때요? 간단하죠?
그럼 이번 글은 여기까지 하기로 하고 다음 글에서는 이러한 BOOT.INI 파일의 구조를 알아보고 각각의 항목이 무엇을 의미하는지 짚어보도록 하죠. ^^
지난 글에서는 윈도우 XP 의 부트 매니저인 NTLDR 부트 매니저가 어디에 위치해 있는지 알아보았습니다.
- 윈도우 XP 의 부팅 - NTLDR 부트 매니저의 확인
요약 - 윈도우 XP 의 부트 매니저인 NTLDR, NTDETECT.COM, BOOT.INI, BOOTFONT.BIN 파일은 윈도우 XP 를 기준으로 C: 드라이브의 루트 폴더에 숨겨져 있다.
이제 이러한 NTLDR 부트 매니저의 각 파일들이 어떠한 역할을 하는지 우리는 무엇을 해야 하는지 간단하게 알아보도록 하죠. 우선 NTLDR 부트 매니저를 이루는 네 개의 파일들은 각각 다음의 기능을 가지고 있습니다.
NTLDR : 시동 로더 (부팅을 총괄)
BOOT.INI : 부팅 환경 설정 파일
NTDETECT.COM : 하드웨어 감지
BOOTFONT.BIN : 동아시아(한글) 언어 폰트 파일
BOOT.INI : 부팅 환경 설정 파일
NTDETECT.COM : 하드웨어 감지
BOOTFONT.BIN : 동아시아(한글) 언어 폰트 파일
그럼 짧게 NTLDR 부트 매니저의 윈도우 부팅 구조를 살펴보도록 하죠.
우선 NTLDR 에게 부팅의 제어권이 넘어오면 NTLDR 은 환경 설정 파일인 BOOT.INI 파일을 읽어 윈도우의 부팅 환경을 확인한 후 이곳에서 부팅할 윈도우가 선택되면 NTDETECT.COM 를 실행하여 현재 시스템의 하드웨어를 검색하고 확인합니다. NTDETECT.COM 은 다시 이 정보를 NTLDR 에게 되돌려주고 하드웨어 정보를 받은 NTLDR 은 이를 확인하고 적용하여 해당 윈도우의 커널을(NTOSKRNL.EXE) 읽어들이고 윈도우의 부팅이 시작되는 겁니다. 간단하죠?
NTLDR -> BOOT.INI (부팅할 윈도우 선택) -> NTDETECT.COM -> NTLDR -> 부팅 시작
설명 중 홀로 BOOTFONT.BIN 파일만 설명이 안 되었는데 이건 뭐냐하면 BOOT.INI 에 윈도우 설정이 하나가 아닌 여러 개가 존재한다면 즉, 멀티 부팅 환경이라면 NTLDR 은 부팅 항목을 선택할 수 있는 멀티 부팅 화면을 출력해주게 됩니다. 근데 우리가 사용하는 것은 한글 윈도우인지라 멀티 부팅 화면에서 한글을 출력해주어야 하고 그에 맞는 한글 폰트가 필요하죠. 그러한 한글 폰트를 담고 있는 것이 동아시아 언어 폰트 모음인 BOOTFONT.BIN 파일입니다. 쉽죠?
이제 NTLDR 부트 매니저를 구성하는 네 개의 부트 파일들이 각각 무슨 일을 담당하는지 아시겠죠? NTLDR 부트 매니저의 구조와 작동 원리는 여기까지! (더 알 필요도 없고 중요한 건 이게 아니니까요!)
NTLDR 부트 매니저의 환경 설정 파일 - BOOT.INI
NTLDR -> BOOT.INI (부팅할 윈도우 선택) -> NTDETECT.COM -> NTLDR -> 부팅 시작
그러니까 위의 NTLDR 작동 과정에서 나머지 과정은 전부 알아서 자동으로 이루어지는 부분이고 우리가 개입할 수 있는 것은 환경 설정인 BOOT.INI 뿐 입니다. 우리는 이러한 BOOT.INI 환경 설정 파일의 적절한 수정을 통해 5.x 버전대인 XP 계열 윈도우들의 부팅을 새로 추가하거나 제거하고 원하는대로 부팅 옵션을 설정해 줄 수 있는 겁니다.
즉, 이는 윈도우 XP 의 부팅은 순전히 BOOT.INI 파일의 내용에 달려 있다고 봐도 되는 겁니다. 그래서 XP 계열 윈도우들의 부팅을 정복하려면 BOOT.INI 파일을 알아야 합니다.
BOOT.INI 파일에 접근하기
그럼 일단 BOOT.INI 파일을 수정할 수 있도록 읽어야겠죠? 여기에는 두 가지 방법이 있습니다.
1. 시스템 등록 정보를 통하는 방법
첫 번째로 윈도우에 기본으로 제공되는 시스템 등록 정보를 통해 접근하는 방법입니다.
Windows Key + Pause(시스템 등록 정보) -> 고급 -> 시작 및 복구의 설정 -> 편집
2. 메모장을 통해 직접 여는 방법
BOOT.INI 파일은 텍스트 파일입니다. 이 말이 무엇이냐 하면 그냥 메모장이나 사용 중인 텍스트 에디터로 바로 열 수 있다는 말이죠. 일단 BOOT.INI 파일은 숨겨져 있기 때문에 먼저 윈도우 탐색기의 옵션을 설정하여 시스템 파일과 숨김 파일을 볼 수 있도록 해주어야 합니다.
그런 후 윈도우 탐색기를 실행하고 C: 드라이브의 루트에 표시된 BOOT.INI 파일을 열어주면(더블 클릭) 자동으로 메모장으로 열립니다. 뭐 사용 중인 다른 에디터가 있다면 그걸로 여서도 됩니다.
그런 후 윈도우 탐색기를 실행하고 C: 드라이브의 루트에 표시된 BOOT.INI 파일을 열어주면(더블 클릭) 자동으로 메모장으로 열립니다. 뭐 사용 중인 다른 에디터가 있다면 그걸로 여서도 됩니다.
이상의 두 가지 방법을 통해 NTLDR 부트 매니저의 환경 설정 파일인 BOOT.INI 파일을 열 수 있으며 어느 방법을 통하든지 BOOT.INI 파일은 텍스트 파일이기 때문에 아래와 같이 윈도우의 기본 텍스트 에디터인 메모장을 통해 열리게 됩니다.
이후 이제 여러분이 원하는대로 적절히 BOOT.INI 파일을 수정하여 저장하면 되는 것이죠. 어때요? 간단하죠?
그럼 이번 글은 여기까지 하기로 하고 다음 글에서는 이러한 BOOT.INI 파일의 구조를 알아보고 각각의 항목이 무엇을 의미하는지 짚어보도록 하죠. ^^