레이블이 install인 게시물을 표시합니다. 모든 게시물 표시
레이블이 install인 게시물을 표시합니다. 모든 게시물 표시

2015/10/07

Grub과 gdisk를 이용한 Windows UEFI/BIOS 설치 USB 만들기


OS X El Capitan으로 Upgrade하면서 우분투 설치 USB가 잘 동작이 안됐던 문제 때문에 USB를 갖고 놀다가 실수로 USB를 지워 버렸다. 우분투 설치 USB를 다시 만드는 김에 Windows 설치 겸용으로도 사용할 수 있도록 Grub과 gdisk를 이용해서 다시 만들었다.

USB 굽기 Tool을 사용하지 않는 방식의 장점은 USB 용량이 커지고 있기 때문에 저장공간을 최대한 활용할 수 있다는 것이다. All-in-one multi-OS 설치 USB 까지는 아니더라도 USB 1개로 BIOS 방식이든 UEFI 방식이든 가리지 않고 우분투와 Windows 설치가 가능하도록 하려는 것이다. 우분투나 OS X에서는 GPT 파티션이든 Hybrid MBR 파티션이든 어떻게 만들어도 상관없는데 이전 글에서 다룬 바와 같이 Windows는 GPT 파티션에 대한 제약 사항이 많다. 이 때문에 우분투를 비롯한 리눅스는 여러개 배포판 또는 버전을 1개의 USB에 iso 파일로 담으면 되지만, Windows는 1개의 버전만 가능하다. 엄밀히 말하면, 아래의 Windows USB 제약사항 들 때문에 Grub2를 사용할 경우  Windows 1개 버전에 대해서는 UEFI/BIOS 설치가 가능하고 2개의 BIOS용 Windows 버전을 추가할 수는 있다.

Grub2를 이용한 Windows 설치 USB 만들 때의 제약사항
  • 우분투처럼 Windows 설치 iso 파일을 이용하여 직접 부팅할 수는 없다. Windows 설치 파티션에 Windows 설치 iso의 내용물을 모두 복사해야 한다. 뭐 syslinux/isolinux로 가능할 수도 있단다. 다만, 이 경우 3~4GB의 Windows 설치 파일을 모두 메모리에 로딩하기 때문에 메모리 제약사항이 생긴단다.
  • Windows 설치 파일들은 USB 상에서는 반드시 첫번째 파티션에 있어야 하고 FAT 파일시스템을 사용해야 한다. 하드디스크는 상관없는데 USB는 Windows에서 저장장치로 쳐주지 않는다. 단, BIOS 모드로 Windows 설치시에는 Grub2의 drivemap 기능을 사용할 수 있으므로 다른 파티션에 있어도 된다. Grub2의 drivemap은 UEFI 모드에서는 사용할 수 없더라.
  • BIOS 모드로 Windows 설치시에는 GPT 파티션을 인식하지 못한다. 이 때문에 Hybrid MBR 파티션을 사용해야하고 EFI Protetive 파티션을 제외한 나머지 3개의 MBR 파티션을 사용할 수는 있다.
  • Hybrid MBR 파티션을 사용하는 USB는 Windows 설치시에는 문제가 없지만, Windows에서 사용하고자 할 때에는 제약사항이 생긴다. EFI 모드의 Windows는 그나마 GPT 파티션들을 인식할 수 있지만 BIOS 모드의 Windows는 USB 파티션들을 아예 인식하지 못할 수 있다.

gdisk를 이용한 USB 파티션 만들기

위의 Windows USB 제약 사항을 고려하여 아래와 같이 gdisk로 파티션을 나누었다. 당연히, 빈 USB에서 작업해야 하고, GPT 파티션 Table을 먼저 만들어야 한다.

$ sudo gdisk /dev/sdb
[sudo] password for aaa:
GPT fdisk (gdisk) version 0.8.10

Partition table scan:
  MBR: hybrid
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with hybrid MBR; using GPT.

Command (? for help): p
Disk /dev/sdb: 31703040 sectors, 15.1 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 9D794CCE-5719-43A0-A5A7-D8DFBE8488D3
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 31703006
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         8390655   4.0 GiB     0700  UWRoot
   2         8390656         8800255   200.0 MiB   EF00  UESP
   3         8800256         8802303   1024.0 KiB  EF02  BIOS boot partition
   4         8802304        17190911   4.0 GiB     0700  UWData
   5        17190912        31703006   6.9 GiB     8300  ULData

Command (? for help): x

Expert command (? for help): o

Disk size is 31703040 sectors (15.1 GiB)
MBR disk identifier: 0x01AEFD5F
MBR partitions:

Number  Boot  Start Sector   End Sector   Status      Code
   1      *           2048      8390655   primary     0x07
   2               8390656      8800255   primary     0xEF
   3               8802304     17190911   primary     0x07
   4                     1         2047   primary     0xEE

Expert command (? for help):
위의 내용은 이미 만들어진 USB 파티션을 보여 준 것인데 이것을 참고하여 파티션을 만들면 된다. 먼저 gpt 파티션들을 만들고 파티션 Tpye code를 위와 같이 지정해 준다. 5개의 gpt 파티션을 만들었는데 필수 파티션은 앞의 1~3의 3개 파티션이다. 1번 파티션이 Windows 설치 파티션(4GB)이고, 2번은 ESP(EFI System Partiton; 200MB), 3번은 Grub BIOS Boot Partition(1MB)이다. 1번이 반드시 Windows 설치 파티션이어야 하기 때문에, ESP로 2번 파티션을 사용하고 있다. 참고로 4번은 Windows Data용 파티션이고 5번은 리눅스 설치 iso들을 집어 넣기 위한 파티션이다.

파티션을 나누고 나서 gparted를 이용하여 파일시스템을 만들어 준다. 1과 2번은 fat32로 format 해야 하고, 3번은 포맷할 필요 없다. 4번은 fat32, 5번은 ext4로 포맷하였다. 

gparted로 포맷하고 나서, 다시 gdisk로 Hybrid MBR 파티션을 만들어 주어야 한다. 참고로, gparted로 포맷한 후 gdisk에서 확인해 보니 Hybrid MBR 파티션이 만들어져 있었다. 하지만, 이것을 사용하면 안되고, 위의 마지막 4개의 파티션과 같이 gdisk에서 gpt 1, 2, 4번 파티션을 Hybrid MBR 파티션으로 새로 만든다. 위에 만들어진 Hybrid 파티션을 보면 4번이 EFI Protective 파티션이 되었음에 주의할 필요가 있다.

결과적으로, 아래와 같이 파일시스템이 만들어졌다. parted/gparted에서는 Hybrid MBR 파티션 정보를 볼 수 없다.

$ sudo parted /dev/sdb print
Model: USB Flash Disk (scsi)
Disk /dev/sdb: 16.2GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: pmbr_boot

Number  Start   End     Size    File system  Name                 Flags
 1      1049kB  4296MB  4295MB  fat32        UWRoot               msftdata
 2      4296MB  4506MB  210MB   fat32        UESP                 boot, esp
 3      4506MB  4507MB  1049kB               BIOS boot partition  bios_grub
 4      4507MB  8802MB  4295MB  fat32        UWData               msftdata
 5      8802MB  16.2GB  7430MB  ext4         ULData
USB에 UEFI 및 BIOS Grub 설치

UEFI Grub은 파일만 복사하면 되므로 아무 리눅스에서나 작업이 가능하지만, BIOS Grub을 설치하려면 BIOS 모드로 부팅한 리눅스에서 작업해야 한다. BIOS 모드로 설치된 리눅스가 없다면 Virtual Box로 하나 만들어 두는게 좋다.

UEFI Grub 파일들을 우분투 12.04.2 이후의 64bit 우분투 설치 iso에서 USB ESP 파티션(2번)에 아래와 같이 복사한다.

$ sudo mkdir /tmp/mnt
$ sudo mount ~/Downloads/ubuntu-15.04-desktop-amd64.iso /tmp/mnt

$ sudo mount /dev/sdb2 /mnt
$ sudo cp -R /tmp/mnt/EFI /mnt
$ sudo cp -R /tmp/mnt/boot /mnt

BIOS Grub은 아래와 같이하면, 2번 파티션 외에 USB의 MBR Boot Sector와 3번 Grub BIOS Boot Partition에 설치 된다.

$ sudo grub-install --recheck --boot-directory=/mnt/boot /dev/sdb

우분투 설치 iso 파일들을 USB에 복사

우분투 설치용으로도 USB를 사용할 것이기 때문에 우분투 설치 iso들을 아래와 같이 5번 ext4 파티션에 복사하였다.

$ sudo umount /mnt
$ sudo mount /dev/sdb5 /mnt
$ sudo mkdir /mnt/boot-isos

$ sudo cp ~/Downloads/ubuntu-15.04-desktop-amd64.iso /mnt/boot-isos
$ sudo cp ~/Downloads/ubuntu-15.04-desktop-i386.iso /mnt/boot-isos
$ sudo sync

Windows 설치 파일 복사

USB 1번 파티션에 Windows 설치 iso 이미지 파일 내의 모든 폴더/파일 들을 복사한다.

$ sudo umount /mnt
$ sudo mount /dev/sdb1 /mnt

