본문 바로가기

Information Security/Digital Forensic

Windows File System

반응형

Windows File System

* File System : 컴퓨터 시스템에서 File, Directory를 조직화 하고 저장하는 방식이나 구조이며, OS와 저장 장치간의 인터페이스 역할을 수행함

 

 

 

* Windows 구형 File System의 종류와 특징

종류 사용 시스템 설명
FAT 12
(File Allocate Table)
MS-DOS


(+ Windows 10
,macOS)
* Windows 초기 파일 시스템으로 12bit 파일 할당 테이블을 사용
- 디스켓 드라이브 등의 초 저용량 저장 장치에 사용


[제한 사항]
- 최대 디스크 용량 16MB
- 최대 파일 크기 32KB
- 파일 이름 8자 이하로 제한
- 확장자 3글자 제한


[구성]
1. 클러스터 : 디스크 공간을 일정하게 할당한 블록
(클러스터 기준 크기에 따라 파일이 해당 크기에 미치지 못하더라도 일정 블록 만큼은 반드시 용량이 점유 당함)


2. 파일 할당 테이블 : 파일과 클러스터간 매핑을 유지


3. 루트 디렉토리 : 최대 224개의 파일과 디렉토리 항목을 포함하는 최상위 경로
FAT 16 MS-DOS 3.0 ~
Windows 95/98


(+ Windows 10,
macOS)
* FAT12의 애매한 bit 한계에서 진화하여 PC외에도 저용량(2GB 이하)의 USB, SD 카드 등에 많이 사용했던 파일 시스템


[제한 사항]
- 최대 디스크 용량 2GB
- 최대 파일 크기 2GB
- 파일 이름 8자 이하로 제한
- 확장자 3글자 제한


[구성]
- FAT12와 거의 유사하며, FAT12 대비 파일 할당 테이블의 크기와 루트 디렉토리 포함 파일 수 증가 등 외 큰 차이 존재하지 않음
VFAT
(Virtual FAT)
Windows 95 ~ * UCS-2 (Unicode 포인트를 고정 2Byte로 인코딩하는 시스템)를 지원하여 MS-DOS 대비 파일명 길이를 크게 늘린 파일 시스템


[특이 사항]
1. 파일 이름 최대 255자까지 지원
(단, 동일 디렉토리 내 어떤 파일이든 파일 이름 6글자 (한글은 3글자) 이후는 ~1, ~2가 접미사에 순차적으로 덮은 형식으로 출력되며, VFAT을 지원하지 않는 시스템에서도 자료를 읽을 수 있게 하기 위함)


2. 파일 및 디렉토리 속성 설정 지원
(읽기 전용, 숨김, 시스템 등)
FAT 32 Windows 95 ~


(+ macOS 8.1 ~)
[제한 사항]
- 루트 디렉토리 내 최대 65,536개의 파일과 디렉토리 항목을 포함하여 저장 가능
- 최대 디스크 용량 2TB 까지 지원 가능
- 최대 파일 크기 4GB
- File 이름은 8자 이하로 제한
- 확장자 3자리로 제한


[특이 사항]
1. 클러스터 용량의 기기별 지원 용량에 차이가 존재
(논리 파티션 크기가 최대 4TB ~ 16TB까지 지원 가능 / 파티션 테이블을 MBR로 사용할 수 밖에 없는 경우로 인해 한계가 대부분 2TB)


2. Windows 2000 이후의 NT 계열의 자체 포맷 프로그램은 32GB 까지만 지원


3. NTFS보다 구조가 단순하여 읽기/쓰기 속도가 빨라서 카메라, 카 오디오 등의 주변기기에 많이 사용되었음


4. 8GB 이하의 USB 메모리나 임베디드 시스템, 음향 관련 업계 등에는 여전히 사용


5. macOS, LinuxOS에 호환
exFAT
(FAT 64)
Windows CE
(Embedded
Compact) 6.0~


(+ macOS 10.6.5 ~)
[제한 사항]
- 최대 디스크 용량 128PB 까지 지원 가능
(클러스터 용량이 32MB로, 권장 용량은 512TB)
- 최대 파일 크기 16EB
- 타 FAT 파일 시스템과 호환성 없음
(안전성을 명목으로 타 FAT 시스템이 파일 할당 테이블 영역 두 군데에 중복으로 클러스터 할당 상태를 기록하지만, exFAT은 데이터 영역 한군데에 Allocation Bitmap으로 클러스터 할당 상태를 관리하기 때문)


[특이 사항]
1. FAT 64라고 부르지만, 파일 할당 테이블은 32Bit 할당 방식으로 사용


