본문 바로가기

파일시스템

File System - NTFS (5) NTFS에서는 앞 글에서도 언급 했듯이 b-tree 를 사용한다고 했었다. NTFS는 많은 상황에서 인덱스 구조체를 사용한다. NTFS 인덱스는 정렬된 순서로 저장된 속성들의 모음을 일컫는다. 인덱스가 제일 흔하게 사용되는 것이 디렉토리인데, $FILE_NAME 속성을 포함하기 때문이다. NTFS에서 인덱스는 이진트리, b-tree로 정렬된다. 이진트리는 자료구조론에서 자주 언급되는 개념 중 하나이기 때문에 여기서 언급은 생략하고 b-tree에 대해서만 설명 하겠다. b-tree는 이진트리와 유사한 형태이지만, 노드 별로 자식 노드가 2개 이상이다. b-tree에는 여러 종류와 규칙이 있지만 여기서는 b-tree에 대해서만 설명 할 것이며 노드 삽입, 삭제에 대해서 이야기 해보도록 하겠다. b-tree는.. 더보기
File System - NTFS (2) 이번 글에서는 NTFS에 핵심이라고 말할 수 있는 MFT에 대해서 알아 볼 것이다. 상세히 분석하는 정도는 아니고, 일단 간략하게 알아 본 뒤 조금 더 뒤에서 상세히 분석 해 볼 것이다. 일단 MFT를 설명하기 전에 NTFS의 개념을 알아야 한다. NTFS는 시스템 내에서 중요한 데이터가 파일로 취급된다. 다른 말로 하면 NTFS 시스템 내에서는 관리데이터 들이 파일로 취급받는다. 위와 같은 이유로 관리 데이터들이 일반 파일처럼 파일시스템 어떤 위치에도 위치 할 수 있게 된다. 그래서 NTFS는 다른 파일시스템들과 달리 특정 레이아웃을 가지고 있지 않다. 다만, NTFS 볼륨 첫 섹터에는 부트 섹터가 있고, 부트 섹터에는 부트코드가 포함되어 있을 뿐이다. 개념을 간단히 숙지 했으니 이제 MFT에 대해서 .. 더보기
File System - NTFS (1) 이번 글 부터는 현재 범용적으로 많이 사용되고 있는 NTFS(New Technologies File System)에 대하여 다루어 보도록 하겠다. 이 글에서는 NTFS에 대한 소개만 하도록 하겠다. NTFS는 MS사에서 고안한 파일시스템으로 윈도우 NT, 2000, XP, 2003, 2008, 7등 수많은 버전에서 사용하는 파일시스템이다. 사실 FAT은 이동형 디스크에 많이 사용되며 고정식 디스크에는 대부분 NTFS를 사용한다고 봐도 무리가 없다. NTFS는 많은 특징들을 제공하는데, 많은 특징 만큼 확장성도 뛰어나다. 하지만 뛰어난 만큼의 복잡성을 가지고 있는 파일시스템이어서 분석이 FAT처럼 쉽지만은 않다. NTFS는 신뢰성, 보안, 대용량 장치를 지원하기 위해 설계되었는데, 이 기능들을 많은 시스템.. 더보기
File System - FAT (9) 이번 글 에서는 예약영역 다음 섹터부터 시작하는 FAT 영역에 대해서 알아 볼 것이다. FAT 영역은 FAT 파일시스템에서 중요한 역할을 담당하고 있는데, 그 역할은 다음과 같다. - 클러스터 할당 상태 파악 - 어떠한 파일이나 디렉토리에 할당 된 클러스터의 다음 클러스터 주소 파악 FAT은 보통 FAT 파일시스템에서 두 개가 존재하며, 정확한 번호는 부트 섹터에서 할당한다. 첫 번째 FAT은 예약 영역 섹터 다음부터 시작하며, 부트섹터에서 전체크기를 할당 한다. 두 번째 FAT은 만약 존재한다면 첫 번째 FAT 마지막 섹터 다음부터 시작하며, 구성은 같은 크기의 엔트리들로 구성된다. * 참고 : 엔트리에 Header와 Footer는 존재하지 않는다. 각 엔트리 크기는 FAT 종류마다 다른데, 해당 종류.. 더보기
File System - FAT (7) 이번 글에서는 파일 복구와 FAT 파일시스템의 종류를 결정하는 방법, 일관성 검사에 대해서 알아보도록 하겠다. [파일 복구] 파일 삭제 과정을 보면 FAT 엔트리가 0이 되고 디렉토리 엔트리가 비 할당 상태로 바뀌면서 디렉토리 엔트리의 첫 바이트가 "0xE5" 로 설정된다. 파일을 복구하기 위해서는 파일의 시작 위치(시작 클러스터)와 크기를 알아야 한다. 하지만 시작 클러스터만 알 수 있을 뿐 나머지 연계되는 클러스터는 정확하게 알지 못한다. 파일시스템의 파일의 클러스터들 배치는 아래와 같은 경우들이 있다. - 연속적인 클러스터 할당의 경우 [그림 1 - 연속 할당 클러스터] 위 경우 파일 복구는 정말 쉽다. 시작 클러스터인 45를 시작으로 파일의 크기만큼인 48까지만 복구해주면 된다. - 할당 클러스터.. 더보기