본문 바로가기

[+] Forensic

File System - Ext (1)

이번 글부터는 리눅스에서 많이 사용되고 기본적으로 사용되는 Ext 파일시스템에 대해서 알아 볼 것이다.

해당 글에서는 Ext 파일시스템이 어떤 것인지, 레이아웃과 구성은 어떻게 되어 있는지 알아 볼 것이다.

[Ext File System]
해당 파일시스템은 Minix라는 리눅스 초기 파일시스템의 문제점을 해결하기 위하여 고안된 파일시스템이다.
Ext는 UFS(Unix File System)을 기초로 만들어져, 현재 Ext4 까지 업데이트 되어 있다.
Ext는 UFS에서 쓸모없는 기능들을 제외하여 구조를 이해하는데 어려움은 크게 줄었다.
또 파일과 관련된 모든 데이터들을 한곳에 모아두어 하드디스크 헤드가 데이터를 읽을 때 불필요한 동작을 하지 않도록 설계하였다. 

 

[레이아웃]
Ext의 레이아웃은 아래와 같다.

[그림 1 - Ext 파일시스템 레이아웃]

위 그림을 보면 알겠지만 정말 구조는 간단하다. 블록 그룹들의 개수는 시스템 환경에 따라 달라지지만, 마지막 블록 그룹을 제외한 나머지 블록 그룹들은 같은 블록 수를 가진다.

 * 참고 : 블록은 파일 이름, 메타데이터, 파일 내용을 저장하는 것

블록 그룹에는 Super Block, Inode Table 등이 존재한다.

 - Super Block : Block 1개의 크기이며 아래와 같이 Ext 파일시스템의 기본적인 레이아웃 정보를 포함한다.
                        1) Block 의 크기(1KB, 2KB, 4KB)
                        2) 블록의 총 개수
                        3) 블록 그룹의 개수
                        4) Inode 개수
                        5) 블록 그룹 내의 블록 / Inode 개수

 * 참고 : Super Block은 블록의 크기가 2KB, 4KB이어도 고정적으로 1KB만 사용한다. 즉 4KB의 블록을 할당 받아도 3KB는 쓰지 않는다는 뜻이다.

 
 - Inode Table : Inode 라는 데이터 구조체를 포함하고 있는 테이블이며, 각 블록 그룹에 1개씩만 존재한다. 

 - Inode : 파일과 디렉토리의 메타데이터를 포함하는 데이터 구조체로 고정된 크기를 갖는다.

[그림 2 - 블록 내의 관계]

 * 참고 : 디렉토리 엔트리는 파일 이름과 파일 inode 포인터를 포함하는 데이터 구조체이다. 

 

[기능]
Ext에는 여러가지 기능이 존재한다. 하지만 관심있게 봐야 할 기술은 호환성 기능이다.

 - 호환 기능 : 마운트 하려는 파일시스템에 저널링, 확장 속성 등 운영체제에서 지원하지 않는 기능이 있더라도 해당 파일시스템을 마운트 하는 기능이다.

 - 비 호환 기능 : 마운트 하려는 파일시스템에 압축, 암호 등 기능이 포함되어 있으면 해당 파일시스템을 마운트 하지 않는 기능이다.

 - 읽기 전용 호환 기능 : 비 호환 기능처럼 운영체제가 지원하지 않는 기능을 가진 파일시스템을 강제적으로 마운트 한다면 읽기 전용으로 마운트 하는 기능이다.




 

'[+] Forensic' 카테고리의 다른 글

File System - Ext (3)  (0) 2012.02.21
File System - Ext (2)  (0) 2012.02.20
File System - Ext (1)  (0) 2012.02.20
File System - NTFS (20)  (0) 2012.02.19
File System - NTFS (19)  (0) 2012.02.19