2015/03/01

Ubuntu 14.10 fdisk와 gdisk


Ubuntu 14.10의 fdisk에서 GPT 파티션 지원 시작

우분투 14.10부터 fdisk에서 GPT 파티션도 지원하기 시작했다는 것을 우연히 발견했다. 당연히 fdisk는 DOS(MBR) 파티션에 사용하고 GPT 파티션 작업에는 gdisk(GPT fdisk라고도 함)를 사용해 왔기 때문이다. 아래에 새로운 fdisk와 gdisk 메뉴 스크린 샷을 첨부한다.


gdisk가 fdisk로 완전히 통합될지는 모르겠지만 아직은 gdisk에 너무 익숙해서 fdisk를 쓰고 싶은 마음이 생기지는 않는다. 여기서는 gdisk의 몇가지 팁들을 남겨두고자 한다.

gdisk를 이용한 파티션 테이블 정보 관리

아래 화면과 같이 GPT 파티션 Table 정보와 Protected MBR 파티션 정보를 gdisk로 관리할 수 있다. Multi-OS 환경에서 이 정보들은 잘 Backup 해둘 필요가 있다. Linux는 Gparted/parted, Windows는 Disk Manager/diskpart, Mac OS X는 Disk Utility와 같이 OS 별로 저마다의 Disk 관리 Tool 들이 있는데, 이 들이 디스크 파티션 변경시 저마다의 방법으로 파티션 Table 정보를 변경해 버리기 때문이다.


가령, Mac OS X의 Disk Utility로 Disk의 마지막 파티션을 미할당 상태로 남겨 두고 리눅스에서 Gparted로 fat32 파티션을 새로 할당하면 Protected MBR 파티션 정보가 Hybrid-MBR 파티션 정보로 바뀐다. 이 상태에서 Windows로 부팅하면 자동 복구 모드로 넘어 가는데 복구하면 파티션이 완전히 망가지는 경험을 하게된다. 한가지 경험담을 더 예로 들면, Windows에서 fat32 파티션을 지웠다가 다시 생성했더니 Mac OS X로 부팅할 수 없는 문제가 발생했다. 이런 일이 어느 날 갑자기 생기면 Mac OS X의 문제라고 생각하고 OS 재설치를 시도하게 된다. 그러나 재설치를 해도 재부팅 후 Mac OS X로 부팅할 수 없게 된다. Mac OS X의 Disk Utility로 verify 해 보면 파티션 오류가 발생하고 복구할 수는 없다. 나중에 알고보니 Mac OS X 파티션 Type 정보가 "Apple HFS/HFS+"였는데 "Microsoft basic data" Type으로 바뀌어서 발생한 문제였다.

gdisk는 파티션 테이블 원본을 Binary 파일로 Backup했다가 문제가 생겼을 때 복구하거나, 아니면 파티션 정보를 텍스트 파일로 저장했다가 나중에 수작업으로 파티션 정보를 일일이 복구할 수 있도록 해준다. 위의 경험담은 어쩌면 지극히 일부의 문제 사례일 것으로 추정된다. 즉, Multi-OS 환경에서 특정 OS의 디스크 관리 툴을 가지고 파티션 추가/삭제/변경 작업시 파티션 테이블의 어떤 정보가 동시에 변경될지 예측하기 어렵다. 특정 OS로 갑자기 부팅이 안되는 문제가 발생하면 gdisk로 파티션 테이블 변경 사항이 있는지를 가장 먼저 확인하는 것이 좋다. 파티션 테이블만 복구하면 대부분의 문제가 해결된다.

gdisk 활용 팁

파티션 Type이 변경된 경우, gdisk의 l(list known partition types) 명령으로 파티션 Type code를 알아낸 후 t(change a partition's type code) 명령으로 해당 파티션의 code를 변경해 주면 된다.

리눅스 GPT 파티션들은 Gparted로 파티션을 새로 만들면 파티션 Type code가 0700(Basic data partition)이 된다. 이 파티션은 Windows로 부팅시 탐색기에서 새로운 드라이브로 보이는데 마우스로 클릭하면 포맷할지 물어본다. 이 자체가 사용자의 실수를 유발할 수 있기 때문에 Windows에서 리눅스 파티션이 아예 보이지 않도록 해 줄 필요가 있다. gdisk에서 Type code를 8300(Linux filesystem)으로 바꿔주면 Windows 탐색기에 더이상 리눅스 파티션이 보이지 않게 된다.

순수 UEFI-GPT Multi-OS 환경에서는 Protected MBR 파티션은 디스크 전체가 하나의 파티션으로 잡혀야 하는데 Hybrid-MBR 파티션 정보로 바뀌면 여러 개의 파티션이 나타나게 된다. 이 때는 gdisk의 x(Expert command), n(create new protective MBR) 명령으로 새로 파티션을 생성해 주면 문제가 해결된다.

참고 사항

Hybrid-MBR 파티션은 Mac OS X의 Boot Camp를 사용해서 Windows를 설치할 때 BIOS 모드를 emulation 해 주기 위해서 사용하는 파티션 방식이다. 즉, Mac OS X 자체는 GPT 파티션을 사용하는데 Windows의 DOS(MBR) 파티션을 지원하기 위해서 짬뽕 파티션을 사용하는 것이다. 그런데, 리눅스의 Gparted도 이 방식을 지원하듯하다. 문제는 이것을 모르고 사용하면 Multi-OS 환경에서 파티션 정보가 엉켜서 특정 OS로 부팅이 안되는 사태가 발생한다는 것이다.


댓글 없음:

댓글 쓰기