FS : File System
HDD sector: 원래 512B였다가, 2011년부터 4096B가 표준으로 제정되었다.
LBA (Logical Block Addressing)
- LBA22: 22bit를 block addressing에 사용. 2^22까지 지정 가능.
- LBA28 (ATA-1, 1994): 2^28까지 지정 가능.
- LBA48 (ATA-6, 2003): 2^48까지 지정 가능.
파일시스템의 주요 책임
- 저장 장치에서 파일을 어떻게 읽을것인가
- 저장 장치에서 파일을 어떻게 쓸 것인가
- 저장 장치에서 파일을 어떻게 변화시킬 것인가
파일 생성 과정
- Metadata를 하나 할당 받는다
- 파일의 내용을 저잘할 수 있는 Data Blocks를 할당받는다.
- 해당 Data Blocks에 파일 데이터를 쓴다.
- Metadata를 업데이트한다.
- Metadata를 저장매체에 저장한다.
저장되자 실패가 일어나면…?
파일 읽기 과정
- 해당 파일의 Metadata를 찾는다.
- Metadata에 파일이 저장된 Data Blocks의 정보를 가져온다.
- 해당 Data Blocks의 내용을 읽어서 전달한다.
파일 삭제 과정
파일 삭제 중 모든 메타데이터를 지우진 않는다. 따라서, 메타데이터 일부분(FAT에서는 지워진 파일의 시작위치나 사이즈가 남아있음)을 이용해 파일을 복구시킬 수 있다.
어떤 경우에 복구가 어려울까?
- 파일의 메타데이터를 아예 찾기 어려운 경우
- 파일의 데이터가 일부 덮어씌워진 경우
- 파일이 분할되어 저장된 경우
파일시스템을 이해해야 하는 이유
- 복구가 가능할지에 대한 예측이 가능
- 정확한 복구를 위해선 파일시스템을 이해해야 정확한 복구가 가능
Carving
- 전체 디스크를 블록 별로 분석하여 데이터를 복구하는 방법
- 파일 시스템을 몰라도 꽤 많은 데이터를 찾을 수 있음
- 한계가 명확함
- 메타데이터가 없을 때 해당 파일의 크기를 어떻게 알 수 있을까?
- 파일 포맷을 잘 이해해야 함.
SSD 특성
- 읽기는 페이지 단위
- 쓰기는 페이지 단위
- 삭제는 블록 단위
결론
- 파일의 삭제는 메타데이터만 지움
- 파일의 복구는 실제로 데이터를 지우지 않기 때문에 가능
- 완전 삭제는 반대로 데이터를 명시적으로 지움
- SSD는 복구가 더 어렵다
- FTL은 각 SSD 업체마다 공개되지 않음