다음 이전 차례

6. 디스크 구조정보, 파티션, 그리고 `중복(overlapping)'

만약 여러분이 디스크상에 여러 종류의 운영체제를 가지고 있다면, 각각의 운영체제는 하나 또는 여러개의 디스크 파티션을 사용한다. 이러한 파티션 위치에 대한 차이는 끔찍한 결과를 가져올 수 있다. MBR(Master Boot Record)은 Primary 파티션이 어느 위치에 존재하는지에 대한 파티션 테이블을 가지고 있다. MBR에는 4개의 Primary 파티션 테이블 항목이 있다.

다음과 같은 구조를 갖는다.

       struct partition {
               char active;    /* 0x80: bootable, 0: not bootable */
               char begin[3];  /* CHS for first sector */
               char type;
               char end[3];    /* CHS for last sector */
               int start;      /* 32 bit sector number (counting from 0) */
               int length;     /* 32 bit number of sectors */
       };

(위의 구조체는 각각 16 바이트의 크기를 갖는다. 512 Byte 의 MBR에서 후반부에 16 x 4 (Primary Partition Table) 의 공간이 이를 위하여 설정된다)

앞에서도 언급했듯이 위에서 CHS 는 Cylinder, Head, Sector를 의미한다. 이 정보는 중복되는 정보로서 파티션의 위치정보는 24 비트 크기의 시작(begin)과 끝(end)을 나타내는 필드와 32 비트의 시작(start)과 끝(length) 필드에 의하여 각각 지정될 수 있다. (위에서 (begin, end) 와 (start, length)에 의해 모두 각각 표현될 수 있다)

리눅스는 단지 시작과 길이 필드만을 사용한다. 그러므로 2^32 보다 작은 크기의 섹터에 대해서만 처리가 가능하다. 즉, 최대 2 TiB 크기의 파티션이 가능하다. 이 크기는 현재 가능한 디스크 크기에 약 100 배 정도 큰 크기이다. 그러므로 앞으로 8 년이상은 충분할 것으로 예상된다. (그러므로 파티션은 크기가 커질수 없다. 그러나 ext2 파일 시스템상의 파일에는 심각한 제한이 있다. 그것은 32 비트 정수형을 갖는 하드웨어상에서의 ext2 파일시스템에서는 2 GiB 이상 참조할 수 없다는 것이다.)

DOS 는 시작과 끝 필드를 사용한다. 그리고 디스크를 접근하기 위해 BIOS INT13 시스템 호출을 사용한다. 그러므로 변환하는 BIOS 에서 조차도 8.4 GB 보다 작은 공간만을 접근할 수 있다. 파티션의 크기는 FAT16 파일 시스템의 제한으로 인해 2.1 GB 보다 커질 수 없다 똑같은 경우가 Windows 3.11 과 WfWG 와 windows NT 3.*, Novell NetWare에서 발생한다.

Windows 95는 확장 INT13 인터페이스를 제공해 왔다. 그리고 특별한 파티션 유형을 사용해 왔다.( b, 6, 5 대신 c, e, f를 사용하는 것과 같이) 위와 같은 유형을 지정하므로서 파티션을 참조시 확장 INT13 방법으로 참조할 수 있도록 하고 있다. 이러한 파티션 유형이 사용될 경우, 시작(start field)과 끝(end field)을 나타내는 필드는 1023/255/63과 같은 무의미한 정보를 갖는다 Windows 95 OSR2 는 FAT32 파일 시스템을 소개하였고, 이 파일 시스템의 유형은 b 또는 c 를 갖는다. 또한 이 파일 시스템은 2 TiB 크기 까지의 파티션 크기를 지원한다.

fdisk에서 파티션 `중복(overlapping)' 메세지를 보게 되는데 어떤 의미인가요 ? 문제가 없나요 ?

문제가 있습니다. 이러한 파티션의 시작(start) 과 끝(end) 필드를 보면 DOS 운영체제에서와 같이 중복되어 있는 것을 볼 수 있습니다. (또한 수정되지 않습니다. 왜냐하면 이러한 필드들은 1024 개 이상의 실린더 번호를 기록할 수 없기 때문입니다. - 1024 개 이상의 실린더를 갖는 이상 `중복' 현상은 지속될 것입니다.)

어쨌거나, 여러분이 시작(start)과 끝(end) 필드를 보게되면 리눅스나 Windows 95 가 c, e, f 유형의 파티션 유형에 대해 그러하듯이 정상적입니다. 그러므로 cfdisk 가 정상적이고, 여러분이 Linux만을 사용하는 디스크를 가지고 있다면 이러한 경고 메세지를 무시하기 바랍니다. 그러나 이러한 디스크가 DOS 와 공유될 경우 조심하기 바랍니다. /dev/hdx 에 있는 파티션 테이블을 확인하려면 cfdisk -Ps /dev/hdxcfdisk /Pt /dev/hdx 같은 명령을 사용하기 바랍니다.


다음 이전 차례