컴퓨터 부팅 과정과 파티션에 대해 알아본다.

컴퓨터는 Booting 과정을 통해 디스크에 저장된 운영체제를 찾아 로딩하여 작업할 수 있는 운영 환경을 제공하는데, 사실 이 과정은 약속된 루틴(routine)으로 디스크의 특정 섹터를 읽는 방식을 사용한다.


MBR 파티션의 특징


하나의 물리적 디스크에 대해 MBR 파티션은 주 파티션(Primary Partition, 기본 파티션)과 확장 파티션(Extended Partition)으로 구분된다. 주 파티션은 최대 4개까지 만들 수 있으나 논리 드라이브를 위한 확장 파티션을 만들 경우에는 3개까지 만들 수 있다.
확장 파티션 안에 제한 없이 논리 파티션을 만들 수 있다. 단 컴퓨터에서 사용 가능한 드라이브 문자는 알파벳 문자로 제한되며 FDD를 위해 예약된 A와 B를 제외하면 24개의 드라이브 문자를 사용할 수 있다.
운영체제를 설치할 때는 주 파티션에 설치하는데, 이때 디스크의 첫 번째 섹터에는 마스트 부트 레코드(MBR : Master Boot Record)가 기록되고, 운영체제를 설치하지 않은 다른 주 파티션에는 파티션 부트 레코드(PBR : Partition Boot Record)가 기록되며, 논리 파티션에는 EBR(Extended Boot Record)이 기록된다.

PBR에는 Booting partition인지 구별하는 플래그(Active/None)와 파티션 타입 아이디, 파티션의 시작과 끝, 드라이버 볼륨 및 파일 시스템 정보가 기록된다.
MBR에는 추가로 운영체제의 로딩에 사용되는 부트 로더 위치 정보가 기록된다.


▲ MBR 파티션 구조


GPT 파티션의 특징

GPT 파티션은 파티션 엔트리를 128바이트로 늘려 최대 128개의 주파티션을 만들 수 있으므로 확장 파티션은 사용하지 않는다.
GPT 파티션은 LBA(Logical Block Addressing) 주소 체계를 사용하므로 MBR 파티션의 CHS(Cylinder-Head-Sector) 주소 체계의 2TB보다 훨씬 큰 9.4ZB(Zeta Byte)까지 사용할 수 있다.
GPT 파티션에 대한 읽기/쓰기 작업은 Windows 7 64bit 이상의 운영체제에서 가능하고 32bit Windows 7과 Vista, XP는 읽기만 가능하다는 점도 유의하기 바란다.
GPT 파티션에도 Protective MBR이 있는데, 이는 GPT를 인식하지 못하므로 운영체제가 빈 파티션으로 알고 덮어쓰는 것을 방지하기 위한 용도이다.


컴퓨터 Booting시 운영체제의 로딩 과정


컴퓨터의 전원을 켜면 BIOS가 POST 과정을 수행한 후 운영체제를 적재하기 위해 MBR이나 GPT 파티션에서 부트 로더 위치를 알아내고 부트 로더 프로그램을 실행 후 제어권을 넘겨주도록 설계되어 있다.
Windows XP의 부트 로더는 NT로더(NTLDR)가 사용되며, Windows Vista부터 Windows 10까지는 부트매니저(BOOTMGR)가 사용되며, 리눅스 계열 운영체제는 LILO나 GRUB가 사용된다.

MBR 파티션에서 Booting 할 때는 BIOS가 POST 과정이 끝나면 BIOS의 부트스트랩 로더가 디스크의 첫 번째 섹터에 있는 MBR에서 부트 로더 위치를 알아내서 부트 로더를 실행하고 제어권을 부트 로더에 넘겨준다. 부트 로더는 부트 정보 파일(Windows XP는 BOOT.INI, Windows Vista부터 Windows 10까지는 BCD파일)을 참조하여 운영체제 커널을 로드한다.

GPT 파티션에서 Booting 할 때는 BIOS가 POST 과정이 끝나면 UEFI Firmware가 BIOS로부터 제어권을 넘겨받아 GPT 파티션의 맨 앞에 생성되는 EFI의 GUID를 식별하여 부트 로더를 실행하고 제어권을 부트 로더에 넘겨준다.
부트 로더에 의해 운영체제 커널을 로드하는 절차는 동일하다.

멀티 부팅 운영체제의 경우는 멀티 부팅 메뉴에서 사용자가 운영체제를 선택하면 비로소 해당 운영체제 커널(명령어 처리기)을 로드하는 프로그램이 작동한다.

Windows XP는 NTDETECT.COM 프로그램이 BOOT.INI 파일을 참조하여 운영체제 커널을 로드하고, Windows Vista부터 Windows 10까지의 운영체제에서는 WINLOAD.EXE 프로그램이 BCD 파일을 참조하여 운영체제 커널을 찾아 메모리에 로딩하여 실행한 후 제어권을 넘겨준다.

+ Recent posts