9. 도서관/__사. Network

2장 파티션

행복 금융 2008. 11. 4.

2장 파티션

17.2기 장영호

교재 예제 소스 -ReadPartion.cpp

I. 파티션 소개

1) 파티션이란?

 파티션은 연속된 저장 공간을 하나 이상의 연속되고 독립된 영역으로 나누어서 사용할 수 있도록 정의한 규약이다.

2) 파티션 정보의 관리

 파티션을 나누어서 사용하는 모든 저장장치에는 파티션들의 정보를 파악 할 수 있는 영역이 따로 존재한다. DOS 기반의 파티션으로 보자면 MBR(디스크의 0번 섹터)  영역 내에 '파티션 테이블'이 존재한다. 이 파티션 테이블이 저장장치 내 파티션들의 속성을 가지고 있고, 여기에서 부팅 가능 여부, 파티션에서 사용되는 섹터의 개수 등 자세한 정보들을 알아 낼 수 있다.

3) 파티션의 사용 용도

 3.1 하나의 물리적인 디스크를 여러 논리 영역으로 나누어 관리를 용이하게 하기 위해

 3.2 OS 영역과 Data 영역으로 나누어 OS 영역과 따로 포맷 및 관리하기 위해

 3.3 여러 OS를 설치하기 위해

 3.4 하드디스크의 물리적인 배드 섹터로 특정 영역을 잘라서 사용하기 위해

4) 파티션과 볼륨의 차이점

 볼륨의 정의 : 볼륨은 OS나 Application 등에서 이용할 수 있는 저장 공간, 즉 섹터들의 집합이다.

 위의 정의에서 저장 공간으로 끝나지 않고 섹터들의 집합이란 표현을 사용한 이유는 물리적인 연속된 공간이 아니어도 볼륨으로 볼 수 있기 때문이다. 예를 들어 2개의 하드디스크를 사용하는 시스템에서 마치 하나의 하드디스크처럼 인식하여 사용할 수 있는 것이다.

 파티션은 볼륨이라고도 할 수 있다. 파티션 역시 저장공간이므로 볼륨이라고 볼 수 있다. 하지만 파티션은 볼륨과 달리 반드시 연속되어 있는 섹터들의 집합이어야 한다.

 

2. MBR

1) MBR이란?

 MBR(Master Boot Record, 마스터 부트 레코드)은 말 그대로 Boot Record들의 메인 격이라 할 수 있다. 부트 레코드는 각 파티션의 첫 번째 섹터에 위치하며, 주된 목적은 해당 파티션에 설치된 OS를 부팅해 주는 역할을 한다. OS를 실행하기 위해 부트로더를 호출하는 것이다. 파티션을 나누지 않은 상태라면 부트레코드는 MBR 위치에 기록되어 있을 것이다. MBR은 2개 이상의 BR을 대표하는 BR이며, 각각의 파티션에 속한 BR을 호출하기 위한 프로그램 영역과 파티션들의 정보를 담고 있는 파티션 테이블을 포함한다.

2) MBR의 구조

 MBR은 크게 두 영역으로 나눌 수 있다. 하나는 부트 코드영역이로 다른 하나는 파티션 정보를 저장하고 있는 파티션 테이블 영역이다. 다른 OS의 경우 대부분 부트 코드 영역이 몇 섹터에 걸쳐서 저장되기도 하고, 파티션 영역을 저장하는 영역도 한 섹터 또는 몇 섹터에 걸쳐서 저장하기도 하지만, Microsoft의 MBR에는 부트 코드와 파티션 테이블이 둘다 들어가 있는 것이 특징이다. 0번 섹터의 512Byte중 부트 코드 영역은 상위 446Byte를 사용하고 있으며 그 뒤의 64Byte를 파티션 테이블이, 하위 2Byte는 MBR의 시그너쳐인 0xAA55가 들어간다.

 

3. 파티션의 종류

1) 파티션의 종류

 흔히 알고 있는 파일 시스템의 종류는 벤더에 따라 그 수가 굉장히 많이 있다. 다만 대중적으로 사용하는 OS가 Microsoft windows이고 그의 전신인 MS-DOS에서 사용된 파티션을 현재도 Windows에서 사용하고 있기 때문에 다른 OS들도 각각 MS-DOS와 호환되는 파티션 타입을 하나씩 정의해 놓고 있어 주로 DOS 파티션들을 많이 사용하는 것이다.

2) DOS 파티션 테이블

 현재까지 알려진 파티션들 중 가장 널리 사용되는 파티션이다. Windows 제품군이 DOS 파티션을 사용하고 있으며, 잘 알려진 Linux 역시 DOS 파티션을 이용하고 있다. DOS 파티션 테이블이 물리적으로 위치하는 곳은 디스크의 0번 섹터 내 MBR영역의 부트 코드 바로 다음이다. 번지수로 보면 446번지부터 64Byte의 공간을 파티션 테이블이 사용한다. 파티션 테이블에는 총 4개의 파티션을 기록할 수 있으며 파티션 1개의 정보는 16Byte로 표현한다. 파티션 테이블에 기록할 수 있는 파티션의 개수 제한을 극복하기 위해 확장 파티션을 지원한다.

3) 애플 파티션 맵(Apple partition Map)

 Apple의 파티션 정보는 다른 벤더의 파티션 기록 방법과 약간 차이가 있다. 애플에는 'Apple Partiton Map'이라는 파티션이 존재하며, 이 파티션 안에 디스크에서 사용하는 파티션 정보를 기록하고 있다.이 파티션이 우치하는 곳은 디스크의 1번 섹터이며, 0번 섹터는 사용하지 않는다. 부트코드는 디스크에 기록하지 않고, PC로 치면 BIOS 레벨의 펌웨어에 기록하고 있다.

