본문 바로가기

디스크와 파티션

[디스크 정보] 디스크의 종류와 용어 3 장 - 활성, 시스템, 부팅, 페이지 파일, 크래시 덤프

Ⅰ. 윈도우의 다섯 가지 파티션 상태

윈도우 7 에는 시스템, 부팅, 페이지 파일, 활성, 크래시 덤프라는 다섯 가지의 파티션 상태가 존재합니다.[윈도우 XP 도 윈도우 7 과 같은 파티션 상태들이 존재하지만 특별히 분리되어 있지 않는 한 시스템 파티션 하나로 표시됩니다. 하지만 분리될 경우 표시해 줍니다.]


다섯 가지의 파티션 상태


이러한 구분은 디스크 차원에서 나누어지는 주 파티션, 확장 파티션, 논리 드라이브와 같은 분류와는 달리 윈도우 차원에서 나누어지고 관리되는 분류 입니다.[단! 활성 파티션은 디스크 차원에서 관리 됨] 그렇다면 이러한 파티션들은 각각 무엇을 의미하는 것일까요? 이번 포스팅에서는 이러한 파티션들이 무엇을 의미하는지에 대해서 알아보도록 하겠습니다.

※ 이 포스팅에서 이야기하는 활성 파티션은 MBR 디스크 - 기본 디스크 상태를 기준으로 합니다.




Ⅱ. 활성 파티션(Active Partition)

활성 파티션은 나머지 네 종류의 파티션과 달리 윈도우 차원에서 관리되는 것이 아닌 디스크 차원에서 관리되는 파티션임을 알아두십시요. 활성 파티션은 시스템 파티션과 굉장히 밀접한 관련이 있습니다.


활성 파티션은 x-86 프로세서 기반 IBM PC 의[쉽게 우리가 일반적으로 사용하는 컴퓨터] 컴퓨터 부트에서 유래된 파티션 입니다. x-86 프로세서 기반 IBM PC 는 운영체제와 컴퓨터를 시작할 수 있도록 하나의 주 파티션을 컴퓨터의 부팅에 사용할 것이라고 알려 주어야 합니다. 즉, 반드시 하나의 주 파티션을 부팅용으로 명시해 주어야 하는 것 입니다. 이 때 이렇게 부팅용으로 정의된 주 파티션을 활성 파티션이라고 합니다.




1. 디스크가 활성 파티션을 정의하는 방법

디스크가 활성 파티션을 정의하는 방법은 MBR 의 파티션 테이블에서 해당 파티션의 상태를 Active 로 마킹하는 것 입니다. 지난 포스팅에서 살펴본 MBR 과 파티션 레코드(엔트리)의 구조를 다시 한 번 상기해 보도록 하겠습니다.

마스터 부트 레코드의 구조[Structure of a Master Boot Record]
주소 설명 크기
Bytes
16진수 8진수 10진수
0000 0000 0 코드 영역[code area] 440
(max. 446)
01B8 0670 440 디스크 서명[disk signature (optional)] 4
01BC 0674 444 비어 있음[Usually nulls; 0x0000] 2
01BE 0676 446 프라이머리 파티션 테이블
네 개의 16 Byte 엔트리
[Table of primary partitions
(Four 16-byte entries, IBM partition table scheme)]
64
01FE 0776 510 55h MBR 서명[MBR signature];
0xAA55
2
01FF 0777 511 AAh
MBR, 전체 크기: 446 + 64 + 2 = 512

16-Byte 로 된 파티션 레코드의 구조
오프셋 필드 길이 설명
0x00 1 Byte 파티션 상태 (0x80 = 시동 가능, 0x00 = 부팅불가, 기타 = 비정상)
0x01 3 Byte 파티션의 첫 번째 섹터의 실린더-헤드-섹터 주소
0x04 1 Byte 파티션 종류
0x05 3 Byte 파티션의 마지막 실린더-헤드-섹터 주소
0x08 4 Byte 파티션의 첫 번째 섹터의 LBA
0x0C 4 Byte 파티션의 크기 (단위: 섹터) [* 전체 섹터의 개수]


그럼 표를 살펴보죠. MBR 에서 파티션 테이블은 해당 섹터의 01BE 부터 시작해서 16 Byte 씩 4 개의 파티션 레코드(엔트리)를 가집니다. 즉 01BE~01FD 까지의 영역이 파티션 테이블 영역이라는 것이죠.[위의 표에 모두 나와 있는 내용입니다.]

다시 파티션 레코드에서 첫 번째 필드에(첫 번째 바이트에) 해당 파티션의 상태를 기록하게 되는데 파티션 상태는 총 세 가지의 값을 가지게 됩니다.[이 때의 파티션 상태는 윈도우가 관리하는 파티션 상태가 아닌 디스크가 관리하는 세 가지 파티션 상태를 의미합니다.]

  • 0x80 - 활성 파티션, Bootable, Active
  • 0x00 - 일반 파티션, Non-bootable
  • 기타 - 비정상, Invalid

