'Embedded/File System'에 해당되는 글 5건

  1. 2013.01.16 NTFS MFT까지의 접근 by 똘이 임덕규
  2. 2013.01.08 파일 시스템 요소들 by 똘이 임덕규
  3. 2013.01.08 FAT File System의 구조 by 똘이 임덕규
  4. 2013.01.04 FAT 파일 시스템 by 똘이 임덕규
  5. 2012.12.31 파티션 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

파일 시스템을 이루고 있는 몇 가지 요소

  • 클러스터
    1. 운영체제가 저장장치에 있는 데이터를 읽고 쓰는 논리적인 기본단위
    2. 리눅스에서는 아이노드라고도 불린다.
    3. 크기가 작은 파일을 저장장치에 쓰고자 하는 경우 파일이 클러스터의 크기보다 작아 서 남는 용량은 버려지게 된다.
    4. 상대적으로 느린 저장 매체인 하드디스크의 속도를 고려하여 1KB 파일을 불러올때 1 KB짜리 클러스트를 열번 불러들이는 것보단 4KB짜리 클러스트를 I/O로 불러들이는 편이 빠르다.
    5. 단 1Byte라도 사용한다면 1개의 클러스터 영역이 사용된다.

하드디스크의 주요 구성 요소

  • 트랙
    1. 디스크의 중심으로 도는 원. 반지름이 커질 수록 원이 커지는 만큼 디스크의 가장자리 영역에 데이터를 많이 보관할 수 있다.
  • 섹터
    1. 각각의 섹터는 571 Byte의 공간을 차지
    2. 그중 59 Byte는 각각의 섹터에서 고유 번호 등을 저장하는 용도로 사용
    3. 나머지 512 Byte가 사용자들이 사용할 수 있는 데이터 영역
  • 실린더
    1. 여러장 겹겹이 있는 플래터 구조를 가지는 하드 디스크에서의 개념으로 수직으로 같은 위치에 있는 섹터들을 실린더라 부른다.


저작자 표시
신고

'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

파티션

Embedded/File System 2012.12.31 14:54

파티션이란

파티션은 연속된 저장 공간을 하나 이상의 연속되고 독립된 영역으로 나누어서 사용할 수 있도록 정의한 규약이다.


파티션의 가장 큰 의미는 저장장치의 구역 나눔이다.

파티션의 사용 용도

  • 하나의 물리적인 디스크를 여러 논리 영역으로 나누어 관리를 용이하게 하기 위해
  • OS 영역과 DATA 영역으로 나누어 OS 영역만 따로 포맷 및 관리하기 위해
  • 여러 OS를 설치하기 위해
  • 하드디스크의 물리적인 배드 섹터로 특정 영역을 잘라서 사용하기 위해




저작자 표시
신고

'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


티스토리 툴바