Hybrid MBR

맥북에서 부트캠프로 윈도우를 설치하면 하이브리드 MBR로 시스템이 구성된다. 덕분에 고생을 좀 해서 글을 남김.

사실 하이브리드 MBR은 표준에 부합하지 않는 변칙 구성이다. 잘 구성된 환경에서야 어떻게든 굴러가겠지만, 조금만 삐끗하면 구성이 틀어지면서 4차원으로 날아간다.
이는 맥 계열이 인텔 EFI 2.0을 구현하지 않기 때문이다. 맥 계열에서는 EFI 1.x를 구현하며, 이는 윈도우 등 다른 OS와 호환성이 없다.
따라서 윈도우 설치를 위해 BIOS를 에뮬레이션 하며, 덕분에 GPT 미지원, 그리고 하드웨어 퍼포먼스 하락 등 다양한 문제가 발생한다.

애플이 나쁜거라고!

1. 하이브리드 MBR
MBR과 GPT가 무엇인지는 알아서 검색하시라. 사실 이게 뭔지 모른다면 이 글을 읽을 필요도 없을 것이다.
여튼 GPT에서는 최소한의 하위 호환성을 보증하기 위하여 Protective MBR을 구현한다.

사실 보호MBR은 별거 없다. 구형 OS에서 GPT 디스크를 열었을 때 “이 디스크는 니가 모르는 파티션으로 꽉 차있어”라고 보이게 만드는 것이다.
이렇게 함으로써 우발적인 디스크 초기화(=0번 섹터를 밀어버림) 및 GPT 데이터 훼손을 방지한다.

보호MBR은 단일 파티션을 가지며, 해당 파티션의 타입은 EEh, 그리고 1번 섹터부터 GPT 파티션의 마지막 섹터까지 스팬하도록 구성된다.
물론 2TB보다 큰 디스크에서는 그냥 2TB 경계까지만 스팬한다. 2TB 경계를 넘어가는 영역은 MBR 만으로는 죽었다깨나도 접근 못한다.

하이브리드MBR은 보호MBR을 변형한 형태다. 알다시피 MBR에는 4개까지 파티션 테이블을 저장할 수 있는데, 보호MBR은 이 중 하나만 사용한다.
그렇다면 남은 3개 테이블에 값을 넣어 쓸 수 있지 않을까, 에서 시작한게 하이브리드MBR이다.

맥에서 부트캠프를 설치하면, 보호MBR은 첫 번째 파티션(애플EFI)만을 보호하도록 설정된다. 두 번째와 세 번째는 각각 맥OS 주 파티션, 복원 파티션으로 설정된다.
당연하지만 네 번째는 윈도우용 파티션으로 지정된다.
이렇게 함으로써 BIOS 모드로 부트해도 디스크의 파티션에 문제없이 접근할 수 있는 것이다. 추가 파티션은 못 만들지만!

2. 하이브리드 MBR에서 Mismatch 문제
자, 부트캠프를 이용하여 하이브리드MBR을 제작하면 GPT와 MBR 양쪽 모두 쓸 수 있다는걸 알았다. 그럼 뭐가 문제일까?
파티션 조작 툴이 이걸 이해 못한다는게 문제다. 거듭 말하지만 파티션 조작 툴의 문제가 아니다. 하이브리드MBR은 표준이 아니거든! 애플이 나쁜거다.

하이브리드MBR 디스크는 유효한 GPT와 MBR을 모두 가진다. 그렇다면 어느 걸 써야 할까? 아 고민된다.
이게 표준이 있으면 좋겠지만 아쉽게도 없다. OS마다 다르다는 이야기.

맥은 당연히 GPT를 우선 사용한다. 리눅스도 GPT를 사용한다. 윈도우는? MBR을 우선 사용.
더 웃긴건 윈도우에서 돌아가는 파티션 도구 중 일부는 GPT를 먼저 쓴다는 점이다. 어느거를 쓰는지는 케이스-바이-케이스. 해 봐야 안다.

여튼 파티션 크기가 바뀌지 않는다면 비일치 문제도 생기지 않는다. 문제는 파티션 크기를 바꿔야 할 때.
예를들어 고스트로 백업뜬걸 복구한다고 해 보자… 파티션 크기가 바뀝니다 지우고 새로 만들기 때문에.

하이브리드MBR을 제대로 지원해서 양쪽 다 올바로 수정해 준다면 상관이 없겠지만, 아쉽게도 그런 툴은 아직 존재하지 않는다.
어느 한 쪽만 휙 수정하고 만다. 덕분에 비일치 문제가 생긴다.

예를들어, 파티션툴로 윈도우 파티션 크기를 10GB 줄였다고 해 보자. 근데 이 툴이 GPT를 우선 인식했다!
이러면 GPT에서는 10GB 줄어들었고 디스크 뒤쪽에 10GB가 남게 된다. 근데 MBR에서는 여전히 디스크 꽉찼다고 나온다.

이 상황에서 다른 툴을 이용해서 윈도우 파티션크기를 다시 늘렸다. 근데 이 툴은 MBR만 인식한다. 이러면 MBR은 correct.
문제는 GPT는 10GB가 비어있는거로 나온다는 점이다. 아이고 머리야. 여기에 파티션이라도 만들었다가는? 데이터 오염으로 사망한다.

3. 어떻게 해야 하는가?
다행히도 gdisk 같은 툴로 만져서 MBR과 GPT 파티션 테이블을 직접 수정할 수 있다.
다만 잘못 건들면 디스크 전체가 날아간다.

4. 결론
하이브리드MBR은 웬만하면 쓰지 말자. 만약 써야 한다면 파티션 크기는 바꾸지 말자.
어쩔 수 없이 파티션 크기가 바뀌었다면, 매 번 동기화해 줘야 한다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다