본문 바로가기
2014.11.12 20:37

MBR vs GPT 디스크 형식

조회 수 3528 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print Files
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print Files

http://cappleblog.co.kr/131


Ⅰ. 윈도우와 디스크 형식

윈도우 비스타 이상 7, 8 에서 사용할 수 있는 디스크의 종류에는 크게 MBR 디스크와 GPT 디스크 2 가지 + 기본 디스크와 동적 디스크 2 가지 하여 총 4 가지의 디스크 형식이 있습니다. 그 중에서 먼저 전통적인 BIOS 방식의 시스템에서 사용되는 디스크 형식인 MBR 디스크와 이어서 새롭게 개발된 EFI 방식의 시스템에서 사용되는 디스크 형식인 GPT 디스크로 나누어 집니다. 이러한 MBR 디스크와 GPT 디스크의 차이는 디스크에 관한 정보를 담는데 MBR 을 사용하느냐 GPT 를 사용하느냐에 따라 나누어지는 것 입니다.

※ BIOS - Basic Input/Output System, 바이오스, 기본 입출력 시스템
※ EFI - Extensible Firmware Interface, 확장 펌웨어 인터페이스
※ MBR - Master Boot Recored, 마스터 부트 레코드
※ GPT - GUID(Globally Unique Identifire, 전역 고유 식별자) Partition Table, GUID 파티션 테이블



참고로 이 장에서 설명하는 MBR 디스크와 GPT 디스크의 내용은 기본 디스크를 기준으로 설명된 것 입니다. 동적 디스크는 다른 장에서 MBR 디스크와 GPT 디스크 구분 없이 공통적으로 설명됩니다.




Ⅱ. MBR(Master Boot Record) 디스크

우리가 일반적으로 사용하는 전통적인 IBM 호환 PC 의 바이오스(BIOS) 에서 기본적으로 사용하는 디스크 형식입니다. MBR 이란 간략하게 이야기하여 디스크에 대한 정보를 담고 있는 영역입니다.


1.MBR 과 파티션 테이블의 구조

IBM PC 의 바이오스에는(우리는 흔히 CMOS 셋업을 통해 이를 설정하죠.) 컴퓨터의 하드웨어를 체크하고 부팅할 수 있도록 해주는 작은 프로그램이 설치되어 있습니다. 이 바이오스의 마지막에는 시스템의 첫 번째 하드 디스크의 첫 번째 실린더, 첫 번째 헤드, 첫 번째 섹터로(CHS 0:0:1 시작 지점 - Starting Point) 이동하라는 명령이 포함되어 있죠.

이러한 디스크의 이 시작 지점에 위치한 것이 바로 MBR 입니다. 정확하게 디스크의 시작 지점에 512 Byte 의 크기를 가지고 있습니다. 이러한 MBR 은 크게 부팅에 관한 정보를 담고 있는 440 Byte 의 Master Boot Code 영역과 파티션에 관한 정보를 담고 있는 64 Byte 의 Partition Table 영역으로 나누어집니다. 아래는 이러한 MBR 의 구조를 기술한 자세한 표 입니다.

마스터 부트 레코드의 구조[Structure of a Master Boot Record]
주소설명크기
Bytes
16진수8진수10진수
000000000코드 영역[code area]440
(max. 446)
01B80670440디스크 서명[disk signature (optional)]4
01BC0674444비어 있음[Usually nulls; 0x0000]2
01BE0676446프라이머리 파티션 테이블
네 개의 16 Byte 엔트리
[Table of primary partitions
(Four 16-byte entries, IBM partition table scheme)]
64
01FE077651055hMBR 서명[MBR signature];
0xAA55
2
01FF0777511AAh
MBR, 전체 크기: 446 + 64 + 2 =512



여기에서 우리가 살펴보아야 할 내용은 바로 64 Byte 로 구성된 프라이머리 파티션 테이블 영역입니다. 프라이머리 파티션 테이블에 기록이 되는 파티션 엔트리는 개당 16 Byte 로 이루어져 있습니다. 그리하여 MBR 디스크에서 최대로 생성할 수 있는 파티션의 개수는 64/16 = 4 해서 4 개가 되는 것 입니다. 이러한 16 Byte 크기의 파티션 엔트리는 아래와 같은 구조를 가지고 있습니다. 

16-Byte 로 된 파티션 레코드의 구조
오프셋필드 길이설명
0x001 Byte파티션 상태 (0x80 = 시동 가능, 0x00 = 부팅불가, 기타 = 비정상)
0x013 Byte파티션의 첫 번째 섹터의 실린더-헤드-섹터 주소
0x041 Byte파티션 종류
0x053 Byte파티션의 마지막 섹터의 실린더-헤드-섹터 주소
0x084 Byte파티션의 첫 번째 섹터의 LBA
0x0C4 Byte파티션의 크기 (단위: 섹터) [* 전체 섹터의 개수]



