티스토리 뷰

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) 파일 복구 절차

  1. 삭제된 파일의 아이노드 찾기
    • 아이노드 테이블에서 삭제된 파일의 아이노드를 검색
    • 해당 아이노드가 가리키는 데이터 주소값이 0으로 초기화되어 있을 것
  2. 아이노드 정보와 일치하는 저널 태그 찾기
    • 저널 디스크립터 블록에서 해당 아이노드의 주소값을 가진 저널 태그 검색
  3. 저널 태그를 따라 저널 데이터 영역에서 삭제 전 아이노드 정보 확인
    • 삭제되기 이전의 파일 정보(데이터 블록 주소 등)를 확보
  4. 확보한 데이터 주소를 기반으로 실제 파일 데이터 추출
    • 확보한 주소를 통해 원본 데이터 블록을 복구
  5. 새로운 아이노드와 데이터 블록을 연결하여 파일 복원
    • 복구된 데이터 블록을 새로운 아이노드에 연결하여 파일을 재구성

'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