들어가며
시스템은 파티션의 크기 정보, 파티션 위치정보를 MBR의 파티션 테이블에 저장한다.
이 파티션 테이블은 총 4개의 파티션 정보를 저장할 수 있다.
부팅할때 파일 시스템은 파티션 테이블에 저장된 파티션의 속성 위치, 크기정보를 통하여 파티션을 구분한다.
각 파티션은 파티션 종류에 따라 다르지만 일반적으로(FAT, NTFS) 파티션의 시작위치에 VBR(Volume Boot Record)가 생성된다.
MBR(Master Boot Record)
MBR은 모든 기억장치의 첫번째 섹터에 존재하며 크게 부트코드, 파티션테이블, 시그니처 3가지 영역으로 나눌 수 있다.
출처 : cappleblog.co.kr
다음은 HxD로 열어본 모습이다.
출처 : cappleblog.co.kr
부트 코드 영역은 총 446바이트로 구성된다.
이 영역은 파티션테이블로부터 부팅가능한 파티션을 찾아서 그 파티션의 부트 섹터를 호출해 준다.
파티션테이블 영역은 총 64바이트로 16바이트씩 4개의 엔트리를 가진다.
각 엔트리에는 파티션 부팅가능 여부, 파티션 시작위치, 총 섹터 개수, 파티션 유형 등 기본적인 정보를 저장한다. 시스템은 이 테이블을 바탕으로 파티션을 구분한다.
마지막으로 시그니쳐 영역은 해당 섹터가 문제가 없는 MBR 섹터인지 확인하기 위한 값으로써 55 AA라는 고정값을 가진다. 이는 MBR 뿐만 아니라 VBR에서도 해당된다.
VBR(Volume Boot Record)
볼륨의 첫번째 섹터를 의미하며 파티션이 나누어 지지 않은 저장장치에선 MBR대신 저장장치의 첫번째 섹터에 사용된다.
VBR의 첫번째 섹터에는 부트섹터가 위치한다.
여러 파일 시스템이 VBR헤더영역을 이용해 각각 설정값을 부여한 후 부팅 , 파티션 정보 저장 용도로 사용하고 있다.
참고: 포렌식 관점의 파티션 복구 기법에 관한 연구