$ sudo umount /tmp/mnt
$ sudo mount ~/Downloads/windows.iso /tmp/mnt
$ sudo cp -R /tmp/mnt/* /mnt
$ sudo sync

Grub Boot Menuentry 설정

아래의 Grub 부트 엔트리를 USB 2번 ESP 파티션의 /boot/grub/grub.cfg에 추가한다. 원래의 grub.cfg 파일을 지우고 새로 만드는 편이 좋다.

$ sudo umount /mnt
$ sudo mount /dev/sdb2 /mnt
$ sudo rm -f /mnt/boot/grub/grub.cfg
$ sudo nano /mnt/boot/grub/grub.cfg

$ cat /mnt/boot/grub/grub.cfg
menuentry "[USB] Ubuntu 64-bit Install" {
   set isofile="/boot-isos/ubuntu-15.04-desktop-amd64.iso"
   loopback loop (hd0,5)/$isofile
   linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noprompt noeject
   initrd (loop)/casper/initrd.lz
}

menuentry "[USB] Ubuntu 32-bit Install" {
   set isofile="/boot-isos/ubuntu-15.04-desktop-i386.iso"
   loopback loop (hd0,5)/$isofile
   linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
   initrd (loop)/casper/initrd.lz
}

menuentry "[USB] UEFI Mode Windows 8+ Install" {
   insmod part_gpt
   insmod fat
   set root='(hd0,gpt1)'
   chainloader (${root})/efi/boot/bootx64.efi
}

menuentry "[USB] BIOS Mode Windows Install" {
   insmod part_gpt
   insmod fat
   set root='(hd0,gpt1)'
   drivemap -s (hd0) ${root}
   ntldr (${root})/bootmgr
}
참고로 마지막 "[USB] BIOS Mode Windows Install" 메뉴에서 drivemap은 불필요 하지만, BIOS 모드의 Windows 설치 파티션이 USB의 첫번째 파티션이 아닐때 사용할 수 있다.

Windows 버전에 대한 고려 사항

위의 Grub 부트 엔트리 들 중 "[USB] UEFI Mode Windows 8+ Install" 메뉴엔트리는  Windows 8 이후 버전 들에만 적용된다. Windows 설치 iso 파일에 /efi/boot/bootx64.efi 파일이 추가됐기 때문이다.

Windows에서 UEFI를 지원하기 시작한 것은 Windows Vista 이후이고 64bit 버전에만 적용된다. Windows Vista에서 현재의 Windows 10까지 모든 Windows 버전에서 UEFI Windows Boot Manager로 사용될 수 있는 파일이 있는데 bootmgfw.efi라는 파일이다. 이 파일은 Windows 설치 iso 이미지 안에 포함된 /sources 폴더에 install.wim 파일 안에 포함되어 있다. 이미 다른 PC에 설치된 Windows가 있다면, C:\Windows\Boot\EFI\bootmgfw.efi 파일을 사용해도 된다.

가령, UEFI 모드로 Windows 7을 설치하고자 할 때에는, bootmgfw.efi 파일을 현재 폴더에 복사해 놓았다면 아래와 같이 USB의 Windows 설치 파티션에 /efi/boot/bootx64.efi 파일로 복사해 주면 된다.

$ sudo umount /mnt
$ sudo mount /dev/sdb1 /mnt

$ sudo mkdir /mnt/efi/boot
$ sudo cp ./bootmgfw.efi /mnt/efi/boot/bootx64.efi

설치 USB Test

PC BIOS/Firmware 설정이 UEFI냐 BIOS/CSM 모드냐에 따라 Grub 메뉴에서 UEFI Mode인지 BIOS Mode인지를 확인해서 맞는 놈을 선택해서 부팅해야 한다. 우분투 메뉴는 UEFI/BIOS를 따로 구분하지 않는다. 해당 모드의 Grub이 자동으로 부팅시에 결정되기 때문이다.

Mac PC에서 USB 부팅시 참고사항

Mac에서는 USB를 꽂고 부팅시 <Option> Key를 누르고 있으면 USB Icon으로 부팅 가능한 옵션이 추가되어 표시되는데, 아이콘 밑에 Windows로 표시된 놈은 Windows 부팅 옵션이 아니고, BIOS 모드로 부팅하기 위한 옵션이다. 이 글대로 설치 USB를 만들면 Windows로 표시된 아이콘 외에 EFI Boot로 표시된 아이콘이 두 개가 보인다. 하나는 EFI 모드의 Windows 설치 파티션으로 부팅하고, 하나는 EFI 모드의 Grub으로 부팅되는데 어느 놈이 어느 놈인지 구분할 수 없다. rEFInd에서는 구분이 가능하다. 또한, Windows로 표시된 아이콘을 선택하면 BIOS 모드의 Grub으로 부팅된다.

즉, Mac은 BIOS/Firmware 설정이 따로 없는 대신에 UEFI와 BIOS/CSM 부팅을 동시에 지원한다. Boot Camp가 이 BIOS/CSM 모드를 이용하는 것이고 BIOS/CSM 모드에서는 Hybrid MBR 파티션을 사용한다.

2015/09/12

BIOS GPT 하드디스크를 이용한 Windows 10 Clean Install


이전 글에서는 UEFI를 지원하는 PC에서 Windows 10 Clean Install 한 것에 대해 얘기했었는데, 여기서는 GPT(GUID Partition Table) 파티션을 사용하는 BIOS PC에서 Windows 10 Clean Install 한 것에 대해 얘기해 보려고 한다.

구입한지 5년된  Dell 11" Alienware(m11x)에는 Windows 7과 Ubuntu 외에 Hackintosh를 시험삼아 설치했었다. 결과적으로 Hackintosh 설치 당시에는 m11x가 최신 PC였기 때문에 설치는 했지만 네트웍과 Nvidia 3D 가속이 안돼서 이 후로 쓰지 않고 방치해 놓고 있었다. 참고로, 당시에 성능과 휴대성을 갖춘 노트북으로 Dell 12" 모델이 단종되는 바람에 이 놈을 산 것이었다. m11x  출시 후에 11" Macbook Air가 나왔다. 11인치는 너무 작고 최대 해상도가 1366x768 이라 답답하다. 최근에는 베젤 공간을 없앤 12인치 노트북 모델들이 아마 휴대성과 성능을 겸비한 노트북들이지 않을까 싶다.

아무튼 이 놈은 UEFI를 지원하지 않았기 때문에 Multi-OS를 설치하기 위한 방법을 찾아야 했다. 그 때 찾은 것이 Grub BIOS-GPT 파티션이다. BIOS PC에서 GPT 파티션을 사용하면서 Multi-OS booting이 가능한 방법이다. 이 파티션에 대해서는 "Ubuntu UEFI 모드 설치 USB 만들기"에서도 언급한 바 있다. GPT 파티션을 사용하려면 모든 것을 지우고 새로 설치해야 했기에 위의 USB를 만들어서 작업했었다. 나에게 있어서 OS에 관한 한 항상 모든 문제의 시작은 Windows였고 그 끝도 Windows였다. Windows에서는 아래와 같은 제약 사항이 있는데 당시에는 주로 USB에서 테스트했기에 제약 사항조차 제대로 파악하기 어려워서 매우 헤맸었다.

Windows에서 GPT 파티션 사용시 제약 사항
  • Windows Vista 이후 UEFI를 지원하면서 HDD(하드디스크)에서 GPT를 지원하기 시작했지만, BIOS 모드로 Windows 설치시  GPT 파티션을 인식하지 못함
  • Windows 10을 포함해서 UEFI 환경에서조차 HDD에서는 GPT 파티션을 지원하지만 USB는 1개의 파티션만 인식함
  • 결과적으로, BIOS 모드 Windows 환경에서 GPT 파티션을 사용하려면 Hybrid-MBR 파티션을 사용해야 하나, 여기서도 USB는 1개의 파티션만 인식함
우분투 설치 USB는 UEFI와 BIOS를 모두 지원할 수 있지만, 위의 Windows 제약 사항들 때문에 UEFI와 BIOS를 모두 지원하는 Windows 설치 USB는 만들기가 매우 어렵다. All-in-one Multi-OS 설치 USB를 만들어 보려고 한 사람들이 나 말고도 꽤 있을 것이다. 사실, 아예 불가능한 것은 아니다. USB에 UDF 영역을 별개로 만들어서 Windows 설치 iso를 구우면 USB의 UDF 영역을 CD로 인식하기 때문에 UEFI 환경에서는 UEFI 모드로 부팅하고, BIOS 모드에서는 BIOS 모드로 부팅한다. 다만, 이 영역을 만들기 위해서는 전문적인 USB Tool을 사용해야 한다. 이 USB에 앞서의 USB 만들기 글을 적용하면 All-in-one에 근접한 Multi-OS 설치 USB가 된다. Grub2와 Grub4Dos를 같이 사용하면 All-in-one Multi-OS 설치 USB를 만들 수 있을지도 모른다.

Windows 10 Clean Install 노가다를 다시 시작할 수 밖에 없었던 사연

사실, Windows 7도 훌륭한 OS이다. 전에 Windows 10 설치 노가다를 한 경험이 있어서 다시는 하고 싶지 않은 일이었다. 문제는 애초에 Windows 파티션을 너무 작게 잡은데서 비롯된 것이다.


위의 화면과 같이 WRoot(/dev/sda3) 파티션에 Windows 7을  50GB 할당했었다. 당시에는 넉넉해 보였다. 나중에 알았지만 Windows 7은 Update를 계속할수록 디스크를 갉아 먹는다. 최근에 Update 했더니 여유 공간이 200MB 정도 밖에 없어서 Update 조차 불가능한 상황이 되었다. Windows 7에서 제공하는 디스크 정리 도구를 사용해서 불필요한 시스템 Backup 파일까지 제거해도 1GB 정도 밖에 남지 않았다. 웬만하면 OS 이외의 앱들은 D: 드라이브인 WData(/dev/sda4) 파티션에 설치하는데도 이런 일이 생긴 것이다. 다행히, iTunes를 포함한 Apple 앱들과 Data 공간을 싸그리 지웠더니 6GB정도의 공간이 남았다. Windows 8 이후부터는 Windows Update 후에도 공간을 어느정도 정리해준단다. 하지만, Windows 7은 Update 후 공간이 부족할 때마다 또 다른 노가다를 해야 한다. 이런 상황에서 Windows 10 무료 업그레이드 예약하라고 자꾸 귀찮게 하는 놈이 눈에 띄었다.

Windows 10으로 Clean Install 하면 OS 공간이 대략 18GB밖에 되지 않는다. 그래서 이 참에 이 노가다나 저 노가다나 비슷하다는 생각이 들어서 Windows 10 Clean Install을 결심하게 되었다. 그래서 바로 무료 업그레이드 예약을 해 버렸다. 뭐 10분 정도 지나니까 Windows 10으로 Upgrade하란다. Upgrade 시간이 오래 걸리는 것을 알기 때문에 그냥 Upgrade 걸어 두었다.  Windows Clean Install을 진행하기에 앞서 Upgrade 후에 Windows 정품인증이 됐는지 확인할 필요가 있는데 잘 돼 있더라.

참고로, Windows 10 Upgrade에 필요한 최소 공간이 3GB 정도란다. Windows 10 설치파일 용량 정도이다. 그런데, Windows 10으로 Upgrade 한 후 한달 이내에는 다시 Windows 7으로 복원할 수 있단다. 상식적으로 현재 여유 공간이 6GB 밖에 안남았는데 Windows 7과 Windows 10을 동시에 디스크에 남겨놓을 순 없기에 아마 MS 서버에 Backup을 하는 것 같다. 기존에 설치된 앱들이 많기 때문에 역시나 Upgrade 시간도 상당한 시간이 걸렸다. Windows 10으로 Upgrade를 마치고 나서 OS 공간이 얼마나 남았나 보았더니 똑같이 6GB 정도 남았더라. Windows.old 폴더가 있긴 한데 5GB 정도 밖에 안되고... 이것이 Windows Clean Install을 하지 않으면 안되는 이유이다. Windows 10 Clean Install 후에는 역시 18GB 정도 밖에 OS 파티션을 잡아먹지 않는다.

Windows 10 Upgrade 시에 또 한가지 참고할 점은 기존의 Grub 설정을 건드리지 않는다는 점이다. 즉, MBR 영역을 건드리지 않는다. 하지만, 나중에 Windows 10을 Clean Install 하면 MBR을 덮어 버리므로 Grub을 복구해 주어야 한다.

BIOS 모드에서 GPT-MBR Hybrid Partition 사용

위의 gparted 화면에서 알 수 있듯이 gparted에는 GPT 파티션 순서와 용량 정보는 있지만 Hybrid MBR 파티션 정보는 보이지 않는다. Hybrid MBR 파티션을 만들어 주는 도구는 리눅스에 기본 설치된 gdisk이다. gdisk로 다시 들여다 본 것이 아래의 화면이다.


위의 화면 아랫 부분에 4개의 MBR 파티션이 보인다. 이 파티션들은 gdisk의 "recovery and transformation options (experts only)" 메뉴에서 "make hybrid MBR" 메뉴를 이용해서 만든 것이다. 기존에 생성한 GPT 파티션 중에서 MBR 파티션에 어떤 놈을 보여 줄지를 지정하면 된다. 단, MBR 파티션은 Windows에서 사용하는 파티션이므로 vfat 또는 ntfs 파티션이어야 한다. gdisk의 GPT 파티션 상에서는 code가 0700(Microsoft Basic Data)인 놈들 중에서 골라야 한다. Hybrid-MBR에서는 EFI Protective Partition이 기본적으로 필요하기 때문에 실제로 사용자가 사용할 수 있는 파티션 갯수는 3개까지이다. 위의 화면에서 0xEE는 gdisk가 자동으로 지정한 파티션이다.

gdisk가 좋은 점은 파티션에 별짓을 다했다가도 "write table to disk and exit" 명령만 사용하지 않으면 실제로 파티션 변경이 일어나지 않는다는 것이다. "quit without saving changes" 명령으로 빠져 나오면 안전하다.

gdisk를 이용한 파티션 재구성

Windows 10을 Clean Install 하기로 한 마당에 더이상 사용하지 않는 Hackintosh 파티션인 MRoot(/dev/sda2)를 WRoot 파티션과 합쳐서 Windows OS 공간을 늘리기로 했다. 또, Grub에서 사용하는 BIOS boot partition(/dev/sda10)이 sector 순으로 보면 /dev/sda3가 됐어야 하는데 맨 나중에 생성하는 바람에 10번째 파티션이 되어 버린 것도 gdisk의 "sort partitions" 메뉴를 이용해서 재정렬할 필요가 있었다. 이것 때문에 gparted 실행시 경고 메시지가 뜬다.

그런데, 이 시점에서 Windows 10 설치 USB를 다시 만들어야 하는 문제가 있었다. 예전에 만들어 놓은 USB는 우분투 설치 USB에 함께 들어 있어서 Grub2에서 UEFI 모드로만 동작하기 때문이다. 별개의 USB를 사용하기 보다는 HDD에 4GB의 Windows 10 설치 파티션을 따로 만들어서 설치 iso의 파일들을 모두 복사해 놓고 Grub2를 사용하면 HDD를 이용해서 Windows를 설치할 수 있겠다는 생각이 들었다.

위의 고려 사항들을 종합해서 결과적으로 아래 화면과 같이 파티션을 재구성하였다. 파티션 재구성 작업시에는 앞서 만든 우분투 설치 USB로 부팅해서 작업해야 한다.


기존의 Grub BIOS 파티션을 지우고 EFI System Partition(ESP) 다음에 새로 만들었다. 그 다음에는 Windows 10 설치 파티션(WInst)을 만들고, 그 다음에 WRoot 파티션을 다시 만들었다. 파티션 재 구성시 주의할 점은 기존의 중요한 Data 파티션 들과 우분투 파티션은 건드리면 안된다는 것이다. 우분투 파티션은 Grub을 이용해서 Windows 10 설치 파티션으로 부팅시 사용해야 한다. 참고로, BIOS 모드에서는 ESP 파티션을 만들 필요는 없다. 다만, 공간도 그리 많이 차지하지 않고 UEFI 환경과 비슷하게 만들어 사용하는 것이 좋은 습관이 될 듯해서 그냥 둔 것이다.

gdisk에서 파티션을 생성한 후에 gparted를 사용하여 WInst와 WRoot 파티션을 ntfs로 포맷하였다. 아예 gparted로 파티션 작업을 할 수도 있겠지만 gdisk가 세부 정보를 보여 주기 때문에 편리한 점이 있다. 포맷을 완료 한 후에 gdisk에서 아래 화면과 같이 Hybrid MBR 파티션을 지정해 주어야 한다.


gdisk와 gparted 또는 다른 OS의 partition tool을 혼용해서 사용할 경우에는 항상 gdisk로 파티션 table에 변경사항이 없는 지 확인해야 한다. 실제로, gdisk에서 Hybrid MBR 파티션을 생성하고 나서 gparted에서 ntfs 파티션 포맷만 하더라도 Hybrid MBR 파티션 정보가 날아가 버린다. 이 정보가 날아가면 BIOS 환경에서 Windows로 부팅할 수 없게 된다.

또한, 위의 경우와 같이 Grub BIOS 파티션을 새로 생성하는 경우에는 우분투 파티션의 BIOS Grub을 다시 설치해 주어야 우분투로 부팅할 수 있다. Grub 재설치 방법은 이전 글인 "Ubuntu BIOS 및 UEFI Grub 복구"를 참고하면 된다.

Grub2와 HDD의 Windows 설치 파티션을 이용한 Windows 10 설치

우분투 설치 USB에서 파티션을 재구성한 후 우분투로 부팅해서 Windows 10 iso의 파일들을 WInst 파티션에 모두 복사한다. 그리고 나서, update-grub 하면 자동으로 Windows  Recovery 메뉴엔트리가 Grub에 추가된다. 참고로 우분투 14.04 환경이다. 이전 버전에서는 자동으로 안될 수도 있는데 이 때에는 수동으로 Grub menuentry를 /etc/grub.d/40_custom 파일에 만들어 주고 update-grub을 해 주어야 한다.

$ sudo update-grub
$ sudo reboot

재부팅 후 Windows Recovery 메뉴로 부팅해서 Windows 10 Clean Install을 진행하면 된다. Windows 설치 자체는 뭐 큰 어려움이 없다. 다만, 설치시에 설치할 파티션을 WRoot 파티션으로 지정해 주어야 한다.

Windows 10 설치 후 WInst 파티션은 D: 드라이브로 잡혀 있다. 이 놈은 숨겨 두는게 좋은데, 디스크 관리자에서 드라이버 문자만 제거해 주면 된다.

Windows 10 설치 후 Driver 문제

Windows 7에서 10으로 Upgrade 한 상태에서는 모든 Driver가 정상 동작했었는데 Windows Clean Install 후에 제어판의 장치관리자에서 확인해 보니 Video 드라이버도 기본 저해상도 드라이버로 잡혀 있고, 알 수 없는 장치로 표시된게 대부분이었다. 혹시나해서 드라이버 업데이트를 On-line에서 검색해서 설치하도록 했는데 대부분 잘 잡아 준다.

참고로, Dell 사이트에서는 m11x 드라이버는 Windows 7 밖에 지원하지 않는다. 그리고, Windows 7 드라이버의 설치 프로그램이 Windows 10에서는 아예 실행되지 않는다. 일단, 알수 없는 장치 두 개는 드라이버 업데이트를 할 수 없었고  Bluetooth도 안잡혀 있었다. Bluetooth는 Dell site에서 Windows 10을 지원하는 Bluetooth 4.0 드라이버를 다른 랩탑 모델 다운로드 사이트에서 시험삼아 설치해 봤는데 잘 된다. 알 수 없는 장치는 장치관리자의 상세 정보를 이용해서 구글링해 보니까 키보드 콘트롤 드라이버하고 낙하센서 드라이버인 듯 하다. 이외에도 키보드 LED Backlight 를 비롯한 LED 제어 드라이버도 필요하긴 한데 PC 쓰는데 큰 지장이 있는 것들은 아니어서 그런대로 만족이다.

Grub 복구

Windows를 설치하고 나서 우분투를 다시 사용하기 위해서 우분투 설치 USB로 다시 부팅해서 Grub 복구 작업을 다시 해 주어야 한다. "Ubuntu BIOS 및 UEFI Grub 복구"를 참조하면 된다.

노가다 소감

Windows 7 디스크 공간 문제 때문에 Windows 10 Clean Install 노가다를 했는데 그런대로 만족이다. 어차피 파티션 정리작업을 한번쯤 하려고 했었기 때문에... 더구나, BIOS GPT 환경에서 Hybrid MBR을 사용하는 유일한 PC이기도 했기 때문에 잊어버리기 전에 다시 여러가지 문제들을 정리할 기회가 되기도 했으니까.

보통 OS 설치시 USB를 많이 사용하는데 HDD를 사용해서 Windows를 설치하는 것도 괜찮은 방법인것 같다. 더구나 BIOS GPT 환경에서는 Windows의 제약 사항때문에 무척 편리한 방법이라는 것도 새삼스럽게 느껴진다.

2015/08/02

Windows 10 Clean Install


Windows 10을 Clean Install 해 보았다. Windows 7 Home Edition을 사용하던 낡은 PC에서 Windows 8 Pro 버전을 Upgrade promotion 기간에 저가에 샀는데 Upgrade했다가 다시 Windows 7으로 재설치해서 방치하고 있는 license key가 있었는데 낡은 PC를 버리게 돼서 우분투가 설치된 다른 PC에 Windows를 설치하는 김에 따끈따끈한 Windows 10을 설치하기로 했다.

구글링해 보니 Windows 8을 clean install 하고 registry를 수정하면 Windows 8 Upgrade 버전의 license key로 정품인증이 가능하단다. 또, Windows 7이나 8은 설치 후 최신 update를 모두 해 주어야 Windows 10으로 upgrade가 가능하단다. 그런데 Windows 8.1은 바로 Windows 10으로 upgrade 할 수 있단다.

Windows 10 license 정책 변화

추가적으로, Windows 10의 라이센스 정책이 하나의 license를 하나의 특정 기기(main board 기준)에 영구히 종속시키는 정책으로 바뀐 듯 하다. 이는 이전 Windows에서 1개의 license key를 갖고 있으면 아무 PC에나 1개의 Windows를 설치할 수 있었던 license 정책을 바꾼것이다.

이 정책의 좋은 점(?)은, Windows 7, 8, 8.1 이 정품 인증된 PC에서 먼저 Windows 10으로 upgrade한 후에는 같은 기계에서 라이센스 키를 재입력하지 않아도 Windows 10을 영원히 재설치 할 수 있다는 것이다. 이는 특정 PC의 main board 정보와 그 PC에 설치된 Windows license key를 Microsoft사의 서버에서 지속적으로 관리하겠다는 의도인것 같다.

나쁜 점은, 기존에 Windows license가 없는 경우에는 Windows 10 license key를 재구매 하면 되는데, 한번 특정 PC에 설치하면 다른 PC에서는 이 license key를 사용할 수 없게 되는 것이다. 아마도 이것이 기존 Windows 사용자들에게 Windows 10 upgrade를 무료로 제공하는 가장 큰 이유일 듯 싶다. PC가 망가지면 무조건 Windows를 새로 구입해야 하니까...

중장기적으로 이 정책이 Microsoft에게 더 많은 이익을 줄 것임이 분명하다. 그니까 사용자입장에서는 Window 8.1까지 정품 구매한 Windows는 보물로 간직하라는...?

Windows 10 Clean Install 설치 절차

Windows 10을 Clean Install 하기 위해서는 반드시 한번은 기존의 Windows 7~8.1을 Windows 10으로 먼저 Upgrade해 주어야 한단다. M$가 공짜로 Windows 10을 제공하는데 그 정도 노가다야 니들이 해야하지 않겠냐고 생각할지도... 아무튼 Windows 10을 clean install 하기 위해서는 아래와 같이 엄청난 노가다와 소모 시간이 나를 기다리고 있다. 정말 큰맘 먹지 않으면 clean install은 포기하라는...

0. Backup

항상 OS를 Clean Install 하기 전에 중요한 Data를 Backup해 두어야 한다. 더구나 OS 파티션은 삭제하거나 최소한 새로 format 할 것이기 때문이다.

1. Windows 8.1 Clean Install 후 정품 인증

Windows 8.1 Pro 설치 iso를 내려 받아서 rufus로 USB에 구워서 clean install 했다. 그런데, Windows 8/8.1은 Windows 7이나 Windows 8 Upgrade license key로는 설치할 수 없으므로 여기 게시물을 참고해서 ei.cfg 파일을 만들어 설치 USB에 넣어 줌으로써 설치시 license key 입력창이 뜨지 않도록 해 줄 필요가 있다. 다행히도 Windows 8.1 설치 후  license key를 입력했더니 정품인증이 바로 되더라. Registry는 건드리지도 않았는데 말이다.

2. Windows 10으로 Upgrade

Windows 8.1 제어판에서 Windows update를 사용하면 바로 Windows 10  Upgrade가 뜨더라. Windows 10 iso를 먼저 내려 받아서 USB에 구워서 Upgrade 할 수도 있다는데 그냥 제어판에서 Upgrade했다. 내려받는 속도가 빠른 편이라 문제 없었다. 다만, 기존의 Windows 8.1을 backup하는 등의 일을 처리하는 때문인지 Windows 10으로 upgrade 완료하기까지 시간을 정확히 측정하지는 못했는데 1~2시간 걸린듯. 첨에는 내려 받기가 끝나고 나서 설치 준비중이라고 메시지가 뜬 후 한참동안 작업 진행 표시가 없어서 먹통이 됐나부다 했는데 구글링해 보니 원래 시간이 오래 걸리는 것이었다. Upgrade 완료 후 Windows 10이 정품인증 됐음을 확인했다.

Windows 8/8.1에서는 Windows OS 파티션 앞에 Microsoft Reserved Partition을 추가하는데, Windows 10 upgrade 후에는 Windows OS 파티션 끝에 파티션이 하나 더 추가 된다. 아마도 backup 용 인듯...

3. Windows 10 Clean Install

위의 Upgrade 중에 Windows 10 Pro iso(기존 Windows license와 일치하는 Windows 10 버전)를 다시 내려 받아서 USB에 구우면 된다.  설치시에 라이센스 키 입력하는 것은 모두 건너 뛰면 된다. Windows 8/8.1 설치와는 달리 license key를 입력하지 않아도 Windows 10은 설치할 수 있다. 설치 시간은 Windows 8.1 설치시간과 비슷하다. 대략 30분... 설치 후 정품인증이 됐나 확인해 보니 자동으로 정품인증이 되어 있다.

Windows 10 Clean Install 후에는 Microsoft Reserved Partition 1개만 생성되는데 Windows 8/8.1에서 128MiB 였는데 16MiB로 용량이 줄었다.

4. 기존 Windows Software 모두 재설치

자주 쓰던 프로그램들을 모두 재설치 해야만 한다. 걍 천천히 할 생각이다. Windows 10이 기존 Windows 들에 비해 좀 빠릿빠릿 해졌다는 것으로 위안을 삼으면서....

Ubuntu Grub 복구

늘 그랬듯이 Windows를 설치하고 나면 우분투 grub을 복구해야만 다시 우분투로 부팅할 수 있다. 참고로 Ubuntu와 Windows 모두 UEFI 모드로 설치했다. 복구 방법은 이전 글 "Ubuntu BIOS 및 UEFI Grub 복구"를 참고하면 된다. Windows 10 설치 후 우분투 설치 USB에서 UEFI Grub 복구방법이 불완전했기에 이전 글을 수정하였다.

설치 후 소감

아직 Windows 10을 제대로 써보지 않아서 노가다 후 피로감에 빠져 있다. 시작 메뉴 회귀와 함께 우분투 Unity의 검색기능과 동일하게 Task Bar에 앱/파일/키워드 검색 기능이 들어 간것은 인상적이다. Windows 8에도 앱 검색기능이 있었는데 키워드 검색이 잘 안돼서 그닥 쓸모 없어 보였는데 Task Bar에 붙여 놓고 키워드 검색도 되니 한결 쓸모 있어 보인다.

리눅스 사용자들에게는 식상한 가상 작업공간도 새로운 기능인데 나름 빠릿빠릿 동작한다. 이외에도 Cloud 관련 기능들이 눈에 띈다. OneDrive나 OneNote가 그것들이다.

아무튼 기존 Windows 사용자들에게 Windows Clean Install을 권하고 싶지는 않다. 엄청난 노가다와 시간을 허비할 만큼의 가치가 있는 일인지는 잘 모르겠다. 1 PC당 1 license라는 Windows license 정책 변화도 사용자들에게 risk가 있다. PC가 망가지면 새로 license를 구매해야 한다.

결과적으로 우분투를 더욱 더 사랑하게 될 것 같은 느낌이 든다.

2015/05/31

Fedora 22 설치 소감


이전 글에서 리눅스 배포판 들은 도찐개찐이라고 했지만, 지난 주에 Fedora 22가 출시되었다길래 Virtual Box에 설치해 보았다. 우분투를 주로 쓰다보니 페도라를 언제 썼었는지 기억이 가물가물하다. 중간에 CentOS는 좀 사용했었다. 페도라가 리눅스 배포판 중 bleeding-edge인지는 잘 모르겠지만 최신 S/W 들을 빨리 채택하는 것은 틀림없다. Redhat이 페도라에서 검증된 것들을 수용한다는 점과 리눅스의 새로운 기능(기술?)들을 페도라에서 빨리 접해 볼수 있다는 점은 리눅스 사용자들에게 고무적인 일이다.

Fedora 22가 땡겼던 이유...

Gnome Shell 3.16이 뭐가 달라졌나 궁금했고, kernel 4.0에서 live patching이 잘 동작하는지 보고 싶었다. 그리고, Wayland가 탑재되어 있어서 한번 써보고 싶었다. 부가적으로 가상 Desktop 환경인 Vagrant 도 궁금했고, 패키지 관리자로써 Yum을 버리고 DNF를 본격적으로 채택한 점도 눈에 띄었다. 페도라 업그레이드에 대한 세부 사항은 여기를 참고하면 된다.


설치시 문제

그런데, Wayland나 Vagrant는 VirtualBox에서는 테스트 해 볼 수가 없다. 그래서 iMac에 설치해 보려고, 하드디스크의 Fedora 설치 iso를 가지고 부팅했는데 우분투와 마찬가지로 WIFI가 당장 동작하지 않았다. 당장 유선랜을 쓸 수 있는 환경이 아니어서 iMac에 설치하는 것은 보류할 수 밖에 없었다.

설치시에 페도라가 우분투보다 안좋은 점은 non-free 드라이버가 설치 iso에 아예 들어있지 않다는 것이었다. 더구나, 설치 파일들이 통째로 sqashfs 이미지 파일에 들어 있는데 알고 보니 패키지로 구성되어 있는게 아니었다. 걍 페도라가 설치된 채로 sqashfs에 들어 있었다. 설치 iso로 설치한다 뿐인지 실제로는 sqashfs 이미지를 풀어서 하드디스크에 복사해 넣은 다음 필요한 설정만 설치 패키지에서 잡아 주는 형태다.

설상가상으로 페도라는 네트워크이 안되면 설치하지 말라고 얘기할 수 밖에 없다. Broadcom WIFI 드라이버를 일단 VirtualBox의 페도라에서 내려 받아 보려고 했는데 Fedora 22 버전은 아직 올라와 있지도 않았다. Fedora 21 버전에 대한 non-free 드라이버를 사용해도 될 것 같긴 한데 이런 방법은 패키지 의존성 문제가 생길 수 있으니 사용하지 말란다. 소스를 컴파일 하는 방법도 생각해 봤는데 기본적으로 gcc 패키지도 설치되어 있지 않기 때문에 네트워크가 안되면 별로 해볼 수 있는 방법이 없다. 뭐, VirtualBox에서 컴파일해서 iMac에 복사하는 방법도 있지만 귀차니즘이 밀려와서 관두기로 했다.

하드디스크의 Fedora 설치 iso로 부팅하기 위한 Grub 메뉴

나중에 iMac에 페도라를 설치할 수도 있기 때문에 헤맸던 것을 정리해 둔다. 우분투의 Grub에 아래와 같이 메뉴 엔트리를 추가하면 우분투 파티션에 있는 페도라 설치 iso를 이용해서 부팅할 수 있다. 아래 내용을 /etc/grub.d/40_custom 파일에 추가한 후,

$ sudo nano /etc/grub.d/40_custom

menuentry "HDD Fedora 64-bit iso" {
    set isoname="Fedora-Live-Workstation-x86_64-22-3"
    set isolabel="Fedora-Live-WS-x86_64-22-3"
    set isofile="/boot-isos/${isoname}.iso"
    loopback loop (hd0,9)/$isofile
    linux (loop)/isolinux/vmlinuz0 iso-scan/filename=${isofile} root=live:CDLABEL=${isolabel} rootfstype=auto ro rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0
    initrd (loop)/isolinux/initrd0.img
}

$ sudo update-grub

위의 메뉴엔트리에서 주의해야 할 부분이 isoname과 isolabel이 다르다는 점이다. 이것 땜에 좀 많이 헤매야 했다.

설치 과정

페도라 설치 UI도 직관적이어서 우분투와 마찬가지로 설치시에 큰 어려움이 없다. 한글로도 설치가 잘된다. 한가지 우분투와 다른 점은 사용자 계정은 물론이고 root 계정도 설정해야 한다는 것이다. 우분투에 적응이 되어 있어서 root 계정을 사용하는 것은 부담스럽다. 패스워드 두개를 외워야 한다는 거... 그렇다고 패스워드를 한개로 통일하면 root 계정을 쓸 이유가 없다.

페도라 설치시 파티션을 자동 설정으로 두면 /boot 파티션을 ext4 파일시스템으로 만들고, 나머지 공간은 LVM으로 구성한다. 서버 사용자라면 문제될 게 없지만 Desktop 환경에서는 Logical Volume을 사용하는 것보다 물리적인 파티션을 사용하는 것이 안전하다는 고정관념이 머리 속에 남아 있다.

설치 후 최초 부팅했을 때 사용자 환경 설정을 한다는 점도 다른 점이다. 여기서 한글(Hangul) 입력기를 선택하면 ibus-hangul을 바로 사용할 수 있다. 초보자들에게는 이런 방법이 더 나을 수도 있겠다 싶다.

root 계정 안쓰기

사용자 계정이 하나 있으니까 우분투 처럼 root 계정을 안쓰고 sudo 권한을 주기로 했다. sudo 권한을 주려면 당연히 root 계정을 사용해야 한다.

$ su - root

우선 아래와 같이 사용자 계정에 wheel 그룹을 추가해 준다. Redhat 계열 리눅스에서 wheel 그룹은 /etc/sudoers 파일에 root 권한을 갖도록 설정되어 있다.

$ usermod -aG wheel aaa

이제 root 암호에 lock을 걸어 버림으로써 root 계정으로 직접 또는 ssh 등으로 login할 수 없게 된다.

$ passwd -l root

나중에 root 계정을 다시 사용하고자 한다면 사용자 계정에서 아래와 같이 해주면 된다.

$ sudo passwd -u root

사용자 계정에서 sudo를 사용하기 위해서는 사용자 계정으로 재로그인 해주면 된다.


DNF 패키지 관리자

DNF는 Dandified Yum(멋쟁이 yum?)이란다. 좀 기억하기는 어렵다. yum을 버리는 이유는 패키지 의존성 문제를 해결하기 어렵고 yum에 대해 문서화가 잘 안되어 있어서 API가 혼란스럽기 때문이란다. 사용법 자체는 yum과 거의 비슷하기 때문에 큰 문제는 없으나(?)... 그래도 배우는데 시간이 걸릴 듯...

일단, WIFI 문제 때문에 repo를 추가해야 했는데 DNF 사용법을 몰라서 한참 헤맸다. yum과 좀 많이 다르다... 아래와 같이 추가하면, 결국은 /etc/yum.repos.d에 아래의 free와 nonfree repo 두 개가 추가된다.

$ sudo dnf config-manager --nogpgcheck --add-repo http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
$ sudo dnf config-manager --nogpgcheck --add-repo http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

그런데, 아직 Fedora 22 드라이버가 올라와 있지 않아서 dnf로 kmod-wl 패키지를 다운로드할 수 없었다.

패키지 의존성 문제를 해결했을지는 모르지만, 패키지 자체의 문제가 있어 보인다. 위의 repo가 아직 Update 되지 않은 것은 제외하고도... gcc를 설치하는데 커널 소스를 debug 버전으로 설치하더라. VirtualBox guest addition을 컴파일하는데 오류가 나서 알고 봤더니 kernel debug 버전 때문에 생긴 문제였다는... dnf로 이거 지우고  kernel-devel을 다시 설치했더니 잘 된다.

또, 한가지 문제는 dnf는 command-line이고 이와는 별개로 패키지 설치를 위해 Gnome Shell에서 우분투 소프트웨어 센터와 비슷한 Software란 놈을 사용할 수 있는데 패키지 설치 history가 통합 관리되지 않는다는 점이다. dnf로 설치한 history만 알 수 있다. 우분투는 apt-get으로 설치하든 우분투 소프트웨어 센터를 사용하든 설치된 패키지에 대한 history를 우분투 소프트웨어에서 확인할 수 있다. 물론, dpkg나 deb으로 설치한 소프트웨어 history는 우분투에서도 안보이지만 이 들이 표준 방식은 아니니까...

이 Software란 놈이 또 한가지 웃기는 점이 있는데, 페도라 패키지를 Update하면 설치하기 전에 페도라를 한번 부팅하고나서 Update 설치 후에 또 한번 페도라를 부팅시킨다. 아니, kernel 4.0에서는 심지어 kernel update조차 컴퓨터를 부팅시키지 않으려고 하는데 이 무슨 망나니짓임? 한번도 아니고 두번씩이나 컴퓨터를 부팅시키다니... 아, 물론 dnf를 사용하면 아예 부팅하지 않는다.

$ sudo dnf upgrade

물론, 리눅스에서 부팅하지 않는다고 방금 update한 패키지를 바로 사용할 수 있다는 것은 아니다. 하지만 대부분의 경우에는 재로그인 하는 것만으로도 update한 패키지를 바로 사용할 수 있다.

Gnome 3.16

Gnome 3.16에서 눈에 띄는 두 가지 달라진 점이 있었다. 하나는 Notification이 달력과 통합되어 Top bar의 중앙에 날짜 옆에 점으로 표시된다는 것이다. 또, 한가지는 Window Title Bar가 매우 단순해 졌다는 것이다. 가령, gedit를 예로 들면, 수직으로 Window Title Bar, Menu Bar, Tool Bar의 세줄이 필요했던 것을 한 줄에 몰아 넣었다. 구글 chrome과 비슷하다. 세 줄이 한 줄로 줄었으니 화면의 수직 공간을 매우 절약하게 된다. 물론, Gnome-shell에서 딸려오는 애플리케이션에 한해서만 그렇다는 얘기다.

사실, 내가 우분투의 Unity Desktop 환경을 고집해 온 가장 큰 이유 중의 하나가 수직 공간에서 소위 LIM(Locally Integrated Menu)이 Window Title Bar와 통합되어서 2줄이 1줄이 되기 때문이었는데 Gnome 3.16에서는 무려 3줄이 1줄로 된다는 것이 매우 기쁜 일이 아닐 수 없다. 다만, Menu와 Tool Bar가 통합됨으로 인해 애플리케이션에서 특정 기능을 사용하고자 할 때는 불편함이 생긴다.

Unity Desktop의 Top panel을 숨길 수 없는데 반해서 Gnome Shell은 Hide-Topbar shell extension을 설치하면 Top Bar autohide가 되기 때문에 수직 공간을 추가로 절약할 수 있다. 이것은 엣 버전에서도 가능했던 일이다.

그러나, 아쉬운 점은 통합된 Window Title Bar의 수직 폭이 좀 넓어 졌다는 것이다. ~/.config/gtk-3.0/gtk.css에서 줄일 수 있다는데 안 줄어 들더라... 덩달아서 gedit의 경우 파일을 여러개 열면 Tab이 생기는데 Tab의 수직 폭도 넓어 졌다는... 쩝... 그래서, 결과적으로 Unity Desktop 환경과 비교하면 뭐 별로 수직 공간이 절약된 느낌이 들지는 않는다. 도대체 어쩌자는 거임...? ㅠ.ㅠ

Kernel 4.0 live patching

아직 페도라 업데이트 중에 커널이 포함된 적이 없어서 아직 테스트를 해볼 수 없었다. 나중에 기회가 되면... Fedora 22 출시된지 얼마 되지도 않았는데 무리한 요구를 할 수는...

Fedora 22에 대한 전반적인 소감

우분투 사용자들에게 페도라를 권하고 싶지는 않다. 특히, 리눅스 초보자들에게는 우분투를 권하고 싶다. 기본적인 패키지 관리 문제도 그렇고, H/W 드라이버 문제도 그렇고 우분투가 훨씬 사용자 친화적인 Desktop 환경이라고 볼 수 있다.

다만, 앞서 얘기했듯이 최신 Open Source 소프트웨어들을 빨리 접해 보고 싶은 이들에게는 당연히 우분투 보다 Fedora를 권하고 싶다.

fedora 22에서의 한글 입력기 설정은 우분투 14.10이후의 ibus-hangul 설정 방법과 근본적으로 동일하다고 보면 된다.

2014/10/30

Ubuntu 14.10 Clean Install


지난 주 말에 우분투 14.10이 출시되었다. 이번 버전은 데스크탑 보다는 서버 쪽의 Upgrade 내용이 주를 이루는데 Cloud Computing 관련 Upgrade가 많다. 데스크탑 쪽에서는 Mir와 Unity 8의 개발이 진행 중인데 내년이나 내 후년 쯤에야 일반 사용자들이 쓸만할 정도가 될 것이다. 그러다 보니 별로 Upgrade하고 싶은 생각이 들지 않았는데 나이가 들수록 밀려오는 귀차니즘 타파 차원에서 iMac에 설치된 우분투를 Clean Install 하기로 했다.

Clean Install vs. Upgrade

우분투 버전업할 때마다 고민하는 부분인데 경험상 Clean Install이 낫다. 설치 시간으로 보면 둘다 비슷하다고 볼 수 있다. Upgrade하면 1시간 반에서 2시간 정도 지가 알아서 자동 Upgrade 해 주니까 편리한 측면과 기다리는데 따른 지겨움이 있는데, 뭔가 문제가 생겼을 때 원인을 파악하기 어렵다. Clean Install의 경우에는 우분투 설치시간 자체는 10분 정도 밖에 걸리지 않지만 데스크탑 환경도 새로 설정해 주어야 하고, 자주 쓰는 프로그램들도 다시 새로 설치하고 환경 설정도 다시 해 주어야 한다. 결국 전체 시간은 비슷하고 Clean Install을 할 경우 사용자가 세세히 신경을 써야 할 부분이 많다.

뜬금 없지만 Mac OS X나 iOS의 자동 Upgrade는 매우 훌륭한 편이다. 문제가 거의 생기지 않더라는 것인데 우분투 자동 Upgrade는 뭔가 되던 것이 안되는 일이 꼭 생긴다.

Clean Install을 잘 하기 위해서는...

평소에 자주 쓰는 프로그램들에 대해 설정 변경 사항을 기록하거나 백업 받아 놓는게 좋다. 설치시에도 설치 순서나 과정을 정리해 둘 필요가 있고 이 글도 그런 차원이다. 그리고, 최초 OS 설치시에 사용자 데이터 파티션과 OS 파티션은 반드시 분리해 두는 것이 좋은 습관이다. OS만 다시 설치하면 되기 때문이다.

Clean Install을 위한 사전 준비

우분투가 이미 설치되어 있는 상황에서 Clean Install 할 경우에 가장 빠르고 쉬운 방법은 하드 디스크에 저장된 우분투 설치 iso 파일로 부팅해서 설치하는 것이다. USB 메모리도 필요 없다. "하드디스크의 우분투 설치 iso로 우분투 설치" 게시물을 그대로 따라가면 된다. 14.10을 설치하면서 내용 중에 일부 오류가 있어서 수정하였다. Grub 부트 메뉴 엔트리에서 iso 파일 경로만 자신의 환경에 맞게 수정해 주면 된다.
menuentry "HDD Ubuntu 64-bit iso" {
   set isofile="/boot-isos/ubuntu-14.10-desktop-amd64.iso"
   loopback loop (hd0,9)$isofile
   linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noprompt noeject
   initrd (loop)/casper/initrd.lz
}
이제 우분투를 새로 설치하기 위해서 하드디스크의 우분투 설치 iso로 부팅한다. Grub 메뉴 중에 위에 새로 추가한 "HDD Ubuntu 64-bit iso"를 선택한 후, 다시 "Try Ubuntu without installing" 메뉴를 선택해서 우분투 live CD 환경으로 부팅한다. 부팅하고 나서 아래 스크린 샷에서 보듯이 두 가지만 해 주면 된다. 즉, 사용자 Data를 백업 받고 나서 사용자 Data 파티션을 unmount 해 주는 것이다.


기존 우분투 환경에서 사용자 aaa의 폴더는 /home/aaa 였고, 우분투 OS와 별개의 파티션인 /dev/sda9를 사용하고 있었다. 위의 스크린샷에서 우분투 설치 iso 파일도 같은 파티션에 복사해 놓았기 때문에 - 즉, 기존의 우분투 환경에서 /home/boot-isos 폴더 사용 - 하드디스크의 iso로 부팅하면 자동으로 /dev/sda9 파티션을 /isodevice 폴더에 mount 시켜 놓고 있음을 알 수 있다.

먼저, 아래와 같이 사용자 폴더에 사용자 데이터가 있기 때문에 폴더를 옮겨 백업을 받았다. 새로 우분투 설치시에도 동일한 사용자명을 사용할 것이기 때문이다.

$ sudo mv aaa aaa-14.04

그 다음은, 우분투 설치시에 기존의 우분투 OS 파티션을 포맷할 것이기 때문에 해당 디스크가 있는 파티션은 모두 unmount 해야만 파티션 테이블을 수정하여 설치를 진행할 수 있기 때문에 아래의 명령을 반드시 해 주어야 한다. USB 메모리로 설치할 경우에는 USB와 하드디스크가 분리된 물리적 장치이기 때문에 이 과정이 불필요하지만 여기서는 하드디스크의 iso로 설치하기 때문에 반드시 필요한 작업이다.

$ sudo umount -l /isodevice

우분투 14.10 설치

이제 바탕환면의 "Install Ubuntu 14.10" 아이콘을 선택해서 우분투 설치를 진행한다.이 과정은 일반적인 우분투 설치 과정과 동일하다. 다만, 기존의 우분투 OS 파티션만 새로 포맷하고 사용자 파티션만 다시 잡아 주면 된다. 기존에 사용했던 swap 파티션이나 UEFI 모드로 설치 시 사용하는 EFI System Partition(ESP) 들은 자동으로 우분투 설치 소프트웨어가 재사용하도록 설정한다. 설치 과정을 따라 아래 스크린샷 들을 참고하면 된다.

맨 처음 설치 언어 선택이 나오는데, "한국어"로 해도 되고 "English"로 해도 된다. 습관상 영어로 설치한다.


인터넷 속도가 빠르지 않다면 인터넷에 연결하지 않고 설치하면 설치시간이 10분도 안걸린다.


 이제 우분투 설치 파티션을 지정해야 하는데 아래와 같이 "Something else" 를 선택한다.


 아래와 같이 우분투를 설치하고 사용할 파티션을 선택하는 화면이 나온다.


먼저, 기존에 설치된 우분투 파티션을 선택해서 포맷해야 한다. 아래에서 /dev/sda8을 사용하고있었다. 이 파티션을 선택한 후, [Change] 버튼을 선택한다.


아래와 같이 우분투 OS 파티션을 포맷하도록 check해 주어야 한다. Mount 위치는 당연히 "/"이다.


그 다음은 사용자 데이터가 있는 /home 파티션을 지정한다. 나중에 사용자명(aaa)을 지정하면 이 파티션에 새로 /home/aaa 폴더를 만들 것이다. 우분투가 이 파티션을 사용하도록 하기 위해서 다시 [Change] 버튼을 선택한다.


이 파티션은 사용자 데이터가 들어 있는 파티션이므로 당연히 절대 포맷하면 안된다. Mount 위치만 /home으로 지정해 주면 된다.


추가적으로, 현재 /opt 파티션도 별개로 사용자 데이터 용도로 사용하고 있지만 /home 파티션과 동일하게 /opt 파티션을 우분투가 사용하도록 지정하면 되기 때문에 스크린샷은 생략한다.

우분투가 사용할 파티션을 모두 선택한 후의 스크린 샷을 아래에 보였다.


[Install Now] 버튼을 선택하면 아래와 같이 디스크에 Write 할 것인지 물어 보고,


아래와 같이 시간대 설정으로 넘어 간다. 설치 언어는 영어지만 시간대를 Seoul로 선택하면 한글 언어 팩을 자동으로 설치한다. 사실, 이건 좀 문제가 있다. 미국 사람이 서울에 거주할 수도 있고, 한국 사람이 미국에 살 수도 있기 때문이다. 그 다음 화면이 키보드를 선택하는 것인데 키보드를 Korean으로 선택했을 때 한글 언어팩을 자동설치하는게 설치 프로세스상 맞는게 아닌가 한다.


그리고, 키보드 설정에서 Korean을 선택해 준다. 노트북인 경우 101/104 키를 선택하면 된다. 여기서도 우분투 한글 문제에 대해 나중에 별개로 글을 올릴 예정이지만, ibus에서 한글을 사용하기 위해서는 설치 후에 "Korean(Hangul)" input source를 반드시 추가해야 한다. 여기서 Korean 키보드를 선택하면 자동으로 한글 언어팩을 설치하도록 하고, "Korean(Hangul)" input source도 같이 추가해 주면 되지 않나 싶다.


이제, 아래와 같이 기존 우분투에서 사용했던 동일한 사용자(aaa)를 추가한다. 컴퓨터 이름도 동일한 이름으로 지정해 주면 된다.


사용자 설정까지 마치면 본격적으로 우분투를 설치하기 시작한다.


설치를 끝내고 나서 새로운 우분투 14.10으로 재부팅하면 된다. 참고로, 여기에 있는 화면들은 우분투 live CD의 Screenshot 앱으로 캡춰해서 ~/Pictures 폴더에 저장해 놓은 것들이다. 그런데 재부팅하면 우분투 live CD 환경은 RAM에서 실행되고 있는 것이기에 모두 사라져 버린다. 터미널을 띄워서 사용자 파티션을 마운트해서 이미지들을 모두 하드디스크로 옮기고 나서 다시 unmount 해 준 후에 아래 화면에서 [Restart Now] 버튼을 선택하면 된다.


우분투 14.10 드라이버 설치

사실, iMac에서 우분투 14.10을 설치하고 나서 우분투로 부팅하지 못하는 사태가 발생했는데, iMac과 관련된 우분투 14.10 이슈에 대해서는 이 글의 주제에서 벗어나기 때문에 별개로 "Mac에 Ubuntu 14.10 설치 후 부팅 이슈"를 참고하면 된다. 참고로, 현재 iMac에는 Windows 8과 Mac OS X가 같이 설치되어 있다.

또한, 영문으로 우분투 14.10을 설치한 탓인지 ibus-hangul이 제대로 동작하지 않는 문제도 생겼다. 이것 역시 별개로 "Ubuntu 14.10 ibus 설정 및 한글 이슈"를 참고하면 된다.

우분투를 새로 설치 한 후 가장 먼저 해야 할 일은 하드웨어가 제대로 동작하도록 드라이버를 설치하는 일이다. 

iMac의 경우에는 우분투 설치할 때마다 WIFI가 동작하지 않는다. 하드디스크에 저장된 우분투 설치 iso 파일을 Archive Manager로 열어서 dkms와 bcmwl-kernel-source 패키지를 설치해 주어야 한다. 파일의 위치는 아래와 같다. 아래 파일을 double click 하면 설치할 수 있다.
  • dkms: /pool/main/d/dkms/dkms_2.2.0.3-1.1ubuntu5_all.deb
  • bcmwl-kernel-source: /pool/restricted/b/bcmwl/bcmwl-kernel-source_6.30.223.248+bdcom-0ubuntu1_amd64.deb
NVIDIA 드라이버는 nouveau 드라이버가 정상 동작하기 때문에 굳이 설치할 필요는 없지만, 이전 게시물을 참고하면 된다.

우분투 소프트웨어 Upgrade

우분투는 새 버전이 출시되고 나서도 버그 fix를 계속하기 때문에 소프트웨어 Upgrade를 반드시 해 주는 것이 좋다. 한글 언어팩이 설치된 경우에는 저장소 서버가 자동으로 KAIST FTP로 지정되어 있는데 [System Settings] > [Software Updates] > [Ubunt Software] > [Download from:] 에서 "Main Server"로 임시 교체해 주는 것이 좋다. 그리고 나서,

$ sudo apt-get update
$ sudo apt-get upgrade

사용자 데이터 복원

앞서 언급한 바 있듯이 우분투 14.10으로 부팅하면 aaa 사용자에 대한 /home/aaa 폴더가 새로 만들어 졌다. 설치 전에 백업 받아 놓은 /home/aaa-14.04의 내용물들을 /home/aaa로 옮겨야 한다. 단순히, /home/aaa 폴더를 삭제하고 /home/aaa-14.04 폴더를 /home/aaa로 옮기면 안된다. 왜냐하면 사용자 폴더에는 이전 버전의 우분투 환경에서 설정했던 정보들도 같이 저장되어 있기 때문에 Clean Install이라는 의미가 퇴색된다. 실제로 해봤더니 당장 작업 공간이 작동하지 않는다. GUI 환경의 데스크탑 설정이나 각종 프로그램 설정들이 새 버전에서의 설정과 다르기 때문에 발생할 수 있는 문제인 것이다.

먼저, 우분투가 기본으로 제공하는 폴더들 부터 옮겨와야 한다. 예를 들어 ~/Documents 폴더는새로 설치하면 비어 있지만 기존에 내가 작성했던 문서들을 거기에 저장해 놓았었다. 아래의 명령으로 한번에 대체할 수 있다.

 $ for i in Desktop Downloads Pictures Templates Documents Music Public Videos; do (rmdir ~/"$i"/) && (mv "/home/aaa-14.10/$i" ~/); done

그 다음은, 기존의 사용자 폴더에 내가 만들어 놓은 폴더나 파일들을 옮겨 온다. 아래 명령으로 한방에 끝~!

$ mv /home/aaa-14.04/* ~/

대부분의 우분투 데스크탑 설정이나 애플리케이션 설정 폴더/파일 들은 "."으로 시작하기 때문에 위의 명령으로 "."으로 시작하는 폴더/파일 들은 자동 제외된다. 물론, 드물게 일부 애플리케이션의 경우 "."으로 시작하지 않는 폴더/파일을 사용하고 있다면 다시 /home/aaa-14.04로 원위치 시켜 놓는게 좋다. 참고로 "."으로 시작하는 Unix/Linux 파일들은 숨겨져 있어서 "ls -a" 명령으로 볼 수 있다.

추가적으로 터미널을 자주 사용하다 보니 .bashrc 파일을 빨리 옮겨 오는 것이 좋다.

$  mv /home/aaa-14.04/.bashrc ~/

우분투 데스크탑 환경 설정

사용자 데이터를 복원하고 나서 해야할 일은 우분투 데스크탑 환경을 예전에 쓰던대로 맞추는 일이다. ibus 한글 설정, 데스크탑 한글폰트 설정, 배경화면 교체, Unity 환경 설정, 자주 사용하는 앱을 Launcher에 등록하기 등등을 수작업으로 해주어야 한다. 

한글 폰트설정은 Unity Tweak Tool을 설치해서 폰트를 한글 폰트로교체해 주면 된다. 유니티 환경 설정은 이전 게시물을 참조하면 된다. ibus 한글 설정에 대해서는 "Ubuntu 14.10 ibus 설정 및 한글 이슈"에 정리했다.

자주 사용하는 소프트웨어 설치 및 설정

자주 사용하는 소프트웨어는 개인 별로 다르기 때문에 여기서는 자주 사용하는 몇개 소프트웨어에 대해서만 언급한다.

Google Chrome

크롬은 구글에서 따로 다운로드 받아야 한다. 검색해서 다운로드 받으면 된다. 설치후에 자동으로 저장소가 등록된다. 중요한 것은 이전에 사용하던 bookmark나 plug-in을 옮겨 오는 일이다. 구글 크롬을 설치하고 나서 크롬을 실행하기 전에 아래와 같이 해 주면 된다.

$ mv ~/.config/google-chrome ~/.config/org.google-chrome
$ mv /home/aaa-14.04/.config/google-chrome ~/.config/

Virtual Box

버추얼 박스도 Oracle 버추얼 박스 홈페이지에서 하라는 대로 따라해서 설치하면 된다. 저장소를 추가하고 설치하는 것이 좋다. 단, 아직 우분투 14.10저장소가 없으므로 trusty(14.04) 버전 저장소를 이용하면 된다. 설치 후, 이전에 사용하던 설정을 옮겨 오는 것이 중요하다.

$ mv /home/aaa-14.04/.VirtualBox ~/

기타 소프트웨어

아래는 우분투 설치 후 습관적으로 설치하는 소프트웨어 들이다. 이전 우분투 환경에서 따로 설정했던 것들이 있다면 설치 후에 위의 예를 참조하여 해당 소프트웨어가 사용하는 폴더나 파일을 옮겨 주면 된다.

$ sudo apt-get install gparted synaptic dconf-tools
$ sudo apt-get install compizconfig-settings-manager
$ sudo apt-get install ghex deluge vlc
$ sudo apt-get install valgrind exuberant-ctags cscope

Unity Desktop이나 Gnome Desktop 환경에서 KDE application 들을 설치할 때는 불필요한 KDE 파일들이 설치되지 않도록 아래와 같이 옵션을 주는게 좋다.

$ sudo apt-get install --no-install-recommends kdiff3 kchmviewer

2014/08/31

Apple Mac에서 EFI Multi-OS 설치


최근의 Apple Intel-Mac PC 들은 UEFI 표준을 따르지는 않더라도 UEFI를 지원하는 OS 들을 EFI 모드로 쉽게 설치해서 사용할 수 있다. 예전부터 Mac에서는 Windows 설치를 지원하기 위해 Boot Camp를 지원해 왔으나 이것은 EFI 방식이 아니고 CSM BIOS emulation 방식을 이용한 것이었다. 이러다 보니 Ubuntu 조차도 Mac(AMD 64) iso 설치 이미지를 따로 제공하고 있는데 BIOS 모드로 설치할 수 있도록 하기 위한 것이다.

여기서는 Mac OS X가 설치된 Mac PC에서 EFI 모드로 Windows와 Ubuntu를 설치하여 Triple-OS 환경을 구성하는 방법에 대해 알아 본다. Mac은 모델이나 출시 연도에 따라서 H/W가 달라질 수 있지만 적어도 최근 2~3년 내의 기종들은 모델에 상관없이 이 글에서 언급하는 내용이 적용될 것이다. 물론, 개별 드라이버들을 별개로 설치해야 할 수도 있으나 대부분은 기본 OS 설치 만으로도 사용할 수 있는 수준이다. 즉, iMac, Macbook Pro (retina), Macbook Air, Mac Mini 등에 모두 적용할 수 있다.

OS를 EFI 모드로 설치하려면 H/W에서 당연히 UEFI/EFI를 지원해야 하고 OS도 UEFI를 지원하는 것들이어야 한다. Mac OS X는 기본으로 EFI 모드로 설치 되어 있고, Ubuntu는 12.04.2 이후, Windows는 Vista 이후 64-bit 버전들에 대해서만 UEFI를 지원한다. 세부 사항은 UEFI Booting을 참고하는 것이 좋다.

1. Disk Partition

Mac OS X에서 Disk Utility를 이용해서 Windows와 Ubuntu 설치를 위한 파티션 공간을 미리 확보한다. OS가 모두 설치된 후에 특정 OS의 파티션 Tool을 이용하여 파티션 변경을 할 경우, 변경하지 않은 다른 OS의 파티션 정보가 변경될 수 있다. OS간 파티션을 다루는 방식이 다룰 수 있기 때문이다. 파티션 정보가 변경되면 뜻하지 않게 Mac OS X를 포함한 특정 OS로는 부팅할 수 없는 상황이 생길 수 있다. gdisk 등을 이용하여 파티션 테이블을 백업해 두면 쉽게 극복할 수 있는 문제이기는 하다.

가장 좋은 방법은 사전에 파티션 계획을 잘 세워서 파티션을 변경하지 않도록 하는 것이다. 경험상, OS 별로 최소한 OS 파티션과 Data 파티션은 구분해 두는 것이 좋다. 나중에 OS 버전 업 등 OS 재설치시에 Clean Install을 쉽게 할 수 있기 때문이다. 그리고, OS가 지속적으로 Upgrade 됨을 감안하여 OS 파티션을 넉넉히 잡아 주는 것이 좋다. SSD만을 사용하는 경우에는 용량 부족으로 다소 제약이 생길 수는 있다. 참고로, Mac OS X는 50GB, Windows 7+은 60GB, Ubuntu는 20GB 정도는 최소 OS 파티션으로 잡아 주는 것이 좋다. 디스크 용량 제한이 없으면 OS 파티션은 모두 100GB 정도면 된다.

이제 UEFI 환경에서 OS 별로 필요한 파티션 들에 대해 대해서도 미리 생각해 둘 필요가 있다. (U)EFI 방식에서는 GPT 파티션 방식을 따른다. Mac OS X에서는 기본적으로 ESP(EFI System Partition)을 확보해 두고 있다. 아래에, Triple-OS에 대한 기본 파티션들을 열거 하였다. 즉, Triple OS를 위한 기본 파티션 갯수만 8개이다.
  • 공유: ESP 파티션 (OS 별 boot loader 탑재)
  • Mac OS X: OS 파티션, MacData 파티션
  • Windows: OS 파티션, WinData 파티션
  • Ubuntu: OS 파티션, UbuntuData 파티션, swap 파티션
ESP 파티션과 Mac OS X 파티션을 제외한 나머지 파티션들을 Disk Utiltity를 이용하여 파티션닝한다. Mac Data 파티션과 swap 파티션을 제외한 나머지 파티션 들은 모두 MS-DOS 파일시스템으로 해 두는게 편리하다.

아래에 iMac 1TB 디스크에 Triple-OS 설치 후 파티션 정보를 예로 들었다. 12개의 파티션이 있는데 3번과 4번의 Recovery HD는 Mac OS X Upgrade 시 Mac OS X 파티션을 쪼개서 자동으로 Recovery 파티션을 만든 것이고, 5번 파티션도 Windows 설치시 자동으로 생성한 파티션이다. 위에서 8개 + 3개 하면 11개여야 하는데 12개인 이유는 디스크 공간이 넉넉하기 때문에 리눅스 Data 파티션을 1개 더 만든 것이다.

$ sudo parted /dev/sda print
Model: ATA APPLE HDD ST1000 (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system     Name                          Flags
 1      20.5kB  210MB   210MB   fat32           EFI system partition          boot
 2      210MB   99.6GB  99.3GB  hfsx            Apple_HFSX_Untitled_2
 3      99.6GB  100GB   650MB   hfs+            Recovery HD
 4      100GB   101GB   650MB   hfs+            Recovery HD
 5      101GB   101GB   134MB                   Microsoft reserved partition  msftres
 6      101GB   311GB   210GB   ntfs            Basic data partition          msftdata
 7      311GB   520GB   210GB   ntfs            Basic data partition          msftdata
 8      520GB   620GB   100GB   ext4
 9      620GB   720GB   100GB   ext4
10      720GB   736GB   16.0GB  linux-swap(v1)
11      736GB   894GB   157GB   ext4
12      894GB   1000GB  107GB   hfs+            Apple HFS/HFS+

2. EFI 모드로 Windows 설치

Mac에서 EFI 모드로 Windows를 설치하려면 Mac OS X의 Boot Camp를 사용해선 안된다. Boot Camp는 BIOS 모드로 부팅한다는 점 외에도 디스크 파티션 테이블을 Hybrid-MBR 방식으로 구성하므로 GPT 파티션 방식의 장점을 훼손하게 되고 파티션 변경에 매우 민감한 구조가 되어 Windows로 부팅하지 못하는 사태가 발생될 수 있다.

Windows 설치 iso를 USB로 굽되 Windows 8+인 경우 Rufus를 사용하여 uefi & gpt 방식으로 구워야 한다. 또한, Apple 홈페이지에서 Boot Camp 드라이버를 검색해서 미리 내려 받아서 USB에 복사해 둘 필요가 있다. 이 때, Boot Camp 드라이버가 자신의 Mac 모델과 반드시 일치해야 함에 유의한다.

Mac을 부팅하여 Option 키를 눌렀을 때 USB의 Windows EFI를 선택하여 부팅하면 되고, 설치시에 Windows OS 파티션과 Data 파티션을 모두 ntfs로 다시 포맷하는 것이 좋다. 설치 과정은 Windows 일반 설치 과정과 동일하다. Windows 설치가 완전히 끝난 후 Boot Camp 드라이버를 설치하면 Boot Camp 제어판을 이용해 Mac OS X로도 부팅할 수 있다.

3. EFI 모드로 Ubuntu 설치

우분투 사이트에서 Mac AMD가 아닌 일반 AMD 64-bit iso 이미지를 내려 받아서 Rufus를 이용해서 uefi & gpt 방식으로 굽는다(uefi & mbr 방식으로 구워도 된다). 또는, 앞서 작성한 게시물인 Ubuntu UEFI 모드 설치 USB 만들기를 따라해도 된다.

Mac을 부팅하여 Option 키를 눌렀을 때 USB의 EFI를 선택하여 부팅하면 되고, 설치 후 개별 드라이버들이 정상 동작하지 않을 경우가 있으므로 Ubuntu live 상태에서 기능들을 점검해 보는 것이 좋다. 적어도 live 상태에서 개별 드라이버에 문제가 없다면 설치 후 해당 드라이버 들의 문제는 쉽게 해결할 수 있다.

설치 시에 Linux 파티션을 OS와 Data 파티션을 ext4 파일시스템으로 포맷하면 된다. 앞서 생성한 우분투의 Data 파티션은 /home에 마운트 하도록 하고, 앞서 생성한 swap 파티션도 swap 파티션으로 지정한다. 나머지 설치 과정은 일반 우분투 설치 과정과 동일하다.

설치까지는 문제 없는데 설치 후 재 부팅해서 우분투로 부팅할 수 있는 방법이 아직 없다.

4. Triple-OS booting

Mac에서 Multi-OS booting이 가능하도록 하기 위한 가장 간단한 방법은 Mac OS X로 부팅하여 rEFInd나 rEFIt를 설치하는 것이다. rEFIt는 개발이 중단되었으므로 rEFInd를 사용하는 것이 좋다. 설치 후 Mac을 재부팅하면 rEFInd boot manager가 OS별 boot loader를 선택할 수 있도록 해준다.

rEFInd를 사용하지 않고 Mac 자체의 boot manager를 이용해서 Triple-OS booting 하는 방법에 대해서는 별도의 게시물인 Apple Mac에서 Multi-OS Booting을 참조하면 된다.

5. Ubuntu 개별 드라이버 설치

Mac에서 우분투 개별 드라이버 이슈를 알기 위해서는 다음 명령으로 Mac Model을 알 필요가 있다.

$ sudo dmidecode -s system-product-name

iMac13,2에서는 일단, WIFI가 문제였다. 다음 명령으로 WIFI 모델을 알 수 있다.

$ lspci -nn -d 14e4:

Broadcom BCM4331 모델인데 live USB에서 Broadcom proprietary driver가 정상 동작하는 것을 확인하였으므로, 우분투 live USB의 deb 패키지 파일을 복사해서 설치했다. 그리고, 설치하는 김에 kernel 업그레이드시 자동으로 모듈을 재설치할 수 있도록 dkms도 같이 설치했다.

$ sudo dpkg -i dkms_2.2.0.3-1.1ubuntu5_all.deb
$ sudo dpkg -i bcmwl-kernel-source_6.30.223.141+bdcom-0ubuntu2_amd64.deb

$ sudo depmod -a
$ sudo update-initramfs -c -k `uname -r`
$ sudo reboot

NVIDIA 드라이버의 경우 기본 설치된 nouveau도 화면 보호기가 제때 동작하지 않는 것을 제외하면 큰 문제는 없었으나 3D 가속기능을 사용하기 위해 proprietary driver를 사용하기로 했다. 문제는 우분투의 기본 드라이버는 정상 동작하지 않았다. NVIDIA 모델을 알기 위해서는 다음 명령을 사용하면 된다.

$ lspci | grep -i nvidia

NVIDIA에서 노트북용 GTX 675MX 최신 드라이버를 내려 받아서 설치했더니 그럭저럭 돌아간다. 사실, 약간의 문제가 있는데 일부 application에서 화면 떨림 현상이 잠깐씩 발생한다. 그리고, <Alt>+<Ctrl>+<F1> ~ <F5>를 눌러 Console 모드로 진입하면 black screen이 뜬다. 다행히, <Alt>+<F7> 키로 GUI로 되돌아 올 수는 있다. NVIDIA 드라이버 설치 방법은 Ubuntu 복구 모드(recovery mode) 활용을 참조하면 된다.