나의 기록, 현진록

FAT 파일 시스템 본문

-Computer Theory/OS

FAT 파일 시스템

guswlsdk 2019. 1. 10. 13:04
반응형
FAT(File Allocation Table)

파일 할당 정보를 표현한 테이블이다.

최대 볼륨 크기 2TB, 최대 파일 크기 4GB를 가지며 메모리 카드, 카메라, 플래시 메모리 등에 널리 사용된다.

FAT12, FAT16, FAT32, exFAT(FAT64) 종류가 있으며 숫자는 비트 수로 최대 표현 가능한 클러스터의 수이다.

 FAT 종류

최대 표현 가능한 클러스터 

 FAT12

 2^12 - 12

 FAT16

 2^16 - 12

 FAT32

 2^28 - 12


FAT32가 28비트만 사용할 수 있는 이유는 예약된 4비트가 다른 용도로 사용되기 때문이다.


다음은 FAT 파일 시스템의 추상적 구조이다.


Reserved

Area

FAT

Area

Data

Area 



FAT - Reserved Area



 FAT 종류

Reseved Area size

FAT12 / FAT16 

FAT32

32 


예약된 영역(Reserved Area)은 FAT 파일 시스템에서 맨 앞에 위치한다.


예약된 영역은 다음과 같은 섹터로 구분된다.


Boot

Sector

FS

Infomation
Sector

(FAT32 only)

More

reserved

sector

(optional) 



FAT - Reserved Area - Boot Sector

다음은 Boot Sector의 구조이다.



부트 섹터는 0, 7 섹터에 존재한다 7 섹터는 부트 섹터의 백업본이다.


첫 3 byte는 0x003 || 0x005A의 부트 코드로 점프하기 위한 명령어가 위치한다.


BPB 영역은 클러스터의 크기, FAT 크기, 루트 디렉터리 위치, 총 섹터 수 등의 파일 시스템 정보를 기록한 영역이다.


이후는 부트 코드 영역으로 점프 명령어에 의해 실행이 되고 BPB 정보를 참조하여 파일 시스템을 부팅한다.


다음은 BPB 영역의 구조이다.





FAT32 경우 추가적인 BPB 영역이 있다.




 FTA - Reserved Area - FS Infomation Sector


FSINFO(FS Information Sector)는 1번째 섹터에 저장되고 7섹터에 내용을 백업한다.


이 위치는 BPB에 정의되어 있기 때문에 임의로 지정이 가능하다.


FSINFO는 OS에게 비할 당 클러스터 첫 주소와 전체 비할당 클러스터의 수를 알려준다. 이는 다음번에 저장하게 될 주소를 제공함으로서 파일을 빠르게 할당할 수 있고 전체 비할당 클러스터 수를 통해 할당 가능 여부도 알 수 있다.


다음은 FSINFO의 구조이다.





FAT - Reserved Area - More reserved sector


추가적인 예약된 영역(More reserved sector)은 부트 섹터의 부트 코드 영역이 부족할 경우 추가적으로 사용할 수 있는 섹터이다. 2번 섹터에 저장하고 8번 섹터에 백업한다.






sector

내용 섹터

백업 섹터

Boot Sector

0

FSINFO

More Reserved Sector


기본적으로 FAT32는 0, 1, 2, 6, 7, 8 섹터를 사용한다.



FAT32는 항상 32섹터를 가지지 않는다. 장치 타입이나 소프트웨어에 따라 변할 수 있기 때문에 Reserved Area 영역의 섹터 수를 확인 후 접근하도록 한다.














FAT - FAT Area




FAT 영역은 다음과 같이 두 영역으로 나눌 수 있다.


Reserved

Area

FAT #1 

FAT #2 

Data

Area 


두 번째 영역은 첫 번째 영역이 손실되었을 경우 사용하기 위한 백업본이다.


FAT Area는 데이터 영역에 저장된 파일들의 할당 관계를 표시한다.


FAT12/16은 2 byte, FAT32는 4 byte를 통해 데이터 영역의 시작 클러스터부터 마지막 클러스터까지 할당 관계를 표시한다. FAT 영역의 4 byte가 데이터 영역의 클러스터와 대응한다는 의미이다.



FAT 엔트리


앞서 말한 FAT12/16은 2 byte, FAT32는 4 byte의 데이터를 FAT 엔트리라고 한다.





데이터 영역은 2번 클러스터부터 시작한다. 그 이유는 0, 1 클러스터는 사전에 예약된 자리이기 때문이다.

첫 번째 클러스터는 미디어 타입, 두 번째 클러스터는 파티션 상태를 나타낸다.


연결 방식은 다음과 같다.






다음은 추가적인 클러스터의 값이다.





출처 : http://forensic-proof.com/archives/370

반응형

'-Computer Theory > OS' 카테고리의 다른 글

NTFS 파일 시스템  (0) 2019.01.09