디지털 포렌식 전문가 2급 필기 (파일시스템의 구조)

oolongeya

·

2021. 8. 10. 13:54

다음 중 파일시스템의 논리적 구조 중 루트(root) 디렉토리 밑에 여러 개의 하부 디렉토리를 갖는 구조는?
계층형 디렉토리 구조

 

디스크 자유 공간관리(Free-Space Management)

 

디스크의 공간은 제한되어 있기 때문에 삭제된 파일들이 차지하던 공간을 새로운 파일들이 재사용할 수 있어야 함

시스템은 이러한 공간을 리스트로 관리하고 유지함

 

디스크 자유 공간(Free-Space) 관리 방법 중 연결리스트 설명
* 모든 자유 디스크 블록들을 함께 연결시킴
* 시스템은 1번째 자유 블록에 대한 포인터를 디스크의 특정 위치에 두고 메모리에 캐싱하여 사용 한다

1번째 자유 블록은 2번째 자유 블록을 가리키는 포인터를 가진다
2번째 자유 블록은 3번째 자유 블록을 가리키는 포인터를 가진다 (이런 방식으로 쭉 구성)

디스크 자유 공간 - 비트 벡터(Bit Vector)

* 자유 공간 리스트는 흔히 비트 맵(bit map) 또는 비트 벡터(bit vector)로 구현함

각 블록은 1비트로 표현, 만약 블록이 자유롭다면 그 비트는 1, 만약 블록이 할당되어 있다면 그 비트는 0

 

디스크 자유 공간 - 그룹핑(Grouping)

* 1번째 자유 블록 내의 n개의 블록 주소를 저장하는 방식

처음 n-1개는 실제로 비어 있는 블록의 주소

 

디스크 자유 공간 - 계수(Counting)

프로그램이 연속된 블록들을 할당하고 블록들을 반환하는 점에 착안함

연속 할당 알고리즘이나 클러스터링을 통해 공간을 할당 할 경우 유용함

 

슬랙 공간(Slack Space)
- 저장 매체의 물리적, 논리적 구조 차이로 인해 낭비되는 공간
- 파일 시스템은 하나의 큰 파일을 저장할 때 여러 클러스터들로 나누어 저장하며, 
이 때 가장 마지막 클러스터에는 파일의 가장 뒷부분을 저장한 뒤 다음 남게 되는 공간이 슬랙 공간

[ 램 슬랙(RAM Slack) ]
- 지정되는 파일 크기가 512바이트의 배수가 아닐 경우 발생
- 데이터가 디스크에 512바이트씩 기록되는 특성 때문에 발생하는 공간으로 섹터 슬랙(Sector Slack)이라고도 함

[ 드라이브 슬랙(Drive Slack) ]
-  이전에 사용한 데이터가 존재, 흔적 조사에 활용
- 클러스터의 사용으로 인해 낭비되는 공간 중 램 슬랙을 제외한 나머지 부분을 나타냄 파일 슬랙이라고도 함

[ 파일 시스템 슬랙(File System Slack) ]
- 클러스터의 배수로 파일시스템을 할당하고 남은 공간
- 파일시스템 할당 크기와 볼륨 크기간의 차이로 인해 발생되는 공간

[ 볼륨 슬랙(Volume Slack) ]
- 전체 볼륨크기와 할당 파티션의 크기 차이로 인해 남은 공간

 

물리적, 논리적 구조의 차이로 발생하는 낭비공간인(slack space) 중 클러스터의 사용이 직접적인 요인이 아닌 것?
Volume Slack

 

윈도우 FAT파일 시스템 중 OS를 로드하기 위해 필요한 부팅 정보가 저장되어 있는 영역?
MBR

 

CHS (Cylinder, Head, Sector) 방식
- 디스크의 물리적인 구조에 기반한 방식
- 초기 ATA 표준과 BIOS의 지원 비트의 차이로 인해 최대 504MB까지만 지정 가능
- 이후 BIOS 비트 확장으로 8.1GB 까지 지원이 가능하게 되었지만 대용량 디스크는 지원하지 못함
- ATA-6부터 표준에서 제외, LBA 방식이 새롭게 등장

 

LBA (Logical Block Addressing) 방식
- 디스크의 0번 실린더, 0번 헤드, 1번 섹터를 첫 번째(0번) 블록으로 지정
- 디스크의 마지막 섹터까지 순차적으로 주소를 지정
- 물리적인 구조에 대한 정보 불필요(섹터의 번호만으로 접근 가능)
- 선형적인 섹터 번호가 실제 디스크의 물리적 구조로 변환 되어야 하지만 ROM BIOS에 의해 자동적 수행
- 초기에는 28bit로 처리하여 약 127GB가 최대 용량이지만 현재는 48bit 어드레스 방식을 사용하고 있음

 

MBR (Master Boot Record)
- 분할된 파티션에서 각 파티션의 BR영역을 관리하는 영역
- MBR은 저장매체의 첫 번째 섹터(LBA 0)에 위치하는 512 바이트 크기의 영역
- 447 바이트의 부트 코드영역, 64 바이트의 파티션 테이블 영역, 2 바이트의 시그니처 영역

* 운영체계가 어디에, 어떻게 위치해 있는지를 식별하여 컴퓨터의 주기억장치에 적재할 수 있도록 하기 위한 정    보로서 파티션된 기억장치의 첫 번째 섹터인 512바이트의 시동섹터이다
* 메모리에 적재될 운영체계가 저장되어 있는 파티션의 부트 섹터 레코드를 읽을 수 있는 프로그램을 포함하고      있는데, 부트 섹터 레코드에는 다시 운영체계의 나머지 부분들을 메모리에 적재시키는 프로그램을 담고 있다.
* MBR의 기본적인 구조는 처음 440바이트(최대446바이트)는 부트코드영역이고 부트 코드의 주 역할은 파티션 테이블에서 부팅 가능한 파티션을 찾아 해당 파티션의 부트섹터를 호출해주는 역할을 한다

[ BR (Boot Record) ]
- 각 파티션의 첫 번째 섹터에 위치하며, 해당 파티션에 OS가 설치되어 있다면 설치된 OS를 부팅하는 역할
- 단일 파티션을 사용하는 경우 BR은 MBR의 위치에 존재한다
- Microsoft의 MBR은 부트 코드 영역과 파티션 테이블 영역으로 구분될 수 있다

 

GPT (GUID Partition Table)
- GPT 헤더의 시그니처는 'EFI PART' 이다
- 파티션 엔트리에서 해당 파티션의 시작 블록 주소는 8바이트이다
- 각 엔트리는 GUID값을 가진다
- 파티션 엔트리에는 시작 주소, 끝 주소를 저장
반응형