IT 그리고 정보보안/Knowledge base

EBR(Extended Boot Record)

plummmm 2021. 4. 10. 06:00
반응형

MBR 디스크가 최대 4개의 파티션 테이블밖에 못가지는 한계점이 있다는 걸 알아보았다.
그럼 파티션을 5개 이상 쪼개고 싶을 땐 어떻게 해야되나.. 그래서 나온 개념이 EBR(Extended Boot Record)이다.
간단하게 말해, 하나의 파티션 테이블을 확장 파티션 테이블로 사용하여 추가적으로 파티션을 추가할 수 있다는 말.

기존에 MBR에 속한 파티션은 주 파티션(Primary Partition)이고 이 중 하나가 EBR 영역의 주소를 담고 있다.
원래 VBR로 점프해야될 녀석이 EBR로 점프한다. (VBR은 다음에 설명)

"테이블 엔트리 (Table Entry)" 라는 놈은 해당 영역의 주소를 담고 있으며, 부팅 과정 진행 시에 주소를 참조하여 거길 가르킨다.
여기서 "테이블 엔트리"를 한번 더 거치게되면(이중 포인터라고 생각하면 됨) 할당이 가능한 영역이 훨씬 더 넓어질 것이다. 글빨이 좋은 편이 아니라서 그림을 보며 다시 설명드림

EBR(Extended Boot Record)의 구조

4번째 Primary Partiton Table Entry가 가르키는 곳이 부트섹터가 아니라, 첫번째 EBR인 것을 확인할 수 있다.
이 말인 즉슨, 4번째 파티션을 확장 파티션으로 사용하겠다는 말이다.

EBR #1, #2의 구조를 보면 MBR과 할당되는 크기, 구조가 흡사한 부분이 많다. (그렇다고 같진 않다.)

크기 MBR(Master Boot Record) EBR(Extended Boot Record)
446 byte 마스터 부트 코드 사용안함
16*4 byte 주 파티션 테이블 엔트리 #1 현재 EBR의 시작점을 기준으로 한 부트섹터 까지의 Offset 값
주 파티션 테이블 엔트리 #2 현재 EBR의 시작점을 기준으로 한 다음 확장 파티션 EBR의
시작 위치 까지의 Offset 값 
주 파티션 테이블 엔트리 #3 사용안함
주 파티션 테이블 엔트리 #4 사용안함
2 byte 서명 (0x55AA) 서명 (0x55AA)

위 표는 MBR과 EBR의 구조를 대략적으로 설명한 표이다. ( Low address -> High address 순으로 할당 크기만 표기했다.)
EBR에선, MBR의 부트코드 자리는 사용되지 않고, 주 파티션 테이블이 위치한 자리에 EBR은 확장 파티션 테이블이 위치한다.

확장 파티션 테이블 또한 4개의 테이블 엔트리를 가진다.
- 첫번째 엔트리에는 현재 EBR이 가르키는 부트섹터 주소 Offset 값이 포함됨 (현재 EBR 시작 위치 + Offset = 현재 확장파티션 부트섹터)
- 두번째 엔트리에는 다음 확장파티션의 EBR의 시작 주소 Offset 값이 포함됨  (현재 EBR 시작 위치 + Offset = 다음 확장파티션 EBR 시작위치)
- 세번째, 네번째 엔트리는 사용되지 않는다.
그리고 마지막 시그니쳐는 MBR과 동일하다.

이러한 방식으로 파티션을 계속 생성할 수 있다. 물론 무한정 생성 가능한 것은 아니다.


참고 도서
<파일시스템 포렌식 분석> - 저자 브라이언 캐리어
<START UP - 디스크 포렌식> - 저자 이별


참고 URL
http://cappleblog.co.kr/590

반응형