이러한 파티션 테이블의 구조상 MBR 에서 최대로 생성할 수 있는 파티션의 개수가 네 개 밖에 되지 않기 때문에 MBR 은 확장 파티션과 EBR(Extended Boot Record, 확장 부트 레코드) 을 통해 이러한 구조적 문제를 해결하고 있습니다.




2. 확장 파티션과 EBR

이러한 파티션 테이블의 구조상 MBR 에서 최대로 생성할 수 있는 파티션의 개수가 네 개 밖에 되지 않기 때문에 MBR 은 파티션 테이블에 기록된 파티션 중 하나를 확장 파티션이라고 명시하고 확장 파티션내에서 다시 MBR 과 비슷한 역할을 하는 EBR 이라는 것을 추가로 생성하고 EBR 을 통해 확장 파티션내에 다시 논리 드라이브라는 파티션을 생성하는 방법을 사용하여 파티션 개수의 한계를 극복하고 있습니다.

파티션은 종류별로 고유의 시스템 ID 를 가지고 있습니다. 이러한 파티션의 ID 는 파티션 레코드의 0x04 영역에 기록이 되며 시스템은 이곳에 기록된 파티션의 ID 를 참고하여 파티션의 종류를 파악합니다. 확장 파티션의 파티션 ID 는 05(0x05) 입니다.

http://en.wikipedia.org/wiki/Partition_type
http://www.win.tue.nl/~aeb/partitions/partition_types-1.html


그리하여 MBR 디스크는 파티션 테이블에 생성되는 주 파티션과 확장 파티션, 확장 파티션 내에서 다시 EBR 을 통해 생성되는 논리 드라이브라는 세 가지 종류의 파티션을 가지고 있는 것 입니다. 이러한 주 파티션, 확장 파티션, 논리 드라이브의 구조는 아래의 그림과 같습니다.

01.jpg
출처 - 마이크로소프트 테크넷




3.EBR 과 논리 드라이브의 구조

확장 파티션의 논리 드라이브에서 추가로 사용되는 EBR 은 MBR 과 거의 흡사한 구조를 가지며 그 구조는 아래와 같습니다.

