'file system'에 해당되는 글 3건

  1. 2013.01.16 NTFS MFT까지의 접근 by 똘이 임덕규
  2. 2013.01.08 FAT File System의 구조 by 똘이 임덕규
  3. 2013.01.04 FAT 파일 시스템 by 똘이 임덕규








위의 그림은 MBR부터 읽어서 MFT의 Attribute 까지의 접근에 대한 그림이다. 실제 접근까지는 총 세번의 Dump가 이루어지며 Dump시 절대주소를 적어주어야만 원하는 곳의 데이터를 얻을 수 있다.

아래는 위 그림을 설명할 소스코드의 일부분이다.

int main(void)
{
	char dumpData[512];
	U8*  ucP;
	
	HDD_read(1, 0, 1, dumpData); 
	HexDump(dumpData, 512);
	HDD_read(1, *((U32 *)(dumpData + 446 + 8)), 1, dumpData);	// Boot Code + LBA Starting Address
	HexDump(dumpData, 512);
	HDD_read(1, (*((U32*)(dumpData+48))) *8 +63, 1, dumpData); // MFT Entry
	
	ucP = test((dumpData+(*((U16*)(dumpData+20))))); /* Attribute 의 시작 부분 */

 	test(ucP);
	
	return 0;
}

해당 소스의 전체 파일(소스가 제대로 동작하지는 않고 있다.)

hdd_NTFS_MFT_Entry_Attribute.c


저작자 표시
신고

'Embedded > File System' 카테고리의 다른 글

NTFS MFT까지의 접근  (0) 2013.01.16
파일 시스템 요소들  (0) 2013.01.08
FAT File System의 구조  (0) 2013.01.08
FAT 파일 시스템  (0) 2013.01.04
파티션  (0) 2012.12.31


FAT File System의 구조는 아래와 같이 정리할 수 있다.

  • 부트 레코드(BR)
    1. 크기가 1섹터밖에 안되는 작은 영역
    2. Windows가 FAT 파일시스템을 인식하는 가장 중요한 역할 담당
    3. 이곳이 지워지면 윈도우는 해당 볼륨 인식 불가
  • 예약된(Reserved) 영역
    1. FAT16인 경우에는 1섹터, FAT32 경우에는 32섹터 할당.
  • FAT #1 과 FAT #2
    1. FAT 영역은 클러스트들을 관리하는 테이블이 모여 있는 공간
    2. 이곳에 손상이 가면 심각한 문제가 온다.
    3. FAT #1과 #2는 완전히 똑같은 내용을 가지고 있으며 #2 이상 부터는 만약을 대비해서 만들어둔 백업본이다.
  • 루트 디렉토리 영역(FAT16 에서만 존재)
    1. 위치는 항상 FAT #2 영역 뒤쪽에 고정
    2. 위치는 고정적이지만 크기는 가변적일 수 있다.
  • 데이터 영역
    1. 실제 데이터인 파일과 디렉토리가 클러스트 단위로 저장되어있다.
    2. 섹터 단위가 아닌 클러스터(Cluster)라 불리는 논리적 단위로 읽기 쓰기를 한다.
  • 사용하지 않는 영역
    • FAT File System 볼륨 구조화 과정중 생긴 잉여 영역


저작자 표시
신고

'Embedded > File System' 카테고리의 다른 글

NTFS MFT까지의 접근  (0) 2013.01.16
파일 시스템 요소들  (0) 2013.01.08
FAT File System의 구조  (0) 2013.01.08
FAT 파일 시스템  (0) 2013.01.04
파티션  (0) 2012.12.31
FAT 파일 시스템의 탄생
  • FAT파일 시스템은 1976년 MicroSoftware의 제품인 Basic에서 플로피 디스크 관리를 위해 빌게이츠에 의해서 최초 구현됨

FAT 파일 시스템 종류

  • FAT12
    • 1984년에 발표된 DOS 3.0에서 이용하였으며 5.25inch 1.2mb 양면 플로피 디스크를 사용할 수 있도록 했다.
  • FAT16
    • HDD기술의 발달로 요구된 대용량의 파일을 수용할 수 있는 파일 시스템.
    • 클러스터 크기를 32kb로 할 경우 최대 2GB까지 표현
  • VFAT
    • Windows95에서 채택
    • 32bit 보호모드에 적합하게 코드를 재작성
    • 독점모드 추가로 여러 프로그램이 동시에 파일에 접근할 경우를 대비
    • 최대 255자까지의 긴 파일이름 가능
    • 여전히 2GB까지의 용량 한계 문제점
  • FAT32
    • VFAT기반으로 수정
    • 총 28bit를 이용해서 클러스트를 표현
    • 클러스트 크기를 16kb로 한다면 이론상 최대 4TB까지 표현이 가능하지만 여러 이유로 32GB의 최대 용량을 가진다.
    • FAT의 마지막 버전.
구분 FAT12 FAT16 FAT32
사용 용도 플로피 디스크용 저용량 하드디스크 고용량 하드디스크
클러스터 표현 비트 수 12bit 16bit 32bit(28bit만 사용)
최대 클러스터 개수 4,084 65,524 약 2^28
최대 볼륨 크기 16MB 2GB 2TB
파일의 최대 크기 볼륨 크기만큼 볼륨 크기만큼 4GB

요약

  • FAT 파일시스템 중에서는 FAT32가 가장 무난한 선택
  • FAT32는 MS-DOS, Windows95와는 호환되지 않는다.
  • 용량이 32MB 이하의 CF카드나 USB Memory Stick에서는 FAT16외엔 방법이 없다.


저작자 표시
신고

'Embedded > File System' 카테고리의 다른 글

NTFS MFT까지의 접근  (0) 2013.01.16
파일 시스템 요소들  (0) 2013.01.08
FAT File System의 구조  (0) 2013.01.08
FAT 파일 시스템  (0) 2013.01.04
파티션  (0) 2012.12.31