활성 파티션은 이러한 파티션 엔트리에서 첫 번째 필드가 0x80 으로 마킹된 파티션을 의미합니다. 그럼 누가 이걸 마킹하느냐? 윈도우의 디스크 관리, 윈도우의 DiskPart, GDisk, 파티션 위자드와 같은 디스크 & 파티션 관리 프로그램들이 마킹하는 겁니다.


별로 쓰잘때기 없다고 생각되지만 한 번 실제로 살펴보도록 하죠. 디스크에 직접 접근하여 섹터의 내용을 살펴볼 수 있는 프로그램이 필요합니다. 저는 시만텍사의 디스크 & 파티션 관리 툴인 GDisk 를 사용하도록 하죠.[GDisk 의 사용법은 이 포스팅에서 이야기하지 않습니다.] 제 실제 시스템의 두 번째 디스크를 예제로 사용하도록 하겠습니다.


보시는 바와 같이 그냥 평범한 일반 파티션 입니다. 이 디스크의 MBR 영역의 내용을 살펴보도록 하죠. MBR 은 디스크의 첫 번째 섹터에 위치해 있습니다. 첫 번째 섹터의 주소는 논리적인 섹터 주소로 0 이고 물리적인 섹터 주소로는 CHS 0:0:1 입니다.[보실 분들은 사용하는 프로그램을 통해 해당 주소를 찾아보세요.] 내용을 보도록 하죠.

01BE ~ 01FD 까지의 파티션 테이블 영역


파티션 테이블 영역과 네 개의 파티션 레코드(엔트리)를 보기 편하게 표시해 본 것 입니다. 그 중 첫 번째 파티션의 첫 번째 필드의[1 Byte] 값이 00 임을 확인할 수 있습니다.[해당 디스크에 파티션이 하나라 나머지 파티션 레코드는 비어 있습니다.] 이것은 일반 파티션을 의미합니다. 이제 이 파티션을 활성 파티션으로 설정하고 다시 살펴보도록 하죠.

파티션을 활성 파티션으로 설정한 후 다시 살펴 본 모습


해당 파티션 레코드의 첫 번재 필드 값이 80 으로 변경된 것을 확인할 수 있죠. 이제 이 파티션은 활성 파티션이라는 의미입니다. 익숙한 디스크 관리를 통해 보죠.

파티션이 활성으로 설정된 모습


이제 디스크가 활성 파티션을 관리하는 방법에 대해서 확실히 이해하시겠죠?


하나의 디스크에는 하나의 활성 파티션만 존재하는 것이 정상입니다. 그래서 디스크 & 파티션 관리 프로그램들은 하나의 주 파티션을 활성으로 설정하면 해당 파티션 엔트리의 파티션 상태를 80 으로 마킹하고 기존에 다른 활성 파티션이 있었다면 해당 파티션 엔트리의 파티션 상태를 00 으로 마킹하여 기존 활성 파티션을 자동으로 풀어 줍니다. 간혹 프로그램에 따라 이 작업을 안 하고 하나의 디스크에 여러 개의 주 파티션을 활성으로 마킹할 수도 있지만 어디까지나 정상적인 것은 아닙니다.

그러니 여러분들도 그저 재미로 헥스 에디터 등을 통해 임의로 하나의 디스크에 활성 파티션을 여러 개로 만들어 두는 작업은 되도록 권장하지 않습니다. 이런 경우 첫 번째 활성 파티션을 자동으로 인식하여 큰 문제는 없지만 어떤 프로그램에서 문제를 일으키게 될 지 모르니까요.




2. IBM PC 의 부팅 구조

IBM PC 의 BIOS 는 컴퓨터의 부팅 과정에서 하드웨어의 체크를 모두 마친 후 첫 번째 디스크의 첫 번째 섹터로 이동을 합니다. 디스크의 첫 번째 섹터는 MBR 영역이죠. 이 MBR 영역에서 부팅용으로 정의된 주 파티션인 활성 파티션을 찾습니다. 활성 파티션을 찾으면 해당 파티션의 부트 섹터로 이동을 하여 부트 매니저를 찾고 부팅의 제어권을 운영체제에게 넘기는 것이죠.

이러한 IBM PC 의 부팅 과정으로 인해 시스템에 장착된 모든 디스크에 각각 활성 파티션을 설정할 수 있지만 실제로 부팅에 사용되는 활성 파티션은 오직 첫 번째 디스크의 활성 파티션 뿐 인 것 입니다.[그래서 다른 디스크의 활성 파티션으로 부팅을 하려면 해당 디스크를 CMOS 셋업에서 첫 번째 디스크로 설정해 주어야 하는 겁니다.] 이해하시겠죠?

디스크마다 활성 파티션을 설정할 수 있지만 IBM PC 의 부팅 구조상 실제로 사용되는 활성 파티션은 오직 첫 번째 디스크의 활성 파티션 뿐이다.


