파일 시스템 분석, 데이터 복구를 위한 구조 파악 


1. 파일 시스템 구조

- 운영체제는 어떠한 파일이 있는지, 해당 파일이 저장된 위치는 어디인지, 파일의 이력은 무엇인지 효과적으로 파악할 수   있어야 한다.
- 새로운 파일을 생성하여 저장할 때는 저장 매체에 빈 공간을 찾을 수 있어야 한다.


2. 파일 시스템의 주요 요소

2-1. 주소지정방식(Addressing)
CHS는 실린더(Cylinder),해드(Head),섹터(Sector)를 의미, 디스크의 물리적인 구조에 기반한 주소지정방식 CHS방식은 초기 ATA표준에서 정의한 주소 지정 비트와 BIOS에서 지원하는 주소 지정 비트의 차이로 인해 최대 504크기까지만 주소지정이 가능
이후 디스크 용량의 증가로 인해 BIOS의 주소 지정 비트수를 확장시켰지만 8.1GB까지만 주소 지정이 가능하였기때문에 대용량 디스크를 지원하지 못하고 결국 CHS주소 지정 방식은 ATA-6부터는 표준에서 제외되었다.

2-2. LBA(Logical Block Address) 방식
LBA주소 지정 방식은 물리적인 구조를 고려할 필요 없이 디스크의 0번 실린더, 0번 해드, 1번 섹터를 0번으로 하여 디스크의 마지막 섹터까지 순차적으로 주소를 지정하는 방식이다.
따라서 LBA방식을 사용하는 경우 관련 소프트웨어들은 물리적인 구조에 대한 정보 없이도 접근하고자 하는 섹터의 번호만으로 쉽게 접근이 가능하다.
물론 LBA방식을 사용하는 경우에도 선형적인 섹터 번호가 실제 디스크의 물리적인 구조로 변환한다. 하지만 이러한 변화는 ROM BIOS에 의해 자동적으로 수행되므로 CHS방식에서와 같이 물리적인 구조를 고려해야 하는 복잡함이 줄어든다.

2-3. 클러스터(Cluster)
하드 디스크의 물리적인 최소 단위는 섹터(512 Bytes)이다.
따라서 디스크와 관련된 읽기 쓰기 작업은 모두 섹터 단위로 이뤄진다. 그러나 섹터 단위로 입출력을 처리하면 큰 파일의 경우 많은 시간이 요구되기 때문에 대부분 여러 개의 섹터를 묶어 한꺼번에 처리한다. 윈도우 운영체제에서는 여러 개의 섹터를 묶은 클러스터가 데이터의 입출력 단위이다. 따라서 파일의 크기와 상관없이 클러스터의 배수로 파일이 할당이 된다.
클러스터 크기를 4,096바이트(4KB)로 할당하였을 때, 100바이트의 데이터를 저장하는 경우 클러스터 크기(4KB)만큼 지정된다. 실제로 파일을 생성한 후 파일의 속성을 살펴보면 실제 파일의 크기는 100바이트이지만 디스크 할당 크기는 4KB인 것을 확인 할 수 있다. 이 경우 3,996바이트의 공간이 낭비되는데, 낭비되는 공간이 있음에도 불구하고 클러스터 단위를 사용하는 이유는 디스크 입출력의 횟수를 줄이기 위함이다.




2-4. 램 슬랙(RAM Slack)
램 슬랙은 램에 저장되어 있는 데이터가 디스크에 저장될 때 512바이트씩 기록되는 특성때문에 발생하는 공간으로 섹터 슬랙(Sector Slack)이라고한다.
파일의 크기가 512바이트의 배수가 아닐 경우에 램 슬랙이 발생한다.
램 슬랙은 윈도우 운영체제에서 사용하는 메모리 관리 정책 때문에 0x00의 값으로 기록한다.
예를 들어 1,500바이트의 데이터를 기록할 경우 3개의 섹터가 사용되며 512의 배수가 되지 않는 여분의 36바이트는 0x00의 값으로 기록된다. 파일의 크기는 대부분 512바이트이 배수가 아니기 때문에 거의 모든 파일에서 램 슬랙이 발생한다.
따라서 램 슬랙을 이용하면 파일의 끝을 알 수 있기 때문에 삭제된 파일을 복구할 때 유용하게 사용한다. 


2-5. 파일 슬랙(File Slack)
파일 슬랙은 클러스터의 사용으로 인해 낭비되는 공간 중 램 슬랙을 제외한 나머지 부분을 나타내는 것으로 드라이브 슬랙(Drive Slack)이라고 한다.
512바이트보다 작은 데이터가 기록되는 경우 하나의 섹터만 사용하고 나머지 3개의 섹터는 사용하지 않는다.
이 영역을 파일 슬랙이라고 하는데 0x00으로 기록되는 램 슬랙과 다르게 파일 슬랙은 이전의 데이터가 그대로 남아 있다. 그 이유는 최하단의 디스크 입출력은 섹터 단위로 진행되기 때문이다.
파일 슬랙을 이용하면 특정 파일이 해당 저장 매체에 존재하였는지 규명할 수 있다. 즉 존재 여부를 알아야하는 파일이 있다고 하자. 그 파일을 클러스터 단위로 나눈 후 각 클러스터의 마지막 부분과 파일 슬랙 중 일치하는 부분이 있는지 확인함으로써 해당 파일이 존재 했었는지 확인할 수 있다. 범죄 관련 파일이 저장 매체에 있었다가 삭제되었음을 입증할 때 이러한 방법을 사용한다.


2-6. 파일 시스템 슬랙(File System Slack)
파일 시스템의 크기는 파일 시스템을 생성할 때 결정한다. 그런데 파일 시스템은 클러스터 크기의 배수만큼 사용할 수 있기때문에 파일 시스템 끝 부분에 남는 공간이 발생한다. 예를 들어 1,026KB의 볼륨에 4KB의 클러스터를 사용하는 파일 시스템을 구성한 경우 마지막 2KB는 사용할 수 없음 이렇듯 파일 시스템 할당 크기와 볼륨 크기간의 차이로 인해 발생되는 공간을 파일 시스템 슬랙이라고 한다.


2-7. 볼륨 슬랙(Volume Slack)
볼륨 슬랙은 전체 볼륨 크기와 할당된 파티션 크기의 차이로 인해 발생하는 공간이다.
볼륨 슬랙은 다른 슬랙과 다르게 파티션 크기의 변경을 통해 임의로 생성이 가능하다.

+ Recent posts