zj3t

email: euntaejang@gmail.com

Latest Posts

저장매체 파티션 (Storage Partition)

By 오전 3:00

일반적으로 컴퓨터에 대한 지식이 있는 사람들은 컴퓨터 구입 후 하드디스크의 용량을 그대로 사용하는 것이 아니라 최소한 두 개(C:, D:)의 파티션으로 분할 후 사용할 것이다. 예전에 파티션 분할은 저장매체 포맷 전에 수행해야만 가능했다. 하지만 최근에는 포맷 후에도 안정적으로 파티션을 생성, 수정, 제거 할수 있는 도구들이 많이 나와있다. 
내가 주로 사용하는 프로그램은 Acronis Disk Director Sever 이다. 이전 제품들은 사용할 때마다 간혹 오류가 발생하곤 했는데 이 도구는 3년째 사용중이지만 한번도 실망 시킨적이 없었다. 그렇다면 왜 파티션을 분할해서 사용하는 것일까? 많은 이유가 있겠지만 몇가지 중요한 이유만 살펴보자.
  • 분할된 파티션을 중요 데이터 저장용도나 백업 용도로 사용할 수 있다. 따라서 운영체제를 새로 설치할 경우 해당 운영체제 설치 파티션만 포맷 후 가능하기 때문에 데이터를 별도의 저장매체에 백업할 필요가 없다.
     
  • 하나의 컴퓨터에서 다양한 운영체제(Linux, Windows, Max OS X 등)를 설치하여 멀티부팅이 가능하다.
     
  • NTFS는 MFT라는 구조를 사용해 파일시스템의 메타 정보를 관리한다. 저장매체 공간이 클 수록 MFT의 크기는 매우 커지기 때문에 파일 탐색이나 공간 낭비가 심할 수 있다. 따라서 비교적 적은 공간으로 분할하는 것이 성능을 향상시켜준다. 
     
  • 하드디스크 입장에서도 파티션은 연속된 섹터를 분할한 것이므로 플래터의 공간이 내부, 외부로 나눠질 것이다. 따라서 파티션을 나누게 되면 파일 탐색의 경우 헤드의 움직임이 적어지므로 탐색 시간이 빠르게 된다.

파티션 타입 (Partition Types)
앞서 살펴본 바와 같이 저장매체는 일반적으로 MBR이라는 구조를 통해 파티션을 관리한다. MBR은 MS-DOS 뿐만아니라 Windows, Linux 등에서 공통적으로 사용하는 구조이다. Slice (disk), BSD disklabel 과 같이 특정 운영체제는 자신만의 구조를 사용하기도 한다. 앞으로 저장매체의 용량이 커지면서 MBR도 GPT(GUID Partition Table)로 대체될 것으로 보이지만 당분간은 MBR이 계속 쓰이게 될 것이다.
MBR은 저장매체를 4개의 파티션으로 분할 할 수 있다. 이 중 부팅 가능한 주 파티션(primary partition)은 항상 하나 이상을 가져야 한다. 그렇지 않다면 MBR의 부트 코드를 실행하는 과정에서 부팅 가능한 파티션이 없다는 오류메시지를 발생시킬 것이다. 주 파티션은 4개까지만 생성할 수 있지만 데이터 저장을 위한 논리 파티션은 4개 이상이 가능하다.
이것은 확장 파티션(extended partition)이라는 구조를 통해 가능한데, 확장 파티션은 16 바이트의 파티션 테이블에서 파티션 타입 값을 0x05h, 0x0Fh로 가진다. 확장 파티션을 통해서 생성할 수 있는 논리 파티션도 제한이 있는데, 각 파티션에는 파티션 문자가 할당이 된다. 'A', 'B'는  플로피 드라이브로 예약되어 있기 때문에 최대 24개('C' – 'Z')의 파티션이 생성이 가능하다.
확장 파티션은 데이터를 저장하기 위한 용도가 아니라 논리 파티션을 생성하기 위한 용도로 사용된다. 결국, 데이터는 논리 파티션에 저장된다. 예를 들어, 하나의 저장매체를 C:, D:, E: 3개의 파티션으로 나눌 경우 C:는 부팅 가능한 주 파티션이 되고 D:, E:는 논리 파티션이 된다.
다음은 그림을 통해 살펴본 주 파티션과 확장, 논리 파티션의 관계이다. MS-DOS 환경에서는 확장 파티션을 통해 최대 30개 까지 논리 파티션이 생성가능하다. 확장 파티션은 하나 이상의 파티션 정보가 저장되므로 MBR 영역에 저장되는 것이 아니라 저장매체의 별도의 영역에 저장된다. 따라서, 파티션 타입이 0x05h, 0x0Fh 값을 갖는 확장 파티션일 경우에는 확장 파티션의 시작 위치로 접근하여 논리 파티션 테이블을 확인해야 한다.
다음은 필자의 윈도우 시스템에서 디스크 관리(Disk Management)를 통해 디스크 상태를 살펴본 것이다. 총 2개의 디스크가 장착되어 있고, C:, E: 는 주 파티션이고 D:, F:는 논리 파티션인 것을 확인할 수 있다.

파티션 복구 (Partition Recovery)
해외 복구 도구들의 경우 대부분 삭제된 파일(deleted file) 복구, 파일 카빙(file carving)과 함께 파티션 복구 기능을 지원한다. 파티션 복구는 사용자가 실수로 파티션을 삭제하였을 경우 복구하는 기법이다. 파티션을 삭제하게 되면 파티션 테이블에서 해당 파티션에 대한 정보도 삭제가 된다.
이 경우 파티션 테이블의 정보는 사라졌지만, 해당 파티션이 위치하고 있던 영역의 데이터는 그대로 남아 있기 때문에 지워진 파티션의 부트 섹터(Boot Secotr)의 정보를 토대로 파티션 테이블을 다시 재구성할 수 있다. 만약, 파티션을 지운 후 다른 파티션의 영역을 지워진 파티션 영역까지 확장한 경우는 어떡해 될까?
이 경우에도 지워진 파티션의 부트섹터와 메타 영역이 덮어쓰여지지(overwritten) 않았다면 부트 섹터를 찾아 파티션의 크기를 재조정한 후 복구할 수 있을 것이다.
용어: 
부트 섹터(Boot Sector): 부팅을 하는데 필요한 파일이나 과정들을 하드디스크내에 섹터로 할당 해서 모아둔                               저장소

You Might Also Like

0 개의 댓글