728x90

29.1 하드 드라이브의 데이터 저장 원리
’캐비닛 -> 파티션 -> 폴더 -> 파일‘ 처럼 하드 드라이브나 그 외 데이터 저장매체를 사용하기 위해서는 그 사용 전에 컴퓨터의 운영체제가 인식할 수 있는 형식으로 준비되어야 한다.

MS의 Windows의 경우 가장 일반적인 형식이 FAT(File Allocation Table), FAT32 그리고 NTFS(New Technology File System)이다.

그런데  Apple사의 Mac 파일 형식과 Linux의 파일 형식은 윈도우즈의 파일 형식과 달라서, 디스크에 윈도우즈 ’형식‘으로 된 특별한 부분(?)이 있지 않는 한 윈도우즈에서는 Mac이나 Linux 컴퓨터에 맞춰진 디스크를 읽어내지 못한다.

반면에 Mac 운영체제나 Linux 운영체제에서는 윈도우즈의 거의 모든 형식의 파일을 읽어낼 수 있다.

*
FAT32는 FAT16을 확장(Extended)하여 테이블의 길이를 32비트로 하는 파일 시스템이다. (cf. WORD와 DWORD)

NTFS(New Technologies File System) 윈도우즈 NT에 특화된 파일 시스템. FAT와는 서로 호환이 되지 않기 때문에 이 NTFS는 오직 윈도우즈 NT에서만 사용되고 있는 파일 시스템이다.


29.2 하드 드라이브의 데이터 저장 구조
하드 드라이브의 FAT 파일 시스템에서 하나의 섹터는 항상 512바이트로 구성되어 있지만, NTFS 파일시스템에서는 각 MFT(Master File Table)가 1024바이트(1KB)로 구성되어 있다.

하드 드라이브의 포맷 형식에 이용되는 파일 시스템에 따라서 각 섹터들은 클러스터 단위로 묶여있기도 한다. 예를 들어, 윈도우즈 운영체제의 NTFS에서는 한 클러스터의 표준 ’크기‘가 4개의 섹터로 구성되어 있다. 즉, NTFS에서의 1개의 클러스터의 크기는 (4*1024 = 4096)바이트가 되는 것이다. 이러한 클러스터는 데이터를 저장하는 데 이용되는 파일 시스템의 최소단위로 활용된다. 각 클러스터는 ’파일 슬랙 스페이스(File Slack Space)‘라고 부르는 일부의 공간을 제외한 나머지 공간을 데이터나 파일로 완전히 채울 수도 있고 아니면 일부의 데이터나 파일을 저장할 수 있다.

29.1.1.1 데이터 저장에 이용되는 수학적 개념
6566바이트 크기의 파일을 가지고 있다고 가정했을때, 컴퓨터의 운영체제가 이 파일을 저장하기 위해서는 먼저 4096바이트 크기인 1개의 클러스터를 전부 사용해야 하고 나머지 2560바이트는 다른 클러스터에 저장해야 한다.


세 번째 칸을 보면, 파일이 삭제되었음을 알 수 있는데, 이렇게 파일이 삭제되었다고 하더리도 윈도우즈에서는 눈으로 볼 수 없을 뿐, 하드 드라이브에서는 여전히 파일이 남아있게 된디. 네 번째 칸을 보면, 이전에 저장했던 큰 파일이 남아있는 파일의 일부분은 여전히 하드 드라이브에 남아있게 되고, 이러한 잔여 파일은 ‘파일 카빙(File Carving)' 기법을 통해서 복구해낼 수가 있다.

29.2 삭제된 파일 복구
삭제되었다는 사실 자체가 아주 중요한 단서로 활용되기도 한다.

29.3 데이터 파괴의 증거
데이터 삭제 소프트웨어(data wiping sw)는 포렌식 기법으로도 복구할 수 없도록 데이터를 삭제하는 데 이용되고 있다. 이러한 종류의 소프트웨어는 각각의 섹터를 ‘0’으로 덮어쓰기를 하는 방법으로 기존의 데이터를 삭제하는 방법을 취하고 있다.

출처: digital forensics for legal professionals (Larry E. Daniel, Lars E. Daniel)


ko.wikipedia.org/wiki/파일_시스템#데이터베이스_파일_시스템

 

파일 시스템 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 파일 시스템(file system, 문화어: 파일체계)은 컴퓨터에서 파일이나 자료를 쉽게 발견 및 접근할 수 있도록 보관 또는 조직하는 ��

ko.wikipedia.org

 

 

==익스텐트(Extent)
디스크 등의 직접 접근 기억 장치에서 특정 파일이나 프로그램을 저장하기 위해 운영 체제 또는 DBMS에 의해 확보된 연속적인 기억 공간의 단위를 의미한다. 일반적으로 디스크 상의 트렉을 기준으로 연속공간이 할당되므로 접근(Access) 효율을 높일 수 있는 저장 기법(단위)이다.

'운영체제' 카테고리의 다른 글

[운영체제] 커널(Kernel)  (0) 2023.01.14
[메모] 컴파일, 빌드, 링크  (0) 2020.09.20
[Linux] fork  (0) 2020.08.06
[리눅스] 2020-07-14 도커 메모  (0) 2020.07.14
[리눅스] 2020-07-13 강의메모01  (0) 2020.07.13

+ Recent posts