티스토리 뷰
1. ext4 파일 시스템 개요
ext4 파일 시스템은 리눅스에서 널리 사용되는 파일 시스템으로, ext3의 개선된 버전입니다. ext4는 파일을 저장할 때 전체 파티션을 여러 개의 블록 그룹(block group)으로 나누며, 각 블록 그룹에는 다음과 같은 요소가 포함됩니다.
- 슈퍼 블록(Super Block): 파일 시스템의 메타데이터 정보를 저장
- 그룹 디스크립터 테이블(Group Descriptor Table): 블록 그룹의 메타데이터 관리
- 데이터 블록 비트맵(Data Block Bitmap): 사용 중인 블록을 추적
- 아이노드 비트맵(Inode Bitmap): 사용 중인 아이노드를 추적
- 아이노드 테이블(Inode Table): 파일 및 디렉터리에 대한 정보를 저장
- 데이터 블록(Data Block): 실제 데이터가 저장되는 공간
특히 ext4는 저널링(Journaling) 기능을 제공하여 파일 시스템의 무결성을 보장하며, 이 기능을 활용하여 삭제된 파일을 복구할 수도 있습니다.
2. ext4 파일 삭제 원리
1) 아이노드(inode)와 파일 삭제
- 파일의 메타데이터를 관리하는 아이노드(inode)는 파일이 저장된 데이터 블록의 주소를 기록합니다.
- 파일이 삭제되면 해당 아이노드가 비활성화되며, 데이터 블록 주소가 0으로 초기화됩니다.
- 그러나 데이터 블록 자체는 그대로 존재하기 때문에 복구가 가능합니다.
2) 저널링(Journaling) 시스템과 파일 삭제
- ext4는 inode 8번에 위치한 저널 영역(Journal Area)을 통해 파일 변경 사항을 기록합니다.
- 저널링 시스템은 예상치 못한 종료(crash)로 인한 데이터 손상을 방지하는 기능이지만, 삭제된 파일의 복구에도 활용될 수 있습니다.
3. 저널링 시스템을 활용한 파일 복구 방법
1) 저널 영역(Journal Area) 구조
저널 영역은 다음과 같은 요소로 구성됩니다.
- 슈퍼 블록(Super Block): 저널의 블록 타입, 크기, 총 블록 수 등의 정보를 포함
- 트랜잭션(Transaction): 파일 변경 사항을 기록하는 블록 그룹
- 디스크립터 블록(Descriptor Block): 저널 데이터 블록의 정보를 저장하는 저널 태그 포함
- 데이터 블록(Data Block): 삭제되기 이전의 파일 데이터를 저장
- 커밋 블록(Commit Block): 트랜잭션 완료 여부 및 타임스탬프 저장
2) 파일 복구 절차
- 삭제된 파일의 아이노드 찾기
- 아이노드 테이블에서 삭제된 파일의 아이노드를 검색
- 해당 아이노드가 가리키는 데이터 주소값이 0으로 초기화되어 있을 것
- 아이노드 정보와 일치하는 저널 태그 찾기
- 저널 디스크립터 블록에서 해당 아이노드의 주소값을 가진 저널 태그 검색
- 저널 태그를 따라 저널 데이터 영역에서 삭제 전 아이노드 정보 확인
- 삭제되기 이전의 파일 정보(데이터 블록 주소 등)를 확보
- 확보한 데이터 주소를 기반으로 실제 파일 데이터 추출
- 확보한 주소를 통해 원본 데이터 블록을 복구
- 새로운 아이노드와 데이터 블록을 연결하여 파일 복원
- 복구된 데이터 블록을 새로운 아이노드에 연결하여 파일을 재구성
'Forensic > File System' 카테고리의 다른 글
NTFS 파일 시스템 삭제 원리 (0) | 2025.02.13 |
---|---|
NTFS VBR(Volume Boot Record) (0) | 2025.02.04 |
GPT(GUID Partition Table) Partition Structure (0) | 2025.02.04 |
MBR(Master Boot Record) Partition Structure (0) | 2025.02.04 |
FAT32 파일 구조 (1) | 2025.02.04 |