4) BSD 디스크 레이블(BSD Disk Label)

 Unix 계열의 대포적인 OS인 BSD 시스템의 파티션. BSD 파티션은 하나의 섹터 안에 파티션 정보를 포함한 디스크 정보를 모두 담아 놓는다. DOS 파티션에 비해 매우 간단한 구조를 가지고 있고 총 16개의 파티션을 가질수 있다. 실제로 저장되는 위치는 1번 섹터이며, 148번지부터 403번지까지 총 256Byte를 사용한다. 0번 섹터에는 부트 코드가 저장되어 있으며, 부트 코드 영역이 512Byte보다 크다면 0번 섹터에 이어서 2번 섹터부터 16번 섹터까지 추가로 기록 할 수 있다.

5) 솔라리스 디스크 레이블(solaris Disk Label)

 Sun사의 Solaris Disk label은 BSD의 Disk Label과 크게 다르지 않은 구조를 가지고 있다. BSD의 경우와 마찬가지로 파티션 정보를 포함한 디스크 정보를 Disk Label에 기록하고 있으며 512Byte에 걸쳐 데이터를 저장한다. 솔라리스는 선 스팍(Sun Sparc)과 PC 둘다 설치 가능하며, 플랫폼에 따라 Disk Label의 위치 및 데이터 구조가 달라진다. Sun Sparc의 경우 0번 섹터에 Disk Label이 위치하며, 부트 코드 영역은 1번 섹터부터 15번 섹터까지 위치한다. i386에 solaris를 설치하기 위해서는 반드시 DOs 파티션이 설치되어 있어야 한다. Solaris 부팅 파티션에는 파일시스템은 없어도 상관없지만, 부트 코드를 가지고 있어서 Solaris 파일 시스템에 있는 Disk Label을 읽어 들여야 하며, 이렇게 읽은 Disk Label은 Sun Sparc의 그것과는 약간 차이가 있다.

 

4. DOS 파티션의 구조

1) MS-DOS 파티션 테이블의 구성

 MS-DOS 파티션은 Primary, Extended, Logical 등으로 이루어져 있다. MBR 영역 내에서 볼 수 있는 파티션들은 이 중 Primary에 해당한다. 파티션의 개수는 총 4개로 제한된다. 추가로 더 만들고자 한다면 확장 파티션을 만들어서 각 파티션 내에 또 다시 파티션을 만들도록 할 수 있다.

2) 파티션 영역의 분석

 2.1 Bootable Flag

  • 위치 : 0

  • 크기 : 1 Byte

  • Value : 0x80(부팅가능), 0(부팅 불가능)

  • 부팅 가능한 하드디스크임을 나타내는 플래그. 이 플래그는 모든 파티션에서 필수적으로 필요치는 않으며 붙이 가능한 파테션에만 0x80코드가 설정되면 된다.

     2.2 Starting CHS Address

  • 위치 : 1~3

  • 크기 : 3 Byte

  • Value : 가변적임

  • CHS 모드로 표현하는 파티션의 시작 번지 수. CHS Address나 LBA Address 둘중 하나만 입력하여사용한다. Windows 2000, 2003 OS의 경우 LBA 모드만을 사용하며 어떤 모드를 사용할 지는 OS 또는 그에 해당하는 어플리케이션에 따라 다르다.

     2.3 Partition Type 

  • 위치 : 4

  • 크기 : 1 Byte

  • Value : 고유의 코드

  • 파티션의 타입을 나타내는 고유의 값이다. 파일 시스템을 사용하지 않는 경우 0으로 채운다.

     2.4 Ending CHS Address

  • 위치 : 5~7

  • 크기 : 3 Byte

  • Value : 가변적임

  • CHS 모드로 표현하는 파티션의 끝 지점. Starting CHS Address와 매치되어 같이 기록되어야 한다.

 2.5 Starting LBA Address

위치 : 8~11

크기 : 4 Byte

Value : 가변적임

LBA 모드로 표현하는 파티션의 시작 번지. 0부터 시작하며 LBA 모드를 사용할지 CHS 모드를 사용할지는 전적으로 어플리케이션에 의존한다.

 2.6 Size in Sector

위치 : 12~15

크기 : 4 Byte

Value : 가변적임

파티션에서 사용하는 LBA의 총 개수를 의미하며, 하나의 LBA 블록은 512Byte이므로 해당 파티션의 총 용량은 'Size in Sector X 512'Byte가 된다.

3) MS-DOS 확장 파티션

 4개 이상의 파티션을 사용하고자 할때 사용. 주 파티션 중 마지막으로 만들어진 파티션이 확장 파티션에 해당하며, 확장 파티션 영역 안에서 추가로 영역을 나눠야 하기 때문에 BR 영역 내의 파티션 테이블만 가지고서는 확장 파티션의 레이아웃을 한눈에 알아보기 힘들다. 주 파티션 내에 존재하는 확장 파티션을 주 확장 파티션이라고 한다. 주 확장 파티션을 포함ㅎ나 모든 확장 파티션은 추가 확장 파티션을 가질 수 있으며 이렇게 나눌 수 있는 파티션의 개수는 제한이 없다.

'9. 도서관 > __사. Network' 카테고리의 다른 글

crontab 사용법  (0) 2008.11.05
Corrupt label; wrong magic number (레이블링)  (0) 2008.11.04
빠른 단축 아이콘 위치  (0) 2008.11.04
여러 서버 콤맨드  (0) 2008.11.04
useradd  (0) 2008.11.04

댓글

💲 추천 글