2. 대용량 USB 메모리 또는 이기종 OS간 4GB 이상의 파일 교환시에 주로 사용


3. 애초에 로컬 디스크 파일 시스템으로 만든 시스템이 아니라, 파일 개수가 많을 수록 용량 낭비가 커짐


4. 부팅 속도가 타 파일 시스템에 비해 매우 느림


5. 괴랄할 정도로 효율적이지 못한 파일 시스템으로 공간 낭비가 굉장히 심각함
TFAT
(Transaction-safe FAT)
Windows CE * FAT 확장 버전의 파일 시스템으로 FAT 중 유일하게 저널링 기능을 보유
(Journaling : 파일 시스템 메타데이터 변경 내역을 기록하는 영역인 "저널"을 트랜잭션/로그 기반으로 로깅을 수행하여 파일 시스템의 일관성을 유지, 또는 복구할 수 있는 매커니즘)


- 이 외, exFAT 파일 시스템을 기본 원리로 사용하여 기존 FAT 파일 시스템에 씌운 형태라고 보면 됌

- FAT 유형의 파일 시스템의 경우, 파일이 삭제될 시, 파일 이름의 첫 글자에 "0xE5"가 입력되어 표시
(단, 파일이 단편화 되어 있을 시, 정상적으로 북구 될 확률이 급감)

- FAT 시스템에서 NTFS로 변환 시, CMD(관리자 권한 프롬프트)에서 conver (드라이브 할당 문자) /fs:ntfs 입력 시, 일정 시간 후 파일 시스템의 변경이 가능

FAT to NTFS 변환 방법 예시

 

 

 

* Windows 신규 File System 종류와 특징 (사실 최신이라 하기 좀...)

종류 사용 시스템 내용
NTFS
(New Technology
File System)
Windows XP ~ * FAT을 대체하기 위해 만들어진 File System
(테이블 형태로 데이터를 저장하는 FAT 대비, B-Tree 구조로 데이터를 저장하여 탐색 속도가 훨씬 빠름 / 상세히 알 필요는 없고 아무튼 빠름)
1. 메타데이터 지원


2. 고급 데이터 구조를 사용한 성능 개선


3. 저널링 기반 신뢰성 향상


4. Disk 암호화 가능


5. 추가 확장을 통한 디스크 공간 사용 등



[특이 사항]
1. 파일 이름을 포함하여 최대 260자로 제한된 경로 이름
(WIN 32 API의 MAX_PATH가 260자로 제한된 레거시 방식의 프로그래밍 문제)


2. NTFS의 압축 파티션 기능이 작동하려면 클러스터 용량이 반드시 4KB 이하로 설정되어야 압축 기능이 사용 가능


3. Windows 버전 (NT.? / XP / Vista etc)에 따라 최대 파티션 크기가 다름
ReFS
(Resilient File System)
Windows
Server Type


(+특정 Window버전 이상
/ Windows 11)
* NTFS 대체를 목적으로 만든 차세대 파일 시스템으로 Windows Server 계열 이나 상위 버전의 Windows에서 사용
1. 무결성 스트림을 통해 메타데이터 실시간 저장
(단, 이 기능으로 인해 메타데이터 저장에 추가 용량이 발생)


2. 저장소 공간에 대체 데이터를 별도로 저장하며, 메타 데이터 및 파일 데이터의 체크섬을 실시간으로 체킹하여 자동으로 복구
(스크러버가 볼륨을 주기적으로 확인하여 손상 체크 및 복구 트리거)


3. 4k, 64k의 가변 클러스터 크기 지원


4. 3.5 버전 이상부터는 하드 링크 기능을 지원
(동일 파일을 가리키는 논리적인 파일을 만들며, 심볼릭 링크와 다르게 원본과 하드 링크 모두 삭제 되어야 온전히 파일이 삭제 가능)


[특이 사항]
1. 64 Bit Windows만 지원하며, 32bit windows에서는 RAW로 인식하여 사용 불가


2. 상위 버전의 ReFS 파일 시스템이 하위 버전의 Windows에서 RAW로 나옴
(즉, 동일하거나, 상위의 Windows ReFS로 마운트 필요)


3. 백업을 Sector별로 지원하여 백업 자체의 용량이 커짐


4. 별도 부팅 기능이 없어 OS 설치 미지원, 하드 디스크와 SSD에서만 사용 가능
(이동식 저장 장치는 지원하지 않음)

 

 

 

다음은 Unix/Linux File System으로... 할말이 많다...

반응형