JS

2014년 6월 28일 토요일

윈도우 재설치 없이 MBR 디스크를 GPT 디스크로 변환하는 방법

경고: 모든 내용을 이해한 경우에만 따라할 것을 권장합니다. 최악의 경우 모든 데이터가 유실될 수 있으며, 필자는 그에 대해 어떠한 책임도 지지 않습니다. 데이터의 유실의 원인이 아래 설명에 포함된 오류에 의한 경우에도 마찬가지입니다.


윈도우를 MBR 타입의 디스크에 설치한 상태에서, 윈도우를 재설치하지 않고 파티션 테이블 타입을 GPT로 바꾸는 방법을 설명한다. 이 글은 윈도우 포럼의 글 등을 참고하여 작성하였다.

요구사항: 최근 버전의 64비트 윈도우, UEFI를 지원하는 메인보드, 기타 등등.

단계 1

윈도우 자체에서는 디스크를 초기화하지 않고 파티션 테이블 타입을 변경할 수 없다. 따라서 제3의 프로그램을 이용해야 한다. 여기서는 SystemRescueCd로 부팅하여 gparted와 gdisk를 이용하였다. 물론 다른 프로그램을 써도 된다.

단계 1.1

SystemRescueCd로 부팅하고 gparted를 실행한다.

MBR 타입의 디스크에 윈도우 8.1을 설치하면 Recovery 파티션의 크기가 350MB로 설정된다. GPT 타입의 디스크에 직접 설치해 본적은 없는데, 이 경우에는 300MB라고 하는 것 같다. 그러므로 Recovery 파티션의 크기를 300MB로 줄여준다. 상황에 따라 없애 버려도 된다.

나중에 EFI 파티션과 MSR 파티션을 만들어야 하는데 각각 100MB와 128MB를 차지한다. 이 2개의 파티션은 gparted에서 만드는 것이 아니라 윈도우에서 만들 것이므로 228MB의 공간이 남도록 파티션 크기 조절을 해야 한다. 최종적으로 다음 순서대로 파티션이 생성되면 "권장" 설치 방법과 동일해진다.

* Windows Recovery Environment (Windows RE) - 300MB
* Extensible Firmware Interface System Partition (ESP) - 100MB
* Microsoft Reserved Partition (MSR) - 128MB
* Windows

위 모양대로 파티션을 만드려면 기존의 윈도우가 설치된 파티션을 우측으로 이동해야 하는데, 이렇게 하면 시간이 오래 걸린다. 하드디스크의 경우 시간이 정말 오래 걸릴 수 있고, SSD의 경우 수명에도 문제가 될 수도 있다. 윈도우가 실제로 차지하는 공간이 작은 경우에도 gparted는 파티션 전체를 이동시키는 것 같고, 따라서 파티션 용량에 비례해서 시간이 오래 걸릴 것이다.
a. 윈도우 파티션의 데이터를 백업한 후, 파티션을 삭제하고 다시 만들고, 데이터를 복원하는 방법이 오히려 나을 것 같다.
b. 아니면 피티션 구조를 "권장" 방법이랑 다르게 할 수도 있을 것 같다. ESP나 MSR가 윈도우 파티션보다 뒤로 가게 만들어주는 것이다. 이렇게 구성할 경우 생기는 부작용에 대해서는 아는 바가 없다.
그리고 나중에 설명하겠지만 파티션의 가장 끝에 빈 공간을 약간 늘려 주어야 한다. 예를 들면 다음과 같은 형태로 만들어주면 된다.

* Windows RE - 300MB (350MB에서 축소됨.)
* 빈 공간 228MB 마련
* 우측으로 이동한 윈도우 파티션 (크기가 약간 작아지면서 우측으로 이동됨.)
* 약간의 빈 공간

사실 빈 공간 228MB가 윈도우보다 반드시 앞에 있어야 하는 것은 아니며, MSR은 안 만들어도 당장은 동작하므로 빈 공간을 100MB만 만들어 두어도 상관 없으며, 여의치 않으면 Windows RE는 지워버려도 당장은 상관 없다.

원하는대로 파티션 테이블을 조작한 후 gparted를 종료한다.

단계 1.2

이제 gdisk를 이용한다. 참고로 gdisk는 fdisk의 GPT 버전 비슷한 것이다. 아마 디스크의 파티션 테이블이 MBR 타입이라는 경고가 뜰 것이다. 여기서 w 명령을 이용하여 파티션 테이블을 기록하면 디스크가 GPT 타입으로 변경된다. N 블럭이 겹친다는 경고가 뜰 수도 있는데, GPT의 경우 파티션 테이블의 복사본을 디스크의 끝에 저장하기 때문이다. 이 때문에 전 단계에서 디스크 끝에 약간의 빈 공간을 남겨두라고 한 것이다.

단계 1.3

다시 gparted를 실행하고, 너무 넉넉하게 만든 약간의 빈 공간을 다시 채운다.

단계 1.4

Recovery 파티션의 권장 용량이 350MB에서 300MB로 줄었다는 것은 뭔가 필요 없는 것이 생겼다는 것이다. Recovery 파티션을 mount해서 살펴보면 Boot, bootmgr, BOOTNXT, BOOTSECT.BAK처럼 부팅 관련된 파일들이 있다. 우리는 EFI를 쓸 것이므로 이것들은 더 이상 필요가 없고, 삭제해도 될 것 같은데 확실하지는 않다. Recovery 파티션은 다시 umount해준다. 이제 단계 1은 끝났다. 재부팅을 한다.

단계 2


단계 2.1

윈도우 설치 디스크로 부팅한다. SHIFT+F10을 이용하여 명령 프롬프트로 들어간다.
여기서 diskpart 명령을 이용한다. "list disk"로 디스크를 확인하고 "select disk N"으로 디스크를 선택한다. (필요하면 help 명령으로 도움을 받으면 된다.)

단계 2.2

(이 단계가 왜 필요한지 모르겠다. 어쩌면 필요 없을 수도 있다.)
첫번째 파티션, 즉 recovery 파티션을 선택하고, GUID를 바꿔준다.
select partition 1
set id=DE94BBA4-06D1-4D40-A16A-BFD50179D6AC
assign letter-R
letter는 마음대로 해도 되는데, 필자는 recovery부터 순서대로 R, S, T를 쓰기로 했다.

단계 2.3

빈공간 228MB에 두 개의 파티션을 생성해야 한다.
create partition efi size=100
format quick fs=fat32
assign letter=S
create partition msr size=128
MSR은 format을 안 해도 되는 건지 모르겠는데, 일단 넘어간다.

단계 2.4

윈도우가 설치된 파티션을 선택하고 드라이브 문자를 C로 만들어준다.
select partition 4
assign letter=C
diskpart는 이제 종료한다.

단계 2.5

다음 명령으로 boot 매니저를 설치한다.
bcdboot C:\Windows /s S: /f UEFI

이제 다시 재부팅

단계 2.6

부팅할 때 F2 키를 누르고 UEFI 설정에 들어가서, UEFI를 활성화한다. 이것으로 모든 작업이 끝났다. 제대로 되었다면 윈도우로 부팅이 가능하다.

참고자료

1. http://windowsforum.kr/review/4750525
2. http://windowsforum.kr/review/4767059
3. https://gitorious.org/tianocore_uefi_duet_builds/pages/Windows_x64_BIOS_to_UEFI
4. http://technet.microsoft.com/en-us/library/hh824874.aspx
5. http://technet.microsoft.com/en-us/library/cc754498.aspx


댓글 없음:

댓글 쓰기