Piki's Play
서버 기반 파티션 - GPT 파티션 본문
6.3 GPT 파티션 (GUID Partition Table)
※ 특징
- 주로 고성능 서버에서 사용하는 GPT 파티션은 중요한 데이터 구조체 복사본을 관리한다.
- IA64 시스템들은 IA32가 가지고있는 BIOS가 없는 대신에 EFI(Extensible Firmware Interface)가 존재한다.
여기서 EFI는 비 인텔 플랫폼에서 사용이가능하고, 128개 파티션 그리고 64비트의 LBA를 사용하는 GPT파티션을 사용한다.
▶ 전체 개념
- GPT 디스크들은 5개의 영역으로 나눌 수 있다.
- 첫 번째 보호용 MBR은 섹터 0에 존재하고 한 개의 엔트리가 있는 도스 파티션을 포함한다. 이는 전체 디스크에 있는 0xEE 타입의 파티션을 위한 것이다.
- EFI는 실제로 파티션을 사용하지 않는다.
- 두 번째 GPT 헤더는 섹터 1에 존재하고 GPT디스크가 만들어질때 고정된 파티션 테이블 위치와 크기를 정의한다.
(윈도우는 엔트리 수를 128개로 제한한다.)
- GPT 헤더는 오류나 수정을 탐지하기 위해 헤더의 체크섬을 포함한다.
- 세 번째 파티션테이블은 시작과 끝 주소, 유형 값, 이름, 속성 플래그, GUID 값을 포함한다.
=> 이중에 128비트로 이루어진 GUID는 파티션 테이블 생성시 설정되고, 시스템의 고유값이 된다.
- 파티션 공간은 가장 큰 공간으로 이 영역의 시작과 끝은 GPT헤더에 정의되어 있다.
- 마지막 영역에는 GPT헤더와 파티션 테이블 복사본이 존재한다.
▶ 데이터 구조체
- GPT 디스크의 첫 영역은 '도스파티션 테이블'을 사용한다.
- 두 번째 영역에 존재하는 GPT 헤더는 디스크 레이아웃을 설명하고 다음과 같다.
-> 이 값들을 이용해서 공간들의 위치를 포함한 레이아웃들을 알 수 있다.
ex)
분석)
- 32~39바이트 : 헤더 복사본 위치, 섹터 120,103,199(0x0728a1af)
- 40~47바이트 : 파티션 공간 시작
- 48~55바이트 : 파티션 공간 끝
- 72~79바이트 : 섹터 2에 파티션 테이블이 있음을 알려준다.
- 84~87바이트 : 각 엔트리는 32섹터가 필요한 128(0x80) 바이트임을 보여준다.
※ 각 테이블 엔트리는 다음 항목을 가진다.
※ GUID 값
- 128비트 타입값(GUID)는 파티션 내용을 구분한다. 시스템정보와 파일 시스템 둘 다 수집하는데 GPT디스크에 파티션들을 이용할 수 있다.
- 타입과 맞는 시스템이 존재해야한다. 하지만 값들에 대한 리스트가 존재하지 않아서 회사마다 정의를 해두었다.
1. 인텔
2. 마이크로소프트
-> 윈도우는 임시파일과 데이터들을 위해 '예약된 파티션'을 사용한다. '주 파티션'은 기본 파티션이며 한개의 파일시스템이 위치한다. 'LDM 메타파티션'과 'LDM 데이터 파티션'은 다음장에서 설명한다.
※ GPT 파티션 테이블 엔트리의 64비트 '파티션 속성'은 3부분으로 나누어진다.
가장 하위비트 : 시스템이 파티션없이 동작가능할 때 1로 쓴다.
(↑ 사용자가 파티션을 지울 수 있는지 없는지 결정하기 위함)
1~47비트 : 정의x
48~63비트 : 원하는 특정 파티션 타입에 어떠한 데이터도 저장가능하다.
※ 기본적인 파티션 테이블의 내용 (GPT - 리틀엔디안)
- 첫 줄 바이트 0~15에는 GUID(파티션타입)이 있고 파티션 GUID는 두 번째 줄 바이트 16~31에 있다.
- 파티션 시작 주소는 32~39에서 담고있고, 섹터 32(0x0022)라는 것을 확인할 수 있다.
- 파티션 마지막 주소는 바이트 40~47에서 저장되어 있고, 4,096,000(0x003E8000)이다.
※ mmls를 실행한 결과는 다음과 같다.
-> 마지막에 파티션 테이블이 먼저오고 GPT 헤더가 다음에 온다. (앞에 그림과는 반대이다.)
▶ 분석 고려사항들
-> 분석하면서 GPT 디스크들을 접할 일은 거의 없다. (?!?!!) 하지만 리눅스를 GPT 디스크에 파티션을 나누는데 사용할 수 있다.
-> GPT는 복구의 용이를 위해 파티션 테이블 백업본을 갖는다. 섹터0 섹터1과 같은 비사용공간, 비사용 엔트리는 데이터를 숨길 수 있다.
p.s 오늘은 짧았다. (얘도 짧네)
'포렌식 > 파일시스템 (파일시스템 포렌식분석)' 카테고리의 다른 글
다중 디스크 봄륨 - 디스크 스패닝 (0) | 2020.02.10 |
---|---|
Chapter 7. 다중 디스크 볼륨 - RAID (0) | 2020.02.08 |
서버 기반 파티션 - 썬 솔라리스 슬라이스 (0) | 2020.02.05 |
Chapter 6. 서버 기반 파티션 - BSD 파티션 (0) | 2020.02.03 |
PC기반 파티션 - 이동식 매체 (0) | 2020.02.01 |