Digital Forensic [파일 시스템 과 파티션]
파일 시스템 과 파티션

섹터와 클러스터
- 섹터(Sector): Disk상의 데이터 저장 최소 단위
- 클러스터(Cluster): 파일의 Disk 할당 최소 단위

실제 메모장을 확인해보면 클러스터의 할당크기가 나와있다.

논리적 주소 지정: CHS Address
- C(Cylinder), H(Head), S(Sector)
- Cylinder와 Head는 0부터 시작하며 Sector는 1부터 시작
- 지정된 주소 크기가 작아 대용량 HDD에서는 사용하지 않음
논리적 주소 지정: LBA Address
- HDD의 모든 섹터를 논리적으로 1차원적인 Sector들로 나열
- 기존 2의 28승 (512 x 228 = 128GB) 내에서 섹터에 대한 주소 지정
- 128GB이상의 HDD의 경우 2의 48승 LBA 주소 지원
- LBA는 0부터 시작
파티션(Partition)이란?
- 연속된 저장 공간을 하나 이상의 연속되고 독립된 영역으로 나누어 서 사용할 수 있도록 정의한 규약

MBR (Master Boot Record)
- 일반적으로 X86 환경에서 사용되며 파티션에 대한 위치를 포함한 정보, OS 부팅을 위한 부트 코드(Boot Code) 등을 포함
- 부트 코드는 컴퓨터의 읽기 전용 기억장치(ROM)에 있는 부트로더 (Boot Loader 또는 부트스트랩로더)에 의해서 실행(메모리에 Load)
- 4개의 파티션 정보(Primary Partition Entry)를 포함하는 파티션 테이 블(Partition Table)을 가지고 있으며 확장 파티션에 의해서 4개 이상 의 Partition을 생성할 수 있음
MBR Partition Table scheme

MBR 영역(첫번째 섹터) 구조

Partition Entry
- CHS Address(28bit): C(10bit), H(8bit), S(6bit)

Ms-DOS Extended Partition (확장 파티션)
- MBR과 유사하며 첫 번째 섹터에 EBR(Extented Boot Record) 존재

Partition Entry의 CHS 해석 (1/2)
- CHS Address(28bit): C(10bit), H(8bit), S(6bit)
- Cylinder: 0 ~ 1023(최대 1024개), Head: 0~254(최대 255개), Sector: 1~63(최대 63개)
CHS -> LBA 변환
- LBA = (( CYLINDER * heads per cylinder + HEAD ) * sectors per track + SECTOR – 1
- LBA = CYLINDER * 255 * 63 + HEAD * 63 + SECTOR – 1
LBA -> CHS 변환
- CYLINDER = LBA / ( heads per cylinder * sectors per track )
- HEAD = ( LBA / sectors per track ) % heads per cylinder
- SECTOR = ( LBA % sectors per track) + 1
Partition Entry의 CHS 해석 (2/2)
- Partition Table Entry의 CHS가 FE BF D3 일 때
- CHS 값: C(0x2D3), H(0xFE), S(3E),

Partition-type Descriptor Samples

GUID Partition Table (GPT)
- Intel이 제안한 EFI(Extensible Firmware Interface)에서 사 용되는 Partition 체계
- 기존 PC BIOS로부터 GPT를 보호하기 위하여 0 Block을 Protective MBR로 사용
- MBR의 Partition Table Entry 의 Partition Type이 0xEE로 설정되어 있음
GPT Header (Block #1, LBA 1)

GPT Entry (Block #: 2 ~ 33 , LBA 2 ~33, 128 Entries)


Encase 사용
위의 정보를 참조하여 MBR의 Partition Table을 Encase를 이용하여 직접 값을 확인해보자!!.
OFFSET이 446이고 length 가16바이트 인 주소를 찾아가보면 위와 같이 16진수 hex 값을 확인할수 있다.
위의 hex값은 00 01 01 00 04 1F 3F 19 3F 00 00 00 81 CC 00 00 이다 이 값을 아래의 표를 참조하면 해당 값을 확인할수 있다.

위와 같이 직접 값을 찾아낼수도 있지만 Encase에서는 해당 값을 찾아주는 기능을 제공한다.