확장 부트 레코드의 구조[Common Structure of Extended Boot Records]
오프셋[Offsets]
(within EBR sectors)
내용크기
Bytes
16진수8진수10진수
000 - 1BD000 - 675000 - 445대체로 사용되지 않으며 0 으로 기록되어 있음.
[Generally unused; normally filled with zeroes;
may contain another boot loader i.e. a partition boot record]
446
18A - 192612 - 622394 - 402Possible IBM Boot Manager menu entry9 *
1BE - 1CD676 - 715446 - 461첫 번째 파티션 엔트리[Partition table's first entry]16
1CE - 1DD716 - 735462 - 477두 번째 파티션 엔트리[Partition table's second entry]16
1DE - 1FD736 - 775478 - 509세 번째, 네 번째 파티션 엔트리, 사용되지 않으며 0 으로 기록 됨.
[Unused, but should be filled with zeroes]
32
1FE77651055h부트 레코드 서명[Boot record signature]:
0xAA55 (AA55h)
2
1FF777511AAh
EBR, 전체 크기: 446 + 16 +16 +32 + 2 =512



EBR 내의 파티션 테이블은 총 네 개이며 파티션 엔트리의 구조는 MBR 의 파티션 엔트리와 동일합니다.[16-Byte 로 된 파티션 레코드의 구조 표 참조] 그러나 구조적인 모습이 같다고 하여 EBR 의 파티션 엔트리에 기록되는 논리 드라이브도 마찬가지로 네 개의 생성 개수 제한을 가지는 것은 아닙니다. EBR 의 파티션 테이블에 기록되는 파티션 엔트리는 MBR 의 그것과는 다소 다른 양상을 보입니다.

일단 EBR 은 MBR 이 디스크의 시작 부분에 위치하는 것과 같이 확장 파티션의 시작 부분에 위치하여 논리 드라이브를 관리하는 구조가 아닙니다. EBR 은 확장 파티션이 아닌 논리 드라이브에 포함되어 각 논리 드라이브의 시작 부분에 모두 위치하고 있습니다. 이 말은 논리 드라이브의 개수만큼 EBR 도 존재한다는 의미입니다.

그렇다면 EBR 의 파티션 테이블은 논리 드라이브를 어떻게 기록하는 것일까요? 일단 EBR 파티션 테이블의 파티션 엔트리 네 개 중 세 번째와 네 번째 파티션 엔트리는 사용되지 않는 엔트리 입니다. 그렇기 때문에 비어 있습니다.

첫 번째 파티션 엔트리에는 현재의 논리 드라이브에 관한 정보가 기록이 됩니다. EBR 은 논리 드라이브에 포함되어 있다고 했죠? 즉, 첫 번째 파티션 엔트리는 자기 자신(현재 논리 드라이브)에 대한 정보를 담고 있는 것 입니다. 그 내용은 MBR 의 프라이머리 파티션 테이블의 파티션 엔트리에 기록되는 내용과 동일합니다. 이를 통해 일단 논리 드라이브는 자기 자신을 규정하게 됩니다.

두 번째 파티션 엔트리는 처음엔 비어 있습니다. 그러다 다시 새로운 논리 드라이브가 생성이 되면 새롭게 생성된 논리 드라이브의 EBR 을 가르키는 내용이 기록 됩니다. 즉, 논리 드라이브가 다수가 존재하고 있다면 각각의 논리 드라이브에 존재하는 EBR 의 두 번째 파티션 엔트리에는 자기 다음에 위치한 논리 드라이브의 EBR 을 가르키는 내용이 기록이 되어 있는 것 입니다. 다음 번 논리 드라이브가 없다면 두 번째 파티션 엔트리는 비어있고 그리하여 마지막 논리 드라이브에 존재하는 EBR 의 두 번째 파티션 엔트리는 비어 있게 됩니다.[다시 새로운 논리 드라이브가 생성될 때 까지]

이런 식으로 EBR 내에서 다음 EBR 을 가르키는 방식으로 EBR 은 무한정 확장될 수 있으며 이를 통해 논리 드라이브를 무한정 생성할 수 있는 것 입니다. 지금까지 설명한 EBR 과 논리 드라이브의 구조를 그림으로 살펴보면 아래와 같습니다.

02.jpg
출처 - 마이크로소프트 테크넷



이제 확장 파티션 내의 논리 드라이브가 어떠한 구조로 생성이 되는지 아시겠나요? 짧게 요약하자면 논리 드라이브는 자체적으로 EBR 을 포함하고 있으며 해당 EBR 에 자기 자신의 정보를 기록하고 이러한 EBR 은 서로 체인과 같이 연결되어 무한정 확장되는 구조를 가지고 있는 것 입니다. 주 파티션이나 확장 파티션과 같이 디스크의 지정된 특정 영역에 일정 용량의 테이블을 가지고 한정된 엔트리를 통해 구성되는 것과는 다른 구조인 것 입니다.




4. MBR 디스크 방식의 구조적인 한계

지금까지 MBR 디스크의 구조에 대해서 알아보았습니다. 그런데 MBR 디스크에서는 해결할 수 없는 문제가 하나 있습니다. 그것이 무엇이냐면 MBR 은 각 섹터를 인식하는 주소 체계로 32bit 체계를 사용하고 이 때문에 인식 가능한 주소의 한계가 232 개, 섹터의 크기가 512Byte 이기 때문에 최대 232 x 512 하여 2TB 의 용량 한계를 가진다는 것입니다.

MBR 디스크의 이러한 한계를 극복하고 여러가지 컴퓨팅 환경의 변화에 대응하기 위해 새롭게 내놓은 규격이 바로 확장 펌웨어 인터페이스(EFI)의 GPT 디스크 입니다.






Ⅲ. 윈도우와 디스크 형식

1. 새로운 디스크 형식 -GPT 디스크

우리가 흔히 접해보지 못한 디스크 형식으로 전통적인 IBM PC 의 바이오스(BIOS) 가 아닌 EFI 라는 좀 더 개선된 펌웨어에서 사용하는 디스크 형식으로 GPT 란 MBR 과 마찬가지로 디스크에 대한 정보를 담고 있는 영역입니다.

원래 EFI 에 포함되어 개발되어진 새로운 기술이지만 우리가 일반적으로 사용하는 BIOS 기반의 PC 에서도 사용할 수 있습니다.[물론 윈도우가 이를 지원 해 주어야 합니다. 윈도우 XP 64비트 버전부터 지원합니다. 윈도우 XP 32비트 버전에서는 지원하지 않습니다.] 다만 일반적인 BIOS 시스템에서 GPT 디스크에 설치된 윈도우로 부팅하는 것은 불가능합니다. GPT 디스크를 통해 부팅을 하기 위해선 BIOS 가 아닌 EFI(UEFI) 시스템이 필요하며 이를 윈도우에서도 지원을 해주어야 합니다. 그리하여 현재 이를 지원하는 메인보드와 윈도우를 함께 사용하는 환경이 아닌 보통의 환경에서 GPT 디스크는 데이터 저장용으로만 사용되고 있습니다.

03.png

이러한 GPT 디스크는 MBR 의 단점을 극복하기 위해 16 Byte 였던 파티션 엔트리의 크기를 128 Byte 로 확장하였고 파티션 테이블의 크기는 16,384 Byte 로 확장하였습니다. 그리하여 16,384 / 128 = 128 개로 하나의 디스크에 최대 128 개의 파티션을 생성할 수 있습니다.

또한 MBR 디스크에서 는 CHS 주소 체계를 사용하였던 것에 반해 GPT 디스크는 LBA(Logical-Block-Addressing) 주소 체계를 사용하고 있습니다.

결정적으로 MBR 디스크가 주소 체계에 32 bit 를 사용하여 단일 디스크의 최대 인식 용량이 2 TB 였던 것에 반해 GPT 디스크는 주소 체계를 64 bit 로 확장하여 최대 18 EB(엑사바이트, 1 EB = 1,048,576 TB) 까지 지원을 하고 있습니다. 이론적으로는 최대 264X 512 = 8 ZB(제타바이트, 1 ZB = 1024 EB) (9.444732966E21 Byte) 까지 지원을 할 수 있지만 18 EB 로 제한을 하고 있습니다.

한 가지 우리가 XP 가 아닌 비스타 이상의 OS 에서 파티션을 생성하게 되면 디스크의 가장 처음 부분과 마지막 부분에 1MB 의 여유 공간을 남겨두게 되는데 이는 MBR 디스크를 GPT 디스크로 변환할 때를 대비한 것 입니다.(왼쪽 그림의 GPT 영역을 참고) GPT 디스크에서는 MBR 과 달리 GPT 를 디스크의 처음 부분과 이에 대한 클론을 디스크의 마지막 부분의 1MB 영역에도 함께 준비하고 있습니다.

[주의] 한 가지 주의해야 할 점이 MBR 디스크와 GPT 디스크를 서로 상호 변환 할 때에는 디스크의 모든 파티션을 제거한 상태에서만 변환 할 수 있다는 사실입니다. 그러니 디스크의 형식을 변환하고자 한다면 디스크에 저장된 데이터를 백업할 수단을 마련해 놓아야합니다.




2. GPT 디스크의 파티션 테이블 구조

GPT 디스크도 MBR 을 가지고 있습니다. LBA 0 에 위치하고 있는 Protective MBR 이라는 것으로 이 MBR 은 GPT 디스크를 인식하지 못하고 MBR 디스크만을 인식하는 시스템이나 프로그램에서 해당 디스크가 비어 있는 것으로 착각하고 GPT 디스크를 수정하는 것을 방지하기 위해 해당 디스크가 비어있지 않다는 것을 알려주는 역할을 하고 있습니다.

LBA 1 에는 Primary GPT Header 가 위치하며 그 내용은 아래와 같습니다.

Partition table format
OffsetLengthContents
08 bytesSignature ("EFI PART", 45 46 49 20 50 41 52 54)
84 bytesRevision (For version 1.0, the value is 00 00 01 00)
124 bytesHeader size (in bytes, usually 5C 00 00 00 meaning 92 bytes)
164 bytesCRC32 of header (0 to header size), with this field zeroed during calculation
204 bytesreserved, must be zero
248 bytesCurrent LBA (location of this header copy)
328 bytesBackup LBA (location of the other header copy)
408 bytesFirst usable LBA for partitions (primary partition table last LBA + 1)
488 bytesLast usable LBA (secondary partition table first LBA - 1)
5616 bytesDisk GUID (also referred as UUID on UNIXes)
728 bytesPartition entries starting LBA (always 2 in primary copy)
804 bytesNumber of partition entries
844 bytesSize of a partition entry (usually 128)
884 bytesCRC32 of partition array
92*reserved, must be zeroes for the rest of the block (420 bytes for a 512-byte LBA)
LBA SizeTOTAL



LBA 2~33 에는 128 Byte 의 크기를 가지는 파티션 엔트리 128 개가 위치하고 있습니다. 각 파티션 엔트리의 구조는 아래와 같습니다.

GUID partition entry format
OffsetLengthContents
016 bytesPartition type GUID
1616 bytesUnique partition GUID
328 bytesFirst LBA (little-endian)
408 bytesLast LBA (inclusive, usually odd)
488 bytesAttribute flags (e.g. bit 60 denotes read-only)
5672 bytesPartition name (36 UTF-16LE code units)
128TOTAL



GPT 디스크에 대한 정보는 여기까지 입니다. 아직 범용적으로 사용되는 디스크 형식이 아니기 때문에 아직까진 쉽게 이해할 수 있는 관련 자료가 다소 부족한 편 입니다. 다만 디스크에 파티션을 나누고 활용하는 방법은 MBR 디스크와 다르지 않기 때문에 실제로 활용하는 데에는 별 어려움이 없을 것 입니다.






Ⅳ. 부록

1. MBR 디스크와 GPT 디스크의 비교

마지막으로 MBR 디스크와 GPT 디스크의 차이점에 대한 마이크로소프트 테크넷의 표를 보도록 하겠습니다. 내용은 중요한 부분만 추렸습니다. 또한 윈도우 XP 의 Resource Kit 에서 발췌한 표이기 때문에 비스타와 세븐에 관한 정보는 빠져있습니다. 비스타부터는 GPT 디스크를 기본적으로 지원하기 때문에 그 이후의 운영체제인 비스타, Server 2008, 세븐, Server 2008 R2 에서는 모두 지원하는 것으로 생각하시면 됩니다. 

Comparison of MBR and GPT Disks

Characteristic

MBR Disk

GPT Disk

Number of partitions on basic disks

Supports up to either:

  • Four primary partitions per disk, or
  • Three primary partitions and an extended partition with unlimited logical drives.

Supports up to 128 partitions.

Compatible operating systems

Can be read by:

  • Microsoft MS-DOS
  • Microsoft Windows 95
  • Microsoft Windows 98
  • Microsoft Windows Me
  • Windows NT, all versions
  • Windows 2000, all versions
  • Windows XP

Can be read by Windows XP Professional x64 Edition and Windows Server 2003 Service Pack 1.

Maximum size of basic volumes

Supports basic volumes up to 2 terabytes.

Supports basic volumes up to 18 exabytes.

Maximum size of dynamic volumes

Supports the maximum volume size of the file system used to format the volume.

Supports the maximum volume size of the file system used to format the volume.

Partition tables (copies)

Contains one copy of the partition table.

Contains primary and backup partition tables for redundancy and checksum fields for improved partition structure integrity.




2. 참고 자료


Title
List of Articles
번호 제목 글쓴이 날짜 조회 수
97 Convert OpenSSH private key to .ppk for Putty and Winscp file Hojung 2014.11.25 2527
» MBR vs GPT 디스크 형식 file Hojung 2014.11.12 3528
95 Windows XP에서 자동 로그온을 설정하는 방법 Hojung 2013.04.08 3227
94 Enable Ping in Windows 7 Firewall file Hojung 2013.04.01 3501
93 How to tell if your computer is joined to an Active Directory file Hojung 2013.02.05 4856
92 How to Create Bootable Windows 8 USB Drive from ISO Image Hojung 2012.11.23 3442
91 Windows 7에서 자동 로그인 설정하기 file Hojung 2012.10.15 3233
90 How to Run a Program as an Administrator in Windows 7 Hojung 2012.05.14 3494
89 원하는 프로그램을 무한정 반복 실행하는 스크립트 Hojung 2012.02.25 6352
88 Using Apache User Authentication in XP (.htpasswd) Hojung 2011.12.18 4817
87 How to Install Ubuntu Linux on Galaxy Tab 10.1 Hojung 2011.11.20 6277
86 Galaxy Tab 10.1 (SHW-M380W) – Root / Busybox / RAM Optimization Hojung 2011.11.20 10250
85 Reset Galaxy Tab 10.1 to factory default with image Hojung 2011.11.20 5594
84 mp3tag를 이용한 음악파일 정보정정 및 ipad/iphone 복사 file Hojung 2011.11.16 5624
83 Windows7에서 Photoship CS3 설치 후 '식별되지 않은 네트워크'로 인해 인터넷 불가시 file Hojung 2011.11.12 9657
82 Windows 7에 Home 에디션에 언어팩 설치하기 Hojung 2011.07.26 9571
81 윈도우 7 설치시 시스템 예약 파티션 만들지 않기 Hojung 2011.07.25 9164
80 Win7 language Pack Download for 32 & 64-bit Hojung 2011.07.14 8284
79 How to Create a Bootable Windows 7 USB file Hojung 2011.06.28 9031
78 XP에서 재부팅 바로가기 file Hojung 2011.06.14 8177
Board Pagination ‹ Prev 1 2 3 4 5 Next ›
/ 5

Designed by sketchbooks.co.kr / sketchbook5 board skin

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5