이 포스팅은 PC 에서 운영체제의 부팅은 어떻게 이루어지는가? - BIOS 의 부팅 구조 포스팅의 내용을 이어서 작성되는 것입니다. 다시 한 번 주요 내용을 정리하겠지만 어쨌든 먼저 보고 오시는 것이 좋습니다.
바이오스 기반 PC 에서 운영체제의 부팅 구조 간략 정리
우리는 지난 글에서 바이오스를 기반으로 하는 PC 에서 운영체제의 부팅이 어떠한 흐름을 거쳐 진행이 되는지 알아보았습니다. 핵심은 아래와 같습니다.
- CMOS 에서 첫 번째 부팅 장치가 HDD 로 설정된 경우
윈도우 7 계열 윈도우의 부트 매니저 BOOTMGR - 윈도우 버전 6.x
윈도우 7 계열의 윈도우들은 6.x 버전대의 윈도우들로 이 버전의 윈도우들이 사용하는 부트 매니저는 BOOTMGR 부트 매니저입니다.
고로 윈도우 7 계열의 윈도우들은 설치될 때 PC 의 부팅 구조에 입각하여 CMOS 에서 첫 번째 디스크로 설정된 디스크에 존재하는 파티션들 중 활성 파티션에 BOOTMGR 부트 매니저를 설치하고 해당 파티션의 부트 섹터에는 BOOTMGR 부트 매니저를 찾도록 기록합니다.
이를 통해 실제로 구성되는 윈도우 7 계열 윈도우들의 전체적인 부팅의 구조는 아래와 같습니다.
이러한 BOOTMGR 부트 매니저에는 BCD 라는 자체의 부팅 환경 설정 파일이 존재하며 BCD 에는 BOOTMGR 에 필요한 부팅에 관한 모든 설정이 저장되어 있습니다.
이러한 BCD 는 데이터베이스 구조의 바이너리 파일이기 때문에 이를 지원하는 전문의 편집 도구가 필요하며 이러한 도구의 대표로는 BCDEdit.exe 가 있습니다.
이것이 윈도우 7 계열 윈도우들이 부팅되는 과정입니다. BOOTMGR 과 BCD 일단 이것만 기억하시면 될 듯 합니다.
윈도우 XP 계열 윈도우의 부트 로더 NTLDR - 윈도우 버전 5.x
윈도우 XP 계열의 윈도우들은 5.x 버전대의 윈도우들로 이 버전의 윈도우들이 사용하는 부트 매니저는 NTLDR 부트 매니저입니다.
고로 윈도우 XP 계열의 윈도우들은 설치될 때 PC 의 부팅 구조에 입각하여 CMOS 에서 첫 번째 디스크로 설정된 디스크에 존재하는 파티션들 중 활성 파티션에 NTLDR 부트 매니저를 설치하고 해당 파티션의 부트 섹터에는 NTLDR 부트 매니저를 찾도록 기록합니다.
이를 통해 실제로 구성되는 윈도우 XP 계열 윈도우들의 전체적인 부팅의 구조는 아래와 같습니다.
이러한 NTLDR 부트 매니저에는 Boot.ini 라는 자체의 부팅 환경 설정 파일이 존재하며 Boot.ini 에는 NTLDR 에 필요한 부팅에 관한 모든 설정이 저장되어 있습니다.
이러한 Boot.ini 파일은 텍스트 파일로 텍스트 에디터로 편집할 수 있습니다. 대표적인 텍스트 에디터로는 윈도우 내장의 메모장이 있습니다.
이것이 윈도우 XP 계열 윈도우들이 부팅되는 과정입니다. NTLDR 과 Boot.ini 일단 이것만 기억하시면 될 듯 합니다.
윈도우 9x 계열(DOS 포함) 윈도우의 시스템 파일 IO.SYS
윈도우 2000 이후 통합된 NT 커널 외의 이전 윈도우들은(ME 포함) 다중 운영체제(멀티 부팅) 환경을 위해 설계되지 않은 운영체제들로 이는 오직 자기 자신만이 유일하게 컴퓨터에 설치되어 사용된다는 가정하에 개발된 운영체제들입니다.
이로 인해 윈도우 9x 버전의 윈도우들과 그 이전의 도스라는 운영체제는 특별한 부트 매니저를 가지고 있지 않습니다. 고로 자신의 시스템 파일 자체로 바로 부팅이 진행될 뿐 입니다. 즉, 이러한 버전의 윈도우들과 도스는 부트 섹터에서 바로 시스템 파일(IO.SYS) 을 찾도록 설계되어 있습니다.
도스와 윈도우 9x 버전의 윈도우들은 자신들의 포맷 도구로 포맷을 진행할 때 부트 섹터에 IO.SYS 파일을 찾도록 기록합니다.
윈도우 9x 와 도스가 아직도 필요한가는 많은 의문이 들지만 그래도 간혹 사용은 되니 간단하게라도 다루도록 하겠습니다. 근데 윈도우 9x 버전들은 사실상 현재는 사용되지 않고 있다고 볼 수 있고 간혹 도스가 사용되는데 도스는 디스크에 설치해놓고 NTLDR 과 BOOTMGR 에서 접근하는 것 보다는 GRUB 에서 이미지 파일 형태로 접근하는 방법이 더 많이 사용됩니다.
아무튼 일단 관련 내용은 모두 다루게 될 겁니다. 물론 나중에 ^^;
윈도우와 부트 매니저 그 상관 관계
포스팅이 또 길어지는 경향이 보이지만 굉장히 중요하고 또 많은 분들이 헷갈려하는 내용인지라 짧게 이야기하도록 하겠습니다. 얼마나 중요하냐면 박스 쳐 놓고 빨간 색으로 칠할 정도로 중요합니다.
이것을 확실하게 기억하세요. 여기에서 굉장히 많은 오해가 일어납니다. 윈도우 부트 매니저를 중심으로 정확하게 정리를 해보죠.
뭔가 이상하지 않나요? 분명 윈도우 7 과 윈도우 XP 를 멀티 부팅으로 꾸며놓고 잘 사용하고 있는데 말이죠. BOOTMGR 부트 매니저가 윈도우 XP 를 부팅시킬 수 없다면 BOOTMGR 의 BCD 에 꾸며놓은 윈도우 XP 에 관한 부팅 설정은 어떻게 된 것일까요? (윈도우 7 설치시 자동으로 꾸몄다고 하더라도)
간단하게 이야기 하도록 하겠습니다.
BOOTMGR 이 자신의 계열이 아닌 윈도우 버전들을 부팅시키지 못하는 것엔 변함이 없습니다. 그러나 우리가 알아야 할 것은 거의 대부분의 부트 매니저들은 자신이 직접 부팅시킬 수 없는 운영체제를 위해 해당 운영체제를 부팅시킬 수 있는 부트 매니저에게 부팅의 제어권을 넘겨주는 방법을 사용한다는 겁니다.
이를 통해 부트 매니저들은 자신이 관리 가능한 운영체제 외의 다른 운영체제와의 멀티 부팅도 지원을 하는 것입니다. 이는 윈도우의 BOOTMGR 부트 매니저와 NTLDR 부트 매니저도 마찬가지입니다.
결론적으로 보자면 BOOTMGR 은 NTLDR 을 불러오는 방법을 사용합니다. 그리고 그를 통해 윈도우 XP 는 부팅이 될 수 있는 것이죠.(다만 BOOTMGR 에서 NTLDR 을 읽은 것은 가능하지만 NTLDR 은 BOOTMGR 을 읽는 것을 지원하지 않습니다.)
여기까지만 하고 나머지 내용은 멀티 부팅 단계에서 그림까지 곁들여서 다시 한 번 자세하게 이야기를 해 보도록 하죠. 아직 설명할 것이 많아서 그게 언제일지는 모르겠지만...
바이오스 기반 PC 에서 운영체제의 부팅 구조 간략 정리
우리는 지난 글에서 바이오스를 기반으로 하는 PC 에서 운영체제의 부팅이 어떠한 흐름을 거쳐 진행이 되는지 알아보았습니다. 핵심은 아래와 같습니다.
바이오스 기반 PC 의 부팅 구조
- CMOS 에서 첫 번째 부팅 장치가 HDD 로 설정된 경우
1. 컴퓨터의 전원을 켜면 바이오스가 시작되고 시작된 바이오스는 컴퓨터에 장착된 하드웨어들에 문제가 없는지 간단하게 체크를 시작합니다.
2. 모든 하드웨어의 체크가 끝났으면 바이오스는 CMOS 에 설정된 첫 번째 부팅 장치를 확인합니다.[이하 첫 번째 부팅 장치는 HDD(디스크) 장치]
3. 바이오스는 시스템에 장착된 디스크들 중 CMOS 에 첫 번째 하드 디스크로 설정된 디스크를 확인합니다. 첫 번째로 설정된 디스크를 확인했으면 해당 디스크의 첫 번째 섹터를(Logical Sector 0, CHS 0:0:1) 읽어들입니다. 이 때 디스크의 첫 번째 섹터는 MBR 입니다.(즉, 바이오스는 첫 번째 디스크의 MBR 을 읽습니다.)
4. 디스크의 MBR 에는 코드 영역과 파티션 테이블이란 곳이 존재하고 있습니다. 코드 영역은 디스크로 부팅을 시작하기 위한 작은 프로그램이 기록되어 있는 공간입니다. 파티션 테이블은 디스크에 존재하는 파티션에 대한 정보가 기록되어 있는 공간입니다. 바이오스는 MBR 의 코드 영역에 기록된 프로그램을 실행합니다.
코드 영역에 기록된 프로그램은 기본적으로 파티션 테이블 영역을 검색하여 현재 디스크에 존재하는 파티션들 중 활성으로 마크된 파티션을 찾고(활성 파티션) 찾았다면 해당 파티션의 부트 섹터를 읽어들이라고 프로그래밍 되어 있습니다.
5. 부트 섹터에는 현재 파티션에서 찾아야 될 부트 매니저가 무엇인지 기록되어 있습니다. (이 정보는 포맷 형식에 맞춰 기록되어 있거나 운영체제가 설치될 때 자신의 부트 매니저를 찾도록 기록합니다.) 파티션에서 해당 부트 매니저를 찾았다면 부트 매니저를 실행합니다.
6. 부트 매니저는 필요한 설정을(자신의 설정 파일) 참고하여 운영체제의 부팅을 시작합니다.
2. 모든 하드웨어의 체크가 끝났으면 바이오스는 CMOS 에 설정된 첫 번째 부팅 장치를 확인합니다.[이하 첫 번째 부팅 장치는 HDD(디스크) 장치]
3. 바이오스는 시스템에 장착된 디스크들 중 CMOS 에 첫 번째 하드 디스크로 설정된 디스크를 확인합니다. 첫 번째로 설정된 디스크를 확인했으면 해당 디스크의 첫 번째 섹터를(Logical Sector 0, CHS 0:0:1) 읽어들입니다. 이 때 디스크의 첫 번째 섹터는 MBR 입니다.(즉, 바이오스는 첫 번째 디스크의 MBR 을 읽습니다.)
4. 디스크의 MBR 에는 코드 영역과 파티션 테이블이란 곳이 존재하고 있습니다. 코드 영역은 디스크로 부팅을 시작하기 위한 작은 프로그램이 기록되어 있는 공간입니다. 파티션 테이블은 디스크에 존재하는 파티션에 대한 정보가 기록되어 있는 공간입니다. 바이오스는 MBR 의 코드 영역에 기록된 프로그램을 실행합니다.
코드 영역에 기록된 프로그램은 기본적으로 파티션 테이블 영역을 검색하여 현재 디스크에 존재하는 파티션들 중 활성으로 마크된 파티션을 찾고(활성 파티션) 찾았다면 해당 파티션의 부트 섹터를 읽어들이라고 프로그래밍 되어 있습니다.
5. 부트 섹터에는 현재 파티션에서 찾아야 될 부트 매니저가 무엇인지 기록되어 있습니다. (이 정보는 포맷 형식에 맞춰 기록되어 있거나 운영체제가 설치될 때 자신의 부트 매니저를 찾도록 기록합니다.) 파티션에서 해당 부트 매니저를 찾았다면 부트 매니저를 실행합니다.
6. 부트 매니저는 필요한 설정을(자신의 설정 파일) 참고하여 운영체제의 부팅을 시작합니다.
바이오스 -> 첫 번째 디스크의 MBR -> 활성 파티션의 부트 섹터 -> 부트 매니저 -> 운영체제 부팅 시작
윈도우 7 계열 윈도우의 부트 매니저 BOOTMGR - 윈도우 버전 6.x
적용 윈도우 버전 - 6.x
윈도우 비스타, 윈도우 7, 윈도우 8, 윈도우 서버 2008, 윈도우 서버 2008 R2
윈도우 비스타, 윈도우 7, 윈도우 8, 윈도우 서버 2008, 윈도우 서버 2008 R2
윈도우 7 계열의 윈도우들은 6.x 버전대의 윈도우들로 이 버전의 윈도우들이 사용하는 부트 매니저는 BOOTMGR 부트 매니저입니다.
고로 윈도우 7 계열의 윈도우들은 설치될 때 PC 의 부팅 구조에 입각하여 CMOS 에서 첫 번째 디스크로 설정된 디스크에 존재하는 파티션들 중 활성 파티션에 BOOTMGR 부트 매니저를 설치하고 해당 파티션의 부트 섹터에는 BOOTMGR 부트 매니저를 찾도록 기록합니다.
이를 통해 실제로 구성되는 윈도우 7 계열 윈도우들의 전체적인 부팅의 구조는 아래와 같습니다.
바이오스 -> 첫 번째 디스크의 MBR -> 활성 파티션의 부트 섹터(BOOTMGR, NT60) -> BOOTMGR -> 윈도우 부팅 시작
이러한 BOOTMGR 부트 매니저에는 BCD 라는 자체의 부팅 환경 설정 파일이 존재하며 BCD 에는 BOOTMGR 에 필요한 부팅에 관한 모든 설정이 저장되어 있습니다.
BOOTMGR -> BCD
이러한 BCD 는 데이터베이스 구조의 바이너리 파일이기 때문에 이를 지원하는 전문의 편집 도구가 필요하며 이러한 도구의 대표로는 BCDEdit.exe 가 있습니다.
이것이 윈도우 7 계열 윈도우들이 부팅되는 과정입니다. BOOTMGR 과 BCD 일단 이것만 기억하시면 될 듯 합니다.
윈도우 XP 계열 윈도우의 부트 로더 NTLDR - 윈도우 버전 5.x
적용 윈도우 버전 - 5.x
윈도우 2000, 윈도우 XP, 윈도우 서버 2003
윈도우 2000, 윈도우 XP, 윈도우 서버 2003
윈도우 XP 계열의 윈도우들은 5.x 버전대의 윈도우들로 이 버전의 윈도우들이 사용하는 부트 매니저는 NTLDR 부트 매니저입니다.
고로 윈도우 XP 계열의 윈도우들은 설치될 때 PC 의 부팅 구조에 입각하여 CMOS 에서 첫 번째 디스크로 설정된 디스크에 존재하는 파티션들 중 활성 파티션에 NTLDR 부트 매니저를 설치하고 해당 파티션의 부트 섹터에는 NTLDR 부트 매니저를 찾도록 기록합니다.
이를 통해 실제로 구성되는 윈도우 XP 계열 윈도우들의 전체적인 부팅의 구조는 아래와 같습니다.
바이오스 -> 첫 번째 디스크의 MBR -> 활성 파티션의 부트 섹터(NTLDR, NT52) -> NTLDR -> 윈도우 부팅 시작
이러한 NTLDR 부트 매니저에는 Boot.ini 라는 자체의 부팅 환경 설정 파일이 존재하며 Boot.ini 에는 NTLDR 에 필요한 부팅에 관한 모든 설정이 저장되어 있습니다.
NTLDR -> Boot.ini
이러한 Boot.ini 파일은 텍스트 파일로 텍스트 에디터로 편집할 수 있습니다. 대표적인 텍스트 에디터로는 윈도우 내장의 메모장이 있습니다.
이것이 윈도우 XP 계열 윈도우들이 부팅되는 과정입니다. NTLDR 과 Boot.ini 일단 이것만 기억하시면 될 듯 합니다.
윈도우 9x 계열(DOS 포함) 윈도우의 시스템 파일 IO.SYS
적용 윈도우 버전
윈도우 95, 윈도우 98, 윈도우 ME, 모든 DOS 버전
윈도우 95, 윈도우 98, 윈도우 ME, 모든 DOS 버전
윈도우 2000 이후 통합된 NT 커널 외의 이전 윈도우들은(ME 포함) 다중 운영체제(멀티 부팅) 환경을 위해 설계되지 않은 운영체제들로 이는 오직 자기 자신만이 유일하게 컴퓨터에 설치되어 사용된다는 가정하에 개발된 운영체제들입니다.
이로 인해 윈도우 9x 버전의 윈도우들과 그 이전의 도스라는 운영체제는 특별한 부트 매니저를 가지고 있지 않습니다. 고로 자신의 시스템 파일 자체로 바로 부팅이 진행될 뿐 입니다. 즉, 이러한 버전의 윈도우들과 도스는 부트 섹터에서 바로 시스템 파일(IO.SYS) 을 찾도록 설계되어 있습니다.
도스와 윈도우 9x 버전의 윈도우들은 자신들의 포맷 도구로 포맷을 진행할 때 부트 섹터에 IO.SYS 파일을 찾도록 기록합니다.
바이오스 -> 첫 번째 디스크의 MBR -> 활성 파티션의 부트 섹터(IO.SYS) -> IO.SYS 로 직접 부팅 시작
윈도우 9x 와 도스가 아직도 필요한가는 많은 의문이 들지만 그래도 간혹 사용은 되니 간단하게라도 다루도록 하겠습니다. 근데 윈도우 9x 버전들은 사실상 현재는 사용되지 않고 있다고 볼 수 있고 간혹 도스가 사용되는데 도스는 디스크에 설치해놓고 NTLDR 과 BOOTMGR 에서 접근하는 것 보다는 GRUB 에서 이미지 파일 형태로 접근하는 방법이 더 많이 사용됩니다.
아무튼 일단 관련 내용은 모두 다루게 될 겁니다. 물론 나중에 ^^;
윈도우와 부트 매니저 그 상관 관계
포스팅이 또 길어지는 경향이 보이지만 굉장히 중요하고 또 많은 분들이 헷갈려하는 내용인지라 짧게 이야기하도록 하겠습니다. 얼마나 중요하냐면 박스 쳐 놓고 빨간 색으로 칠할 정도로 중요합니다.
부트 매니저는 자기 자신의 운영체제만 부팅시킬 수 있도록 설계되어 있는게 보통입니다.
윈도우의 부트 매니저는 확실하게 자기에게 맞는 윈도우 버전만 부팅시킵니다.
윈도우의 부트 매니저는 확실하게 자기에게 맞는 윈도우 버전만 부팅시킵니다.
이것을 확실하게 기억하세요. 여기에서 굉장히 많은 오해가 일어납니다. 윈도우 부트 매니저를 중심으로 정확하게 정리를 해보죠.
1. NTLDR 부트 매니저 자체는 오직 그에 맞게 설계된 윈도우 2000, 윈도우 XP, 윈도우 서버 2003 만 부팅시킬 수 있습니다. NTLDR 부트 매니저 자체로는 죽었다 깨어나도 윈도우 비스타, 윈도우 7, 윈도우 8, 윈도우 서버 2008, 윈도우 서버 2008 R2 를 부팅시킬 수 없습니다.
2. BOOTMGR 부트 매니저 자체는 오직 그에 맞게 설계된 윈도우 비스타, 윈도우 7, 윈도우 8, 윈도우 서버 2008, 윈도우 서버 2008 R2 만 부팅시킬 수 있습니다. BOOTMGR 부트 매니저 자체로는 죽었다 깨어나도 윈도우 2000, 윈도우 XP, 윈도우 서버 2003 을 부팅시킬 수 없습니다.
3. 윈도우 9x 계열과 도스는 부트 매니저 자체가 없습니다. 그들이 부팅되기 위해선 시스템 파일을 직접 불러와야 합니다. 이러한 시스템 파일은 부트 섹터에서 불러오게 됩니다. 즉, 그들에겐 부트 섹터가 부트 매니저인 셈입니다.(* 나중에 중요)
2. BOOTMGR 부트 매니저 자체는 오직 그에 맞게 설계된 윈도우 비스타, 윈도우 7, 윈도우 8, 윈도우 서버 2008, 윈도우 서버 2008 R2 만 부팅시킬 수 있습니다. BOOTMGR 부트 매니저 자체로는 죽었다 깨어나도 윈도우 2000, 윈도우 XP, 윈도우 서버 2003 을 부팅시킬 수 없습니다.
3. 윈도우 9x 계열과 도스는 부트 매니저 자체가 없습니다. 그들이 부팅되기 위해선 시스템 파일을 직접 불러와야 합니다. 이러한 시스템 파일은 부트 섹터에서 불러오게 됩니다. 즉, 그들에겐 부트 섹터가 부트 매니저인 셈입니다.(* 나중에 중요)
뭔가 이상하지 않나요? 분명 윈도우 7 과 윈도우 XP 를 멀티 부팅으로 꾸며놓고 잘 사용하고 있는데 말이죠. BOOTMGR 부트 매니저가 윈도우 XP 를 부팅시킬 수 없다면 BOOTMGR 의 BCD 에 꾸며놓은 윈도우 XP 에 관한 부팅 설정은 어떻게 된 것일까요? (윈도우 7 설치시 자동으로 꾸몄다고 하더라도)
간단하게 이야기 하도록 하겠습니다.
BOOTMGR 이 자신의 계열이 아닌 윈도우 버전들을 부팅시키지 못하는 것엔 변함이 없습니다. 그러나 우리가 알아야 할 것은 거의 대부분의 부트 매니저들은 자신이 직접 부팅시킬 수 없는 운영체제를 위해 해당 운영체제를 부팅시킬 수 있는 부트 매니저에게 부팅의 제어권을 넘겨주는 방법을 사용한다는 겁니다.
이를 통해 부트 매니저들은 자신이 관리 가능한 운영체제 외의 다른 운영체제와의 멀티 부팅도 지원을 하는 것입니다. 이는 윈도우의 BOOTMGR 부트 매니저와 NTLDR 부트 매니저도 마찬가지입니다.
결론적으로 보자면 BOOTMGR 은 NTLDR 을 불러오는 방법을 사용합니다. 그리고 그를 통해 윈도우 XP 는 부팅이 될 수 있는 것이죠.(다만 BOOTMGR 에서 NTLDR 을 읽은 것은 가능하지만 NTLDR 은 BOOTMGR 을 읽는 것을 지원하지 않습니다.)
여기까지만 하고 나머지 내용은 멀티 부팅 단계에서 그림까지 곁들여서 다시 한 번 자세하게 이야기를 해 보도록 하죠. 아직 설명할 것이 많아서 그게 언제일지는 모르겠지만...
부트 매니저와 부트 로더
운영체제의 커널을 메모리에 적재하고 사용할 수 있게 시동하는 파일이나 프로그램을 부트 로더 또는 부트 매니저라고 부릅니다.
NTLDR 은 NT LoaDeR 의 약자이죠. 즉, NT 윈도우를 위한 로더 프로그램이라는 의미입니다. GRUB(4DOS) 의 예를 봐도 GRLDR 은 GRub LoaDeR 의 약자로 GRUB 의 로더 프로그램임을 알 수 있습니다. 이러한 부트 로더들은 자체로 윈도우를 시동하는 로더이며 동시에 부팅을 총괄하는 매니저이기도 합니다.
그래서 지금까지는 부트 로더 = 부트 매니저로 서로 동일한 의미로 별 구별없이 불러 왔죠.
그런데 BOOTMGR 은 BOOT ManaGeR 의 약자입니다. 왜 갑자기 기존까지(그리고 다른 운영체제가) 잘 사용해왔던 로더라는 이름을 버리고 매니저라는 좀 더 상위 개념의 이름을 사용하게 되었을까요?
그것은 BOOTMGR 이 부팅을 총괄하는 매니저는 맞지만 운영체제를 시동시키는 로더는 아니기 때문입니다. 그럼 7 계열 윈도우들을 부팅시키는 실질적인 로더는 무엇일까요? 바로 Winload.exe 라는 파일입니다.(이는 윈도우에 내장되어 있습니다.)
XP 계열 버전의 윈도우들이 부트 로더 하나로 움직이는데 반해(부팅 설정도 가지고 있고 직접 윈도우를 부팅도 시키고, GRUB 도 사실상 마찬가지고, 여기까진 로더 = 매니저)
7 계열 버전의 윈도우에선 매니저 개념의 BOOTMGR 을 두고(모든 부팅 설정은 이쪽이 관리하고) 로더는 분리시켜(실질적인 부팅은 이쪽이 하고) 윈도우 자체에 내장시켜 버렸습니다. (그래서 로더 이름도 윈도우 로더가 되었죠. 다른 건 못해! 그냥 자기가 포함된 윈도우만 부팅시킬 줄 아는 녀석!)
즉, 지금까지 부트 로더 = 부트 매니저라고 생각했던 통념대로 이름을 정하면 혼선이 발생하게 되니 정확하게 BOOTMGR 은 매니저로 Winload.exe 는 로더로 나누어 이름을 정하게 된 것입니다.
비스타 이후 윈도우가 매니저와 로더를 분리시키고 로더를 윈도우 자체에 내장시키게 된 것은 HDD, DVD, USB 등 여러 매체에서 이용되는 윈도우의 모든 부팅 환경을 하나로 통합하고 다른 부트 로더(매니저)들의 지원을 좀 더 원할하게 하기 위한 것으로 보입니다.(EFI 의 GPT 시스템도 고려를 해야 했을 것이고, 뭐 필요하니 자기들이 알아서 잘 설계했겠죠. ^^;)
실제로 윈도우 XP 설치 CD 의 로더는 SETUPLDR.BIN 으로 NTLDR 과는 다른 반면 윈도우 비스타부터는 설치 DVD 나 HDD 에 설치된 윈도우나 모두 BOOTMGR + Winload.exe 를 사용하는 것으로 동일해졌죠.(구조 및 사용법 모두 동일합니다. 아주 마음에 들어요.)
또한 다른 부트 로더(매니저) 파일들을 불러오는 작업도 상당히 유연하고 일관되게 작업이 바뀌었습니다.
어쨌든 BOOTMGR 과 NTLDR, GRLDR 등이 모두 동등한 위치에 속하는 부트 매니저라는 사실은 변함이 없습니다. 제 글에서는 이들을 모두 부트 매니저라고 통일하여 부르도록 하겠습니다. 간혹 부트 로더라고 부르더라도 아 그냥 같은 말이구나 라고 생각하시면 됩니다.
운영체제의 커널을 메모리에 적재하고 사용할 수 있게 시동하는 파일이나 프로그램을 부트 로더 또는 부트 매니저라고 부릅니다.
NTLDR 은 NT LoaDeR 의 약자이죠. 즉, NT 윈도우를 위한 로더 프로그램이라는 의미입니다. GRUB(4DOS) 의 예를 봐도 GRLDR 은 GRub LoaDeR 의 약자로 GRUB 의 로더 프로그램임을 알 수 있습니다. 이러한 부트 로더들은 자체로 윈도우를 시동하는 로더이며 동시에 부팅을 총괄하는 매니저이기도 합니다.
그래서 지금까지는 부트 로더 = 부트 매니저로 서로 동일한 의미로 별 구별없이 불러 왔죠.
그런데 BOOTMGR 은 BOOT ManaGeR 의 약자입니다. 왜 갑자기 기존까지(그리고 다른 운영체제가) 잘 사용해왔던 로더라는 이름을 버리고 매니저라는 좀 더 상위 개념의 이름을 사용하게 되었을까요?
그것은 BOOTMGR 이 부팅을 총괄하는 매니저는 맞지만 운영체제를 시동시키는 로더는 아니기 때문입니다. 그럼 7 계열 윈도우들을 부팅시키는 실질적인 로더는 무엇일까요? 바로 Winload.exe 라는 파일입니다.(이는 윈도우에 내장되어 있습니다.)
XP 계열 버전의 윈도우들이 부트 로더 하나로 움직이는데 반해(부팅 설정도 가지고 있고 직접 윈도우를 부팅도 시키고, GRUB 도 사실상 마찬가지고, 여기까진 로더 = 매니저)
7 계열 버전의 윈도우에선 매니저 개념의 BOOTMGR 을 두고(모든 부팅 설정은 이쪽이 관리하고) 로더는 분리시켜(실질적인 부팅은 이쪽이 하고) 윈도우 자체에 내장시켜 버렸습니다. (그래서 로더 이름도 윈도우 로더가 되었죠. 다른 건 못해! 그냥 자기가 포함된 윈도우만 부팅시킬 줄 아는 녀석!)
즉, 지금까지 부트 로더 = 부트 매니저라고 생각했던 통념대로 이름을 정하면 혼선이 발생하게 되니 정확하게 BOOTMGR 은 매니저로 Winload.exe 는 로더로 나누어 이름을 정하게 된 것입니다.
비스타 이후 윈도우가 매니저와 로더를 분리시키고 로더를 윈도우 자체에 내장시키게 된 것은 HDD, DVD, USB 등 여러 매체에서 이용되는 윈도우의 모든 부팅 환경을 하나로 통합하고 다른 부트 로더(매니저)들의 지원을 좀 더 원할하게 하기 위한 것으로 보입니다.(EFI 의 GPT 시스템도 고려를 해야 했을 것이고, 뭐 필요하니 자기들이 알아서 잘 설계했겠죠. ^^;)
실제로 윈도우 XP 설치 CD 의 로더는 SETUPLDR.BIN 으로 NTLDR 과는 다른 반면 윈도우 비스타부터는 설치 DVD 나 HDD 에 설치된 윈도우나 모두 BOOTMGR + Winload.exe 를 사용하는 것으로 동일해졌죠.(구조 및 사용법 모두 동일합니다. 아주 마음에 들어요.)
또한 다른 부트 로더(매니저) 파일들을 불러오는 작업도 상당히 유연하고 일관되게 작업이 바뀌었습니다.
어쨌든 BOOTMGR 과 NTLDR, GRLDR 등이 모두 동등한 위치에 속하는 부트 매니저라는 사실은 변함이 없습니다. 제 글에서는 이들을 모두 부트 매니저라고 통일하여 부르도록 하겠습니다. 간혹 부트 로더라고 부르더라도 아 그냥 같은 말이구나 라고 생각하시면 됩니다.
그래서 사실 7 계열 윈도우의 정확한 부팅 순서는 BOOTMGR -> Winload.exe -> 윈도우 부팅 시작이지만 Winload.exe 는 생략하였습니다. 나중에 설명을 위해 이러한 전체 과정이 필요한 부분이 있는데 그건 그 때 이야기 하도록 하겠습니다.