[File System] 파일 시스템
파일시스템 개념
파일시스템은 쉽게 말해 데이터를 효과적으로 관리하기 위한 시스템이다.
컴퓨터에 저장되는 데이터가 많아지면서 파읽을 읽고 쓰고 하는데 많은 자원(resource)을 사용하게 되었다. 이에 따라 효율적인 파일 관리의 필요성이 대두되었고 파일시스템의 필요성이 높아졌다.
파일시스템 구조
Meta Area | Data Area |
파일 시스템은 대부분 메타영역과 데이터영역 두 가지 영역으로 구분된다.
메타영역은 일반적으로 데이터영역에 기록된 파일의 이름, 위치, 크기, 시간정보, 삭제유무 등이 구조적으로 저장되어 관리된다. 즉, 데이터영역에 기록된 파일들은 메타영역에 의해 정보를 얻을 수 있다.
파일시스템의 종류
윈도우
FAT(File Allocation Table)
하드디스크 내 컴퓨터 파일에 관련된 정보를 보관하는 테이블, 일반적으로 디스크의 부트 트랙 바로 다음에 위치한다.
FAT는 크게 FAT12, FAT16, FAT32로 나뉘는데 FAT 뒤의 숫자는 최대 표현 가능한 클러스터의 수를 비트 수로 표현한 것이다.
FAT 종류에 따라 구조가 조금씩 다르지만 전체적인 FAT 파일시스템의 구조는 다음과 같다.
Reserved Area | FAT area | Data Area |
- Reserved Area: 부트 섹터, FSInfo 등의 내용을 표현하거나 사용되지 않는 부분
- FAT: Data 영역을 효과적으로 관리하기 위해 사용되는 부분
- Data: 실제 데이터가 저장되어 있는 공간
FAT16
- MS-DOS 개발 당시 사용하던 파일 시스템으로 Windows95/98/NT/2000 등에서 사용되었다. 대부분의 MS OS에서 호환이 되지만 하나의 파티션으로 최대 2GB 밖에 설정할 수 없고 보안이나 암호화 및 압축 기능들을 지원하지 않는다. 영문 8글자(한글 4글자)까지의 파일 이름 제한이 있으며 한 클러스터에 1632KB를 할당하여 용량 낭비가 심하다.
FAT32
- FAT 파일 시스템을 보강한 파일시스템으로 2TB까지 지원이 가능하다. 영문 256글자(한글 128글자)까지 파일 이름을 지원한다. 클러스터당 4K 배정하여 용량 낭비 문제를 해결했지만 FAT16과 마찬가지로 보안, 암호, 압축 기능을 지원하지 않는다.
NTFS(New Technology File System)
- 현재 윈도우에서 흔히 사용되는 파일시스템으로 윈도우즈 NT 계열에서 부터 사용되기 시작했다. 대용량 하드를 지원하며, FAT의 단점이었던 보안 및 암호화 또한 지원한다. 또 다른 특징으로는 별도의 압축 프로그램 없이도 파일과 폴더 압축이 가능하는 것이다.
VBR(Volumn Boot Record) | MFT(Master File Table) | Data Area |
NTFS는 VBR과 MFT 영역을 사용하는데 MBR의 크기는 가변적이다.
리눅스
EXT(Extended File System)
리눅스에서 사용되는 파일 시스템으로 ext, ext2, ext3, ext4가 있다. 숫자가 높아질 수록 나중에 나온 것이다.
EXT
- 리눅스 운영체제를 목표로 만들어진 첫번째 파일시스템으로 MFS(MINIX File System)의 단점을 보완하기 위해 만들어졌다. (최대 크기, 파일 이름 최대 길이)
EXT2
- 255자까지 긴 파일 이름을 지원하며 새 타임 스탬프를 지원한다. 파일 시스템의 최대 크기는 2TB~32TB며 서브 디렉토리 개수 제한은 32768개이다. fsck를 이용해 시스템 손상 시 복구가 가능하지만 시간이 오래 걸리며 시스템 복구 기능을 사용하는 동안 다른 시스템 작업을 할 수 없다 또한, 캐시에 저장되어 있는 데이터들을 디스크로 저장하는 도중 문제가 발생할 경우 파일 시스템이 손상된다.
EXT3
- 저널링(Journaling)이 ext2와 비교했을 때 가장 큰 차이점으로 생각할 수 있다.
※ 저널링: 스토리지에 데이터를 저장하기 전에 Journal 영역에 데이터 변경 이력을 저장하고 스토리지에 데이터 변경 내역을 저장하는 활동. 시스템 장애 등 스토리지 장애가 발생하였을 경우 스토리지 장애복구 과정을 빠른 시간에 원활하게 처리할 수 있도록 하는 것이 목적
EXT4
- 16TB까지의 파일을 지원하는 대형 파일 시스템이다. 저널 체크섬 기능이 추가되어 파일 시스템 손상 가능성을 더 줄였으며 온라인 조각모음을 지원한다.
참고 자료
http://forensic-proof.com/archives/353