파티션, MBR, GPT, 볼륨
컴퓨터를 켜고 파일을 저장할 때, 파일이 어디에 어떻게 저장되는 것일까? 컴퓨터의 하드 드라이브는 단순한 저장 공간 이상이다. 사실, 이 저장 공간은 마치 커다란 도서관처럼 체계적으로 정리되어 있다. 이 도서관에는 여러 구획이 나누어져 있으며, 각 구획은 특정 목적을 위해 사용된다. 이러한 구획을 '파티션'이라고 부르고, 각 파티션은 우리가 쉽게 접근하고 사용할 수 있도록 논리적인 단위로 변환되는데, 이를 '볼륨'이라고 한다.
디지털 포렌식에서는 이러한 파티션과 볼륨을 분석하여 중요한 단서를 찾아내는 과정이 매우 중요하다.
이 글에서 파티션과 볼륨이 무엇인지, 그리고 이들이 어떻게 구성되고 사용되는지를 알아보자.
: 저장 장치는 MBR(GPT), 예약 영역, 부트 레코드, 파티션 등으로 구성되어 있다.
MBR(GPT) : 저장 장치의 첫 번째 섹터에 위치. 파티셔닝 정보를 저장한다.
PBR(VBR) : 각 포맷된 파티션의 시작 부분에 위치하여 파일 시스템의 물리적 레이아웃을 설명하는 BIOS 매개변수 블록과 OS 부팅을 시작하는 부트 로더의 부트스트랩 코드를 포함한다.
: 파티션이 나누어진 저장 장치의 첫 번째 섹터(512 B)
부트 코드(446B) + 파티션 테이블(64B)로 구성되어 있다.
MBR 파티션 테이블은 부팅 플래그 + 시작/끝 CHS 주소 + 파티션 타입 + 시작 LBA 주소 + 총 섹터 수 등의 정보를 포함한다.
: MBR의 파티션 관리 제한(~ 2 TiB)으로 인해 BIOS를 대체하기 위해 제안된 UEFI에서 제안한 파티션 테이블 레이아웃 표준이다.
GPT vs MBR 을 비교해보자.
각 파티션의 크기
MBR는 2 TiB (241 = 232 x 29)이고, GPT는 8 ZiB (273 = 264 x 29) 이다.
최대 파티션의 개수
MBR는 4개이고 GPT는 128개이다.
또한 GPT의 내부 구조는 MBR보다 복잡하다.
MBR 기반 S/W가 GPT 파티션을 잘못 인식하고 덮어쓰는 것을 방지하기 위해 Protective MBR가 포함되어 있다. 그리고 GPT 헤더 512B, GPT 엔트리 512B를 가지는 Primary GPT가 존재한다. 마지막으로 백업용으로 사용되는 Secondary GPT가 존재한다.
파티션은 물리적으로 연속된 섹터의 집합으로, 독립적인 저장 공간으로 사용될 수 있는 저장 장치 내의 분리된 영역이다. 파티셔닝 정보는 MBR/GPT에 저장된다. 반면 볼륨은 물리적 연속성과 상관 없이 논리적으로 연속된 섹터의 집합으로 파일 시스템으로 포맷된다. 윈도우에서는 볼륨에 C, D, F 등 드라이브 문자를 할당한다.
기본적으로 Partition ⊂ Volume의 포함 관계가 성립한다.
저장 장치는 파티션으로 나뉘고, 파티션은 물리적 볼륨으로 사용될 수 있다. 물리적 볼륨은 볼륨 그룹으로 결합될 수 있으며 이 볼륨 그룹에서 논리적 볼륨이 생성된다. 논리적 볼륨은 또 파일 시스템으로 포맷된다.
Storage Device → Partition → Physical Volume → Volume Group → Logical Volume → Filesystem
논리 볼륨 관리(LVM)은 기존 파티셔닝 관리 방식보다 유연하게 저장 공간을 할당하여 볼륨을 저장하는 방법이다.
이처럼 우리가 알고 있는 저장 공간은 기본적으로 위와 같은 체계를 통해 저장되고, 관리되고 있으므로 포렌식을 통해 유용한 증거 데이터를 얻기 위해서는 파티션과 볼륨의 구조를 명확히 알고 활용할 필요가 있다.