본문 바로가기

Job Notes/File System

[펌] (4) FAT32 구조 (부트레코드부터~)

지난번에는 FAT32 파일시스템의 구조에 대해 알아보았습니다.^^

기억이 가물가물 하지만 되새겨보면, FAT32 파일시스템에는 MBR 섹터가 있고, 부트레코드(PBR) 섹터가 있으며,

PBR 섹터속에는 Volume ID라는 정보가 들어 있고 FAT #1, FAT #2, Cluster(파일과 디렉토리) 영역이 있다고 했습니다. 기억이 잘 안나시면 아래의 그림을 참고하세요.^^

(1,2,3,4,5 순서로 번호를 매겨 놓았습니다.)


사용자 삽입 이미지


위의 그림은 FAT32 구조를 나타냅니다. 여기서 FAT32 파일시스템이람 함은 MBR을 제외한 부분을 말합니다.

왜냐하면, MBR은 파티션 정보만을 가지고 있고 실제로 파티션이 시작하는 부분은 PBR 섹터부터이기 때문입니다.


MBR 섹터에는 위의 그림에서 보이듯, 총 4개의 파티션 정보가 있습니다. 즉, Partition1, Partition2, Partition3, Partition4 입니다.


파티션 테이블 - Partition1 (Partition1,2,3,4 모두 같은 형식입니다.^^)

사용자 삽입 이미지


왠지 복습하는 기분이 드네요^^;

위의 그림이 파티션 테이블을 나타내는데, 여기서 LBA Begin 부분에는 부트레코드가 위치하는 주소값이 들어 있다고 했습니다. LBA Begin에 들어있는 값은 부트레코드의 주소이니까 주소를 따라가 보면 부트레코드 섹터(PBR)를 찾을 수 있겠죠?^^

부트레코드(PBR)는 파티션 개수만큼 존재하게 됩니다. SD메모리는 (저용량일 경우) 파티션이 하나이므로 부트레코드가 하나이지만, 예를들어, PC에서 사용하는 하드디스크의 경우, 아래의 그림과 같이 파티션을 C:와 D:로 나눴다면, 파티션이 2개 이니까 부트레코드도 2개가 존재하게 됩니다.^^


사용자 삽입 이미지




이처럼 파티션을 2개로 잡았으면 C:와 D:드라이브 각각에 부트레코드(PBR)가 존재한다는 것을 알았습니다. C:와 D: 각각의 부트 레코드 섹터를 찾아가려면 아래와 같이 파티션 테이블인 Partition1과 Partition2를 참조하면 됩니다. 즉, C:의 부트레코드 주소를 알고 싶으면 Partition1의 LBA Begin에 들어 있는 값을 참조하고, D:의 부트레코드 주소를 알고 싶으면 Partition2의 LBA Begin에 있는 값을 읽으면 됩니다.^^ (아래의 그림을 보면 쉽게 이해할 수 있을 것입니다.^^)

사용자 삽입 이미지


이제까지 MBR 섹터에서 PBR 섹터로 진입하는 과정을 알아보았습니다.

PBR 섹터를 찾았으니, 다음에는 PBR 섹터에 들어 있는 Volume ID에 대해 알아보기로 하겠습니다.^^



복습겸 용어 정리를 하고 넘어가면,


MBR = 마스터 부트 레코드 = 512 바이트

PBR = 파티션 부트 레코드 = 부트레코드 = 512 바이트

Volume ID는 = PBR의 일부분입니다. 기억나시죠?^^



-------------------------------------------------------------------------------------------------------
아래의 그림은 FAT32 파일시스템을 나타냅니다. 즉, MBR을 제외한 부분을 FAT32 파일시스템이라 부릅니다.^^

이제 Volume ID 정보가 들어 있는 부트레코드섹터(PBR)에 대해 알아보겠습니다.^^


FAT32 파일시스템의 첫 번째 섹터는 파티션 부트 레코드(PBR)라고 부르는 영역입니다.

PBR은 아래의 그림에서 분홍색 사각형에 해당하는 부분으로 크기는 512 바이트입니다.


사용자 삽입 이미지