MBR ( Master Boot Record )
MBR은 Disk 내에 존재 하는 HDD의 전체 구조에 대한 지도와 같이 보면 될 것 같다.
컴퓨터를 켜면 ROM BIOS 메모리 번지의 흐름에 따라 Device등을 체크하고 나면 OS 부팅을 위해 HDD의 실린더 0, 헤더 0, 섹터 1의 위치로 접근한다. 이 출발점(CHS 0:0:1)에서부터 HDD의 전체 구조에 대한 map 정보가 저장되어 있는 영역을 MBR(마스터 부트 레코드)이라고 한다.
이 마스터 부트 레코드는 다시 마스터 부트 코드 (Master Boot Code)와 파티션 테이블(Partition Table)로 나눠져 있다. 이 파티션 테이블은 4개까지가 존재하고 그 외 영역은 확장 파티션 테이블로 만들어서 주 파티션 테이블 중 하나가 확장 파티션 테이블 정보로 맵핑해주는 역할을 한다.
BIOS는 마스터 부트 코드의 작은 프로그램인 부트 스크랩 로더 코드를 실행하므로서 어떤 OS를 실행할것인지 결정되게 된다. 그러므로 여러 OS가 깔려 있는 경우에는 이 boot loader의 환경 설정을 해두므로서 여러 OS를 선택해서 부팅 가능하게 된다. 이 부트 로더에서 선택된 파티션으로 가게 되면서 어떤 영역에 있는 부트 섹터로 진행할지가 결정되게 된다. 그러므로 그 영역의 OS에 해당하는 부트 섹터에 있는 커널을 읽어들이므로서 OS가 부팅되게 된다.
GPT (GUID Partition Table) Disk
http://en.wikipedia.org/wiki/GUID_Partition_Table
이것은 물리적 hard disk의 표준 partition layout이다. 이것은 PC BIOS를 대신하는것 처럼 Intel
에 의해 제안된 확장 펌웨어(Extensible Firmware Interface(EFI))의 한 부분이라고 생각 하면된다. 이것은 original IBM PC의 유산물중의 하나로서 BIOS가 MBR를 사용하듯 EFI는 GPT를 쓴다.
MBR이 Disk를 CHS(Cylinder-Head-Sector)를 사용하는것 처럼 GPT는 LBA(Logical-Block-Addressing)를 사용한다. GPT역시 MBR를 갖고 있다. GPT는 LBA0에 MBR 정보가 담겨있다. 그리고 LBA1에 GPT header 정보가 담겨 있다. 그 외 파티션 정보는 각 시스템에 따라 조금씩 다를 수 있다. APPLE에 따르면 LBA size는 항상 512byte라고 추측하지 말라고 한다.
( 64bit windows 시스템에서는 16,384 bytes 또는 32sectors ??? )
GPT는 redundancy를 지원하기위해 GPT header와 partition table을 Disk layout 상단과 하단에 나눠서 중복으로 쓴다. Disk Layout 중간에 거울을 둔것처럼 서로 대칭 되게 쓴다.
LBA1
LBA1은 사용자가 이용 가능한 block 크기나 block 개수 등 partition할 수 있는 정보가 들어 있는 partition table header이다.
( 64bit Windows Server 2003같은경우에는 최대 128개의 파티션을 만들수 있다. )
MBR을 사용하는 디스크는 최대 2TB까지 사용 가능하며 주 파티션 4개와 주파티션중 1개를 확장 파티션으로 더 쪼 갤 수 있다. 이것은 Linux의 fdisk 나 윈도우에서 사용 가능하다.
GPT는 최대 18EB까지 사용가능하며 파티션은 위에서 본것처럼 최대 128개까지 가능하며 파티셔은 parted (in linux)를 사용하거나 DiskPart.exe (in Windows 2003 Server SP1)
Windows Sever 2003 service pack 1 또는 Linux OS가 깔리는 x86 또는 x86_64 기반 시스템에서 OS 영역은 일반 MBR 파티션 영역에 존재 해야 하며 그 외 파티션은 MBR 또는 GPT로 사용 하면된다.