본문 바로가기
IT.데이터

GUID 파티션 테이블 GPT(GUID Partition Table) Partition Structure Analysis

by JROK 2023. 5. 3.

GUID 파티션 테이블에 대한 자세한 설명이 있어 쉽게 풀이하여 보았습니다.

 

1. EFI(Extensible Firmware Interface)

GPT 파티션은 최근에 개발된 파티션으로, MBR 파티션보다 더 많은 용량을 가질 수 있고, 데이터를 더 잘 보호할 수 있습니다. 이전에는 MBR 파티션만 사용했지만, 이제는 GPT 파티션도 많이 사용됩니다. GPT 파티션은 인텔에서 제안한 EFI라는 새로운 기술과 함께 사용됩니다. EFI는 BIOS를 대체하는 수단으로 사용됩니다. EFI는 GUI 인터페이스를 제공하고, 마우스를 사용할 수 있습니다. 또한, Pre-OS 소프트웨어를 구동할 수 있고, 다국어를 지원합니다. 이러한 기술들은 컴퓨터를 더 편리하게 사용할 수 있게 해줍니다. GPT 파티션에서는 128개의 주 파티션을 생성 할 수 있고, CRC(Cyclical Redundancy Check)를 이용해서 파티션 테이블을 보호할 수 있습니다. 중요한 데이터 구조는 볼륨의 끝에 복제본을 저장해서 장애가 발생하면 복구가 가능합니다.

2. GPT Structure

MBR Disk Structure Brief Layout
GPT Disk Structure Brief Layout

GPT 파티션은 MBR 파티션과는 다른 구조를 가지고 있습니다. 가장 큰 차이점은 GPT 파티션에는 GPT Header와 Partition Table이 2개씩 있다는 것입니다. 이러한 구조는, 앞 섹터에 존재하는 GPT Header와 Partition Table이 손상되더라도 백업 용도로 사용할 수 있도록 해줍니다. 이러한 구조는 파티션을 더욱 안전하게 보호할 수 있도록 도와줍니다. 

 

GPT Disk Structure Detail Layout

LBA 는 Sector 를 의미합니다

Protective MBR Hex Data  in HxD

GPT 파티션에서는 보호 기능이 강화되어 있습니다. 이러한 보호 기능 중 하나가 Protective MBR입니다. Protective MBR은, GPT 기반 부팅 시 BIOS 서비스를 통해 운영체제를 시작할 때 사용되는 첫 번째 섹터인 Boot Loader로 사용하기 때문에 존재합니다. 이 MBR은 0번 섹터에 위치하며, EFI를 지원하는 운영체제일 경우 해당 위치에 접근하지 않고, EFI에서 BIOS 에뮬레이션을 통해 접근합니다. Hex 데이터를 보는 방법은 이전의 MBR과 동일합니다. GPT에서 MBR을 사용하는 이유는, MBR을 사용하는 BIOS에서 오작동을 일으키지 않도록 하기 위해서 입니다. 또한, GPT 사용 시 MBR의 Partition Type을 0xEE로 설정하여 전체 GPT Drive를 표시하여 해당 드라이브가 GPT를 사용한다는 것을 운영체제에 알려줍니다. 

 

GPT header에는 Signature (0x200~0x207, 8 Byte) Revision (0x208~0x20B, 4 Byte) Header Size (0x20C~0x20F, 4 Byte) 등이 있습니다.

 

GPT Partition Entry

GPT Partition Entry Hex Data in HxD

GPT Partition Entry는 2번 섹터에 위치합니다. 일반적으로 GPT Partition Entry는 128바이트 크기로 되어 있으며, 각 파티션에 대한 대부분의 정보를 담고 있습니다. MBR의 파티션 테이블의 LBA 주소는 4바이트로 기록하지만, GPT는 8바이트로 기록합니다. 또한 GUID를 이용하여 각 파티션의 정보를 확인할 수 있습니다.

 

GPT Partition Entry

GPT Parition  Entry - Partition Type GUID  Hex Data in HxD

파티션의 타입을 표현하는 고유 정보를 GUID로 기록합니다. 이를 통해 파티션의 파일 시스템과 해당 파티션을 사용하는 운영체제 및 서비스 정보를 확인할 수 있습니다. 파티션 GUID 값을 알면 어떤 파티션인지 쉽게 확인할 수 있습니다. 이를 위해서는 아래 사이트에 있는 표에서 해당 GUID 값을 찾아보면 됩니다

 

그외에도 Unique Partition GUID (0x410~0x41F, 16 Byte) Frist LBA (0x420~0x427, 8 Byte)  Last LBA (0x428~0x42F, 8 Byte) Attribute Flags (0x430~0x437, 8 Byte) 등이 있습니다

 

 

생략된 추가 정보는 아래 블로그에서 확인하면 됩니다

출처 : https://blog.forensicresearch.kr/12

댓글