간단강좌 : 파티션

하드디스크는 몇 개의 파티션(partitions)으로 나누어지며, 각 파티션은 서로 독립적으로 동작한다. 하나의 디스크에서 두 운영체제를 사용할 때에도 파티션을 이용하여 서로 문제를 일으키지 않고 사용할 수 있다.

 

리눅스에서는 어떤 파티션이 필요한가

 

불행히도 많은 운영체제에서 논리 파티션에서 부팅하는 것을 결사적으로 막고 있는 관계로, 리눅스 외의 다른 운영체제를 사용해야 한다면 한 개의 하드디스크에서 최대 4개까지 만들 수 있는 프라이머리 파티션 중 최소 하나는 쓸 수 없다는 결론이 나올 것이다. 또한 확장 파티션을 만들기 위해서는 또 하나의 프라이머리 파티션을 희생해야 한다. 확장 파티션은 나머지 디스크 공간을 논리 파티션으로 나누어 쓰기 위해 꼭 필요하다.

 

리눅스 시스템에는 스왑 공간도 필요하다. 대개의 경우 스왑 파티션을 따로 설정하여 스왑을 만들며, 이 파티션은 어디에 있어도 상관없으므로 논리 파티션에 설치하도록 하겠다. 리눅스 스왑 전용 파티션은 0x82 “Linux swap” 형식으로 포맷한다. 일반적인 리눅스 파티션을 0x83 “Linux Native” 형식으로 포맷하는 것과 비교된다.

 

물론 리눅스를 설치하기 위해서는 스왑을 제외하고 단 한 개의 파티션만 있어도 충분할지 모른다. 그러나 부트 이미지와 응용 프로그램, 홈 디렉토리, 설정 파일, 계속 변경되는 공유 데이터 등은 서로 다른 파티션에 저장하는 것이 안전하므로 각각 나누어준다.

 

데이터 블록과 파일 저장

 

운영 체제는 디스크 공간을 블록 단위로 관리한다. 파일의 크기가 블록의 크기에 딱 맞는 일은 거의 없으므로, 파일이 저장된 마지막 블록의 일부는 평균적으로 블록 반 개의 크기만큼 낭비되는 법이다.

 

파일 데이터가 서로 인접한 블록에 저장될수록 접근 속도는 빨라진다. 리눅스 시스템에서는 점점 커지는 파일을 위해 8 개의 인접 블록을 한 단위로 하여 공간을 미리 배분해 놓았다. 사용되지 않은 사전 할당 공간은 파일이 닫혀질 때 놓여나므로, 그 이상의 공간 낭비는 일어나지 않는다. 한 파일을 구성하는 블록이 각각 멀리 떨어져 있다면, 디스크가 일일이 헤드를 움직여야 하고 운영 체제의 접근이 늘어나는 등 많은 불합리한 일이 생긴다. 리눅스 시스템에서는 이런 일을 막기 위해 몇 가지 전략을 사용하므로 스풀 디렉토리와 같은 자주 읽고 쓰여지며 수시로 삭제되고 새로운 데이터가 들어오는 파티션도 큰 문제를 일으키지 않는 다. 정상적으로 사용한다면 리눅스 본래의 파일 시스템에서는 굳이 디스크를 정리하지 않아도 된다. 대개 한 파티션에 5% 정도의 공간만 있다면 리눅스에서 적절히 관리해 줄 것이다.

 

MBR

 

하드디스크가 어떻게 나누어져 있는가에 대한 정보는 하드디스크의 첫 번째 섹터에 저장된다(즉 첫 번째 디스크 표면 위에 있는 첫 번째 트랙의 첫 번째 섹터). 이 첫 번째 섹터가 바로 master boot record (MBR)이다. MBR은 컴퓨터가 처음 부팅할 때 바이오스가 읽어들여 부트 이미지를 불러들이는 작은 프로그램을 실행하는 섹터이다. 이와 같은 작은 프로그램을 부트 로더라 하며, 바이오스가 한 번에 읽어 들일 수 있는 크기는 정해져 있는 데 비해 부팅을 위한 프로그램의 크기는 계속 커지고 있어, 부트 프로그램을 불러들이기 위해 사용된다.

 

파티션을 구별하는 방법은?

파티션을 구별할 때는 드라이브의 순서와 파티션이 있는 순서를 차례로 읽어 나가면 된다. 지금부터는 각 드라이브에 있는 파티션의 이름을 짓는 방법을 설명할 것이다.

 

IDE 방식을 사용하는 경우 하나의 IDE 케이블에는 두 개의 드라이브를 설치할 수 있고 시스템에는 두 개의 IDE 케이블을 사용할 수 있다. 그러므로 최대 4개의 IDE 하드디스크를 설치할 수 있다. 이때 첫 번째 케이블의 가운데 설치되는 드라이브가 프라이머리 마스터 드라이브이고 이 드라이브가 1번 드라이브이다. 그리고 컷번째 케이블의 끝에 설치되는 드라이브가 2번째 드라이브이고 프라이머리 슬레이브 드라이브라고 한다. 세 번째 드라이브는 두 번째 케이블의 가운데 설치되는 드라이브이다. 마지막 네 번째 드라이브는 두 번째 케이블의 끝에 설치되는 드라이브이다. 요즘은 EIDE를 사용하고 있기에 마스터와 슬레이브의 결정은 점퍼에 의해 결정되기 때문에 방금 설명한 것이 정확히 맞지 않는다. 일부 IDE 케이블에는 케이블에 마스터와 슬레이브가 적혀있는 것이 있다. 이 경우는 이에 맞추어 연결하지 않으면 사용할 수 없게 된다.

 

드라이브의 이름은 그 순서대로 hda, hdb, hdc, hdd로 정해진다.

 

파티션의 이름은 각 드라이브의 파티션 순서에 따라 번호가 주어지고 파티션의 형식은 무시된다. 예를 들어 첫 번째 프라이머리 파티션은 1을 갖게 되고 두 번째 확장 파티션은 2번, 세 번째 프라이머리 파티션은 3번을 갖게 된다. 대부분 관리의 편리성을 위해 같은 종류의 파티션을 묶어 놓는다. 그래서 1번부터 3번까지는 프라이머리 파티션, 4번은 확장 파티션, 5번 이후는 논리 파티션으로 지정된다. 파티션을 4개만 사용하는 경우 모두 프라이머리 파티션으로 지정된다. 파티션의 장치이름은 드라이브이름뒤에 파티션번호를 붙이면 된다. 예를 들어 세 번째 드라이브의 첫 번째 논리 파티션인 경우 hdc5가 된다. IDE 드라이브이므로 hd로 지정되고 3번째 드라이브이므로 알파벳 3번째 글자인 c, 첫 번째 논리 파티션이므로 5가 선택되어 hdc5인 것이다. 3,4파티션이 모두 확장파티션인 경우 3번 확장 파티션의 첫 번째 논리 파티션이 5번이 되고 3번 파티션의 마지막 논리 파티션의 번호+1이 4번째 확장 파티션의 첫 번째 논리 파티션의 번호가 된다.

 

SCSI 하드디스크의 경우는 SCSI ID에 의해 그 순서가 정해지고 이름을 붙이는 방법은 동일하다. 단지 SCSI 하드라는 것을 의미하기 위해 hd대신에 sd를 사용한다. 세 번째 하드디스크의 첫 번째 파티션은 sdc1이 된다.

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.