이러한 연유로 만약 첫 번째 디스크에 활성 파티션이 존재하지 않는다면? 컴퓨터는 부팅할 수 없습니다. 활성 파티션은 여기까지 입니다.






Ⅲ. 시스템 파티션

시스템 파티션이란 윈도우를 부팅시킬 수 있는 부트스트랩(부트 매니저) 파일을 가지고 있고 부팅을 진행하는 파티션을 의미합니다. 윈도우 7 의 부트스트랩 파일은 Bootmgr 파일과 BCD 이죠. 윈도우 XP 는 NTLDR, NTDETECT, Bootfont.bin Boot.ini 파일이구요. 이러한 해당 윈도우의 부트스트랩 파일이 위치한 파티션을 시스템 파티션이라고 합니다.

윈도우 7 의 부트스트랩(부트 매니저) 파일들


윈도우 XP 의 부트스트랩(부트 매니저) 파일들


그런데 윈도우의 이러한 부트스트랩 파일은 윈도우 설치 단계에서 반드시 첫 번째 디스크의 활성 파티션에 설치 됩니다. 그래서 윈도우에서 시스템 파티션은 무조건 활성 파티션인 것입니다. 만약 윈도우를 설치하고 난 후 사용자가 (첫 번째 디스크 내에서) 다른 파티션으로 활성 파티션을 변경하였다면 이러한 윈도우의 부트스크랩 파일들도 변경된 활성 파티션에 재설치 해 주어야만 윈도우가 정상적으로 부팅할 수 있습니다.


만약 윈도우 7 을 설치할 때 시스템 예약 파티션을 포함한 상태로 설치를 하였다면 윈도우 설치 프로그램은 시스템 예약 파티션을 활성 파티션으로 마킹하고 그로 인해 시스템 예약 파티션이 활성 파티션이자 시스템 파티션이 됩니다.

시스템 예약 파티션의 모습.







Ⅳ. 부팅 파티션

부팅 파티션이란 윈도우 시스템이 위치한 파티션을 의미합니다. 간단하게 윈도우 자체가[\Windows] 설치되어 있는 파티션이 바로 부팅 파티션이라고 생각하시면 됩니다. 이러한 부팅 파티션의 드라이브 문자는 제거하거나 변경할 수 없습니다.

쉽게 윈도우 폴더가 위치한 파티션을 부팅 파티션이라고 생각하면 된다.






Ⅴ. 페이지 파일 파티션

윈도우의 가상 메모리 파일인 페이징 파일이 위치한 파티션을 의미합니다.

페이징 파일의 모습


페이지 파일 파티션은 반드시 드라이브 문자가 할당되어 있어야 하며[안 그러면 설정 자체가 불가능] 부팅 파티션과 마찬가지로 페이지 파일 파티션은 드라이브의 문자를 제거하거나 변경할 수 없습니다. 만약 페이지 파일 파티션의 드라이브 문자를 변경하거나 제거하고자 한다면 먼저 윈도우의 가상 메모리 설정을 통해서 페이지 파일을 제거하고 윈도우를 재시작한 후 해야 합니다.

페이징 파일의 설정






Ⅵ. 크래시 덤프 파티션

윈도우가 치명적인 오류로 인해 정지되었을 때[공포의 블루 스크린] 멈춘 컴퓨터의 정보를 저장하게 되는데 이를 크래시 덤프(Crash Dump) 라고 합니다. 이 때 이 크래시 덤프 파일이 저장되는 파티션이 크래시 덤프 파티션입니다. 크래시 덤프는 %SystemRoot%\MEMORY.DMP(C:\Widnwos\MEMORY.DMP) 로 저장되며, 이 때문에 부팅 파티션이 크래시 덤프 파티션이 됩니다.

크래시 덤프의 설정


윈도우의 시작 및 복구 설정에서 시스템 오류시 디버깅 정보 쓰기를 (없음) 으로 설정하게 되면 C: 에 설정되어 있던 크래시 덤프는 해제 됩니다.

덤프 파일의 저장 위치를 다른 파티션으로 변경하여도 크래시 덤프 파티션의 위치는 변경되지 않는 것을 확인하였습니다. 강제로 블루 스크린에 빠지도록 만들어 덤프 파일을 새로 기록하게 되면 어떻게 될 지 모르겠으나 해당 상황을 강제로 연출할 방법이 마땅히 떠오르지 않아 실험은 해보지 못했습니다.



지금까지 디스크 관리에서 표시되는 디스크의 상태들이 무엇을 의미하는지 알아보았습니다. 다른 무엇보다 활성, 시스템, 부팅 파티션은 그 의미가 중요하기도 하거니와 혼동하기도 쉽기 때문에 정확하게 알아두시길 바랍니다. 또한 살펴 본 것과 같이 활성 파티션과 시스템 파티션은 윈도우의 부팅과 멀티 부팅 설정에 매우 밀접한 관련이 있습니다. 이러한 내용은 윈도우의 부팅에 대해서 다룰 때 불현듯이 튀어나올 수 있습니다. ^^; 이상입니다.