본문 바로가기
정보보안/Forensic

[Forensic] Linux 파일 시스템(Ext) 개요

by Murl0c 2021. 7. 6.
반응형

Linux 파일 시스템

리눅스 운영체제는 Ext(Extended File System), Ext2, Ext3, Ext4 또는 라이저 파일 시스템을 사용한다. 유닉스는 유닉스 파일 시스템(UFS)를 사용한다. 각 파일 시스템은 약간 다른 방식으로 데이터 매핑과 데이터 저장소의 문제에 접근한다. 그러나 전체적인 처리 과정과 이론은 리눅스 와 유닉스 시스템이 서로 유사하다.

 

Ext 리눅스 초기에 사용되던 파일시스템이며 호환성이 없다.
Ext2 호환성, 안정성, 속도가 좋아 리눅스 파일시스템의 대부분을 제공한다.
Ext3 스토리지에 데이터를 저장하기 전에 Journal 영역에 데이터 변경 이력을 저장하는 저널링(Journaling)을 지원하며 현재 리눅스에서 가장 많이 사용된다.
Ext4 파일 접근 속도가 향상되고 단편화를 줄이도록 설계되었다.

 

Ext 파일시스템에서는아이노드(i-node)와 슈퍼블록(Super block)이라는 자료 구조를 사용한다. 각 파일 시스템의 루트는 슈퍼블록이다. 마스터 노드로 스스로 파일 시스템에 대한 정보를 보관한다. 크기, 상태, 아이노드와 덴트리 같은 파일 시스템의 다른 객체에 대한 정의는 슈퍼블록에 저장한다.

 

아이노드(i-node)

아이노드는 인덱스 노드의 줄임말로 객체를 관리하기 위해 파일 시스템이 사용하는 모든 메타데이터를 보관한다. 전화번호부처럼 특정 파일명에 어떤 아이노드 숫자가 할당돼 있는지 구분하기 위한 역할을 한다. 파일 사용자가 볼 수 있는 컨테이너Ext3은 성능을 올리기 위해 최근에 사용한 아이템의 디렉터리 캐시를 유지한다. 아이노드가 저장하고 있는 정보는 아래와 같다.

 - 소유자 및 그룹 ID

 - 접근 모드(rwx)

 - 파일 형태

 - 아이노드 번호

 - 링크 수

 - 마지막 접근 및 수정시간

 

아이노드를 확인하는 명령어는 ls -i [파일명], stat [파일명] | grep Inode가 있다.

 

아이노드(i-node) 확인 명령어

 

슈퍼블록(Super block)

주요 설정 정보들이 기록되어 있는 영역으로, 블록의 크기와 관계없이 항상 블록 그룹의 첫 번째 블록에 위치한다. 슈퍼블록은 반드시 1KB 크기에 맞춰서 저장된다. 블록의 크기가 4KB라도 슈퍼블록은 1KB만 사용하고 나머지 3KB는 사용하지 않고 비워둔다. 슈퍼블록이 저장하고 있는 정보는 아래와 같다.

 - 파일시스템의 크기

 - 마운트 정보

 - 데이터 블록의 총 개수

 - i-node의 총 개수

 - 블록 그룹번호

 - 블록의 크기

 - 그룹당 블록 수

 - 슈퍼블록의 변경에 대한 알림

 

슈퍼블록은 dumpe2fs를 사용해서 확인할 수 있다.

dumpe2fs를 이용한 슈퍼블록 데이터 확인

반응형