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

2016/04/23

Ubuntu 16.04 LTS 설치 소감


(2016/07/15 참고사항 추가)

어제 software-updater와 upgrade 명령으로 daily update를 했더니 gcc가 v5.3.2에서 v5.4.0으로, 커널은 v4.4.0-28에서 v4.4.0-31로 upgrade 됐다. 문제는 커널 업그레이드 과정에서 NVIDIA 드라이버 v352.63을 사용중이었는데 커널 모듈 컴파일 에러가 발생했다.

새로운 커널을 계속 사용하려면 NVIDIA 드라이버를 교체하는 수 밖에 없는데 그 과정에서 아래 NVIDIA 관련 삽질을 또다시 반복하는 사태가 벌어졌다. 아무튼 아래의 NVIDIA 설치 방법을 써먹을 기회(?)가 생겼고, 최신 NVIDIA 드라이버 v367.27을 설치해서 문제가 해결됐다. NVIDIA 드라이버 설치 후 로그인이 되지 않는 문제까지 생겨서 dconf db를 지우고 데스크탑 설정을 다시 해주어야만 했다.

그런데 이것이 리눅스 커널 Secure Boot와 관련된 문제인지 아닌지는 확실하지 않다. iMac에서 발생한 상황인지라 Mac은 기본적으로 Secure Boot를 사용하지 않기 때문이다. 일반 PC인 경우에는 BIOS/UEFI firmware Setup에서 Secure Boot를 끄면 문제가 안생기는 것인지 모르겠다.

참고로, Secure Boot를  disable 시키지 않고 부팅하려면 인증된 커널을 사용하면 되는데 여기를 참고하거나 아래 URL 참고... 그런데 너무 복잡하고 커널 업그레이드 될 때마다 인증을 해 주어야 하는 건 아무래도 무리일듯...

https://wiki.ubuntu.com/SecurityTeam/SecureBoot

그리고, 참고 삼아 VirtualBox도 업그레이드 됐는데 홈페이지 갔더니 v5.1도 새로 나왔더라. 빠르고 좋대서 5.1로 설치했다. 아직 제대로 안써봐서 머가 좋은지는...

추가하는 김에, Qt 5.6부터는 수정된 ibus immodule이 탑재되어 있어서 ibus를 기본 입력기로 사용해도 Qt Creator나 Qt App에서 한글입력이 잘된다.

-----------------------------------------------------------------------------

어제 따끈따끈한 우분투 16.04 LTS가 떳길래 반가운 마음에 우분투 설치 iso 이미지를 내려 받아
서 iMac에 설치하였다. LTS 버전이라 Clean Install을 감행했다. HDD의 iso 이미지로 설치하니까 10분도 안걸려 설치가 끝났다. 머 우분투 설치 자체야 쉽지만 예전에 쓰던 상태로 다시 만들기 위해 소프트웨어들을 다시 설치하고 모든 설정을 다시 해 주는게 보통 일은 아니다. 그간에 사용하던게 왜 이리 많은지 환경을 맞추는데만 2시간 넘게 소요된 것 같다.

그런데 문제는 우분투에 기본 탑재된 NVIDIA Proprietary driver(v361.42)를 설치하고 재부팅한 후부터 옛날에 경험했던 삽질들을 다시 하느라 엄청난 시간을 허비해야 했다. 공포의 Black(또는 Blank) Screen 문제가 발생한 것이다. 이 놈이 부팅할 때마다 서너 번에 한 번은 제대로 동작하는데 대부분의 경우에 Black Screen 문제가 생긴다. 우분투 15.04나 15.10에서는 기본 탑재된 NVIDIA 드라이버들이 아무 문제 없었기 때문에 당연히 아무 문제가 없으리라 예상했는데 리눅스에 항상 아쉬운 부분으로 남는다. 물론 nouveau 드라이버는 깔금하게 동작한다.

아무튼 지금은 모든 문제가 해결됐다. 우분투가 전반적으로 빨라진 느낌도 든다. 나중에 우분투 16.04를 설치하는 사람들에게 참고가 되길 바란다. Unity 8과 Mir는 사용할 수는 있지만 아직은 완성도가 떨어지는 모양이다. 기본적으로 NVIDIA 환경에서 동작하지 않는다. 우분투 15.10에서 설치해 봤는데 nouveau 환경에서도 로그인 조차 안돼서 포기했다.

우분투 16.04 LTS의 새로운 것들

이 곳을 참고하거나 Release Note를 참고하면 우분투 16.04에서 달라진 것들을 쉽게 확인할 수 있다.

Linux kernel 4.4, Python 3.5, Golang 1.6, PHP 7, OpenSSH 7.2p2, Apt 1.2, LibreOffice 5.1, Firefox45 등을 비롯한 수많은 S/W가 upgrade 되었다. 참고로, 패키지 관리자인 Apt는 apt-get대신 apt 명령으로 사용할 수 있고, 새로운 기능들을 추가로 사용할 수 있다. 이 곳을 참고하면 주요 배포판의 패키지 명령들을 비교해서 기능을 쉽게 익힐 수 있다.

Unity 7.4 데스크탑 기능도 많이 안정화 됐고 기능도 강화됐는데, 아래의 명령으로 화면 왼쪽의 Launcher를 아랫쪽으로 옮길 수도 있다.

$ gsettings set com.canonical.Unity.Launcher launcher-position Bottom

그 동안에 Privacy 문제로 논란이 됐던 Dash에서의 On-line 검색은 기본 설정에서는 동작하지 않도록 바뀌었다. Overlay Scrollbar는 15.10부터 바뀐 것이다. [System Settings] > [Appearance]와 Unity Tweak Tool을 설치해서 함께 사용하면 대부분의 Unity 데스크탑 환경을 필요한 대로 설정할 수 있게 되었다. HUD의 단축키가 <Alt>로 되어 있어서 국내 사용자들이 한영키 설정시 혼란을 많이 겪었었는데 <Alt>+<Space> 키로 바뀐 것도 고무적이다. 이 곳을 참고하면 유니티 데스크탑 환경 설정에 도움이 된다.

무겁고 느려 터져서 논란이 됐던 Ubuntu Software Center도 Gnome Shell의 Software로 대체되었다. 제목은 Ubuntu Software가 됐고 아이콘이 그대로라 바뀐 줄 모를 수도 있다. 이와 함께 Gnome Shell의 Calendar도 일정관리를 위해 사용할 수 있고, On-line 계정과 연동하여 동기화할 수도 있다.

이외에도, Snap 패키징, LXD(LXC hypervisor), ZFS 파일시스템을 우분투에서 사용할 수 있다. 리눅스에서는 License와 특허 등의 문제로 ZFS 파일시스템 대신 Btrfs 개발에 힘을 실어 왔는데 우분투가 ZFS를 밀기로 한 것인지는 모르겠다. ZFS는 역사가 깊고 대규모 서버 환경에서 검증됐기 때문일 수도 있다. 참고로, Btrfs와 ZFS는 기능적으로는 유사하지만 설계부터 다르고, Btrfs가 리눅스 커널에 포함되어 있는데 반해 ZFS는 라이센스 문제 때문에 kernel module로만 사용할 수 있다.

AMD Radeon 그래픽 카드 사용자들은 당분간 우분투 16.04를 사용하지 말라는 경고도 있다. fglrx 대신 오픈소스 radeon과 amdgpu 드라이버가 개발 중인데 아직 성능이 그닥이란다.

NVIDIA 드라이버 재설치 방법

전에 올렸던 우분투 복구모드에서의 NVIDIA 드라이버 설치 방법으로는 nouveau 모듈이 로딩되는 것을 막지 못해서 NVIDIA 드라이버 설치 후에 로그인이 되지 않는 문제가 생겼다. 그래서 구글링해서 찾은 방법대로 성공했기에 다시 정리한다.

NVIDIA 홈페이지에 가보니 우분투 16.04에 기본 탑재된 v361.42가 최신 stable 버전이더라. 같은 놈이라서 문제가 생길 소지가 있어서(나중에 해봤더니 이 버전은 설치시 오류가 생기더라) 15.10에서 잘 동작했던 NVIDIA-Linux-x86_64-352.63.run을 내려 받아서 설치했다.

우분투 16.04에 기본 탑재된 NVIDIA 드라이버에 문제가 생겨 GUI를 쓸 수 없기 때문에 nouveau 드라이버로 복구하는 일 부터 다시 해야 했다. 참고로, iMac에서는 UEFI 모드에서는 NVIDIA 드라이버가 정상 동작하더라도 <Alt>+<Ctrl>+<F1> ~ <F6> 키로 console을 띄우면 Black Screen이라 복구모드 외에는 작업할 수 있는 방법이 없다. NVIDIA가 아직 지원하지 않는단다. 그런데 복구 모드에서는 Copy & Paste가 안되기 때문에 GUI 환경에서 작업하는게 좋다.

0. 우분투 복구 모드에서 파일 시스템 Check

나의 경우에는 NVIDIA가 동작하는지 확인하느라 재부팅을 몇 번이나 했는데 이 과정에서 Power 버튼으로 Hard 부팅을 해야 했기에 파일 시스템이 좀 깨져 있었다. 혹시 모르니 복구 모드로 부팅해서 fsck를 돌려 볼 필요가 있다.

1. 우분투 복구 모드에서 문제가 있는 NVIDIA 드라이버 제거

복구 모드에서 파일 시스템 check를 하면 자동으로 디스크 파티션을 rw 모드로 mount 해주는데, fsck를 돌리지 않았다면 수동으로 mount해 주어야 한다.

$ mount -o remount,rw /
$ mount -a

우분투 복구 모드 활용에서 다룬대로 복구 모드로 부팅한 후, 아래의 명령으로 NVIDIA 드라이버를 모두 제거한다.

$ apt-get remove --purge nvidia*

만약, 아래 3번에서 이미 blacklist 파일을 생성했었다면 nouveau 드라이버로 부팅하기 위해서, 파일을 삭제하거나 편집기로 아래와 같이 '#' 으로 comment 처리해야 한다.

$ nano /etc/modprobe.d/blacklist-nouveau.conf

#blacklist nouveau
#options nouveau modeset=0

$ reboot

2. 우분투로 정상 부팅 후 nouveau 드라이버 복구

우분투로 부팅하면 nouveau가 아직 복구된게 아니므로 GUI가 뜨긴 하지만 로그인이 안된다. 하지만 이 상태에서는 <Alt>+<Ctrl>+<F2> 키로 정상적인 console 로그인이 가능하다. 아래의 명령으로 필요한 패키지를 재설치 한다.

$ sudo service lightdm stop
$ sudo apt-get install --reinstall xserver-xorg-core libgl1-mesa-glx
$ sudo service lightdm start

참고로, 위의 명령이 우분투 16.04에서도 동작하긴 했지만 우분투 15.04이후 systemd를 사용하고 있기 때문에 아래와 같이 systemctl 명령이 올바른 것일 수 있다.

$ sudo systemctl lightdm.service stop

이제 재부팅하면 nouveau 드라이버로 로그인 할 수 있다. 그런데 만약 재부팅 후에도 로그인이 되지 않을 경우가 발생할 수 있는데(삽질하다 보니 발생하더라...) 아래와 같이 dconf database를 삭제하면 로그인 할 수 있다. 다만, 주의할 점은 dconf database를 삭제하면 Unity Desktop 설정을 모두 다시 해 주어야 한다.

$ mv ~/.config/dconf/user ~/.config/dconf/org.user
$ sudo reboot

3. 새로운 NVIDIA 드라이버 설치 후 nouveau 드라이버가 로딩되지 않도록 blacklist 파일 생성

$ sudo nano /etc/modprobe.d/blacklist-nouveau.conf

nouveau 모듈이 로딩되지 않도록 편집기로 아래의 두 줄을 넣어 저장한다.
blacklist nouveau
options nouveau modeset=0
blacklist lbm-nouveau
alias nouveau off
alias lbm-nouveau off

$ sudo nano /etc/modprobe.d/nouveau-kms.conf

커널의 nouveau가 동작하지 않도록 편집기로 아래의 내용을 넣어 저장한다.
options nouveau modeset=0

아래의 명령으로 수정한 blacklist가 제대로 동작하도록 initramfs를 update해 준다.
$ sudo update-initramfs -u

$ sudo reboot

4. 다시 우분투 복구 모드로 부팅 후, 새로운 NVIDIA 드라이버 설치

$ mount -o remount,rw /
$ mount -a

$ sh NVIDIA-Linux-x86_64-352.63.run
$ reboot

5. 재부팅 후 NVIDIA 드라이버 환경에서 정상 로그인이 되는지 확인

부팅 후 NVIDIA 버전은 아래 명령으로 확인할 수 있다.

$ nvidia-smi

참고 사항

위의 4번처럼 우분투 복구모드로 부팅하지 않고 부팅시 Grub 메뉴엔트리를 수정하여 콘솔 모드로 부팅해서 작업해도 된다. 기본 Ubuntu 부팅 메뉴가 선택된 상태에서 <e> 키를 누르면 Grub edit 모드로 진입하는데 커널 부팅 옵션(linux로 시작하는 부분)의 "quiet splash $vt_handoff" 부분을 지우고 "3 nomodeset"으로 대체한 후 <F10>키를 누르면 수정된 옵션으로 부팅한다. 참고로 3은 Linux runlevel 이다. 이렇게 부팅하면 rw mode로 이미 mount된 상태이므로 mount 명령은 필요 없다.

구글 chrome 설치 오류

구글에서 chrome을 내려 받아 설치하면 오류가 생겨서 처음부터 약간 기분이 나빠진다. 그런데 알고 보니 우분투에서 긴급 패치를 한 것 같다. 구글 chrome을 설치하기 전에 우분투 16.04 daily update부터 해주면 누락된 라이브러리가 먼저 설치되기 때문에 오류가 발생하지 않는다. [System Settings] > [Software & Updates] > [Ubuntu Software] > [Download from] > "Main Server"로 바꿔주고 나서,

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

하면 우분투 daily update를 설치할 수 있다. 사실 우분투 설치하고 나서 이걸 항상 가장 먼저 해주는게 좋다.

VirtualBox 설치시 참고 사항

VirtualBox 5.0.18 설치는 오라클 VirtualBox 설치 방법을 따라가면 되는데, /etc/apt/sources.list 파일의 저장소 설정은 아래와 같이 해도 잘 된다.

deb http://download.virtualbox.org/virtualbox/debian xenial contrib

버추얼박스 설치 후에 VirtualBox Extension Pack을 내려 받은 후 설치하기 위해서는 아래의 명령을 실행해 주면 된다.

$ sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.0.18-106667.vbox-extpack

언제부터 바뀐 것인지 모르겠는데 Guest Additions iso 이미지가 설치되어 있지 않더라. 가상머신 실행 후, [Devices] > [Insert Guest Additions CD Image]를 선택하면 On-line으로 내려 받아 ~/.VirtualBox 폴더에 저장된다.

기타 참고 사항

iMac에서 이전의 우분투 버전에서는 Broadcom Proprietary WIFI 드라이버를 별도로 수작업으로 설치했어야 했는데 16.04에서는 잘 잡아 주더라.

또한, 한글 입력은 fcitx를 사용하면 잘 된다. Qt5.5에서 Qt Creator나 Qt App에서 한글 입력이 안되던 문제가 생겼었는데 한글 입력도 잘 된다. 다솜 입력기도 잘 된다는데 우분투 패키지에 포함되지 않아서 아쉽다.

다만, 아직 본격적으로 우분투 16.04를 써 본건 아니라서 어떤 문제가 있을지는 두고 볼 일이다.

2015/10/28

Ubuntu 15.10 Upgrade


지난 주에 우분투 15.10이 나왔는데 주말에 15.04였던 놈을 Software Updater를 사용해서 15.10으로 Upgrade했다. 대개는 Clean Install을 했었는데 우분투 홈페이지에서 15.10의 새로워진 점을 보았더니 크게 사용자가 느낄 정도로 달라진 점은 없어 보였기 때문이다. 대략 1시간 반 정도 걸렸다. 우분투 15.10에 대한 새로운 기능들은 여기를 참고하면 더 도움이 된다.

대체로 이번 Upgrade는 15.04의 버그 Fix 및 gcc를 비롯한 주요 패키지들이 버전 업 됐다는 것에 만족해야 할 듯 하다. 15.10이라는 버전에 걸맞지 않는다는 의견들도 상당히 있더라. 몇일 써본 봐로도 겉보기에 15.04와 크게 달라진 점은 별로 없어 보인다.

하지만, 우분투를 새로 설치하려는 이들에게는 굳이 우분투 14.04.3 LTS 버전을 설치하기 보다는 많이 안정화됐고 systemd와 같은 새로운 환경에 빨리 적응할 수 있도록 우분투 15.10을 적극 추천하는 바이다.

우분투 15.10 Desktop에서 새로워진 점

Linux kernel 4.2가 탑재되었다. 최신 AMD Radeon GPU 사용자들에겐 희소식일 수 있다. kernel 4.0 이후에 도입된 kernel live patching 기능은 배포판 사용자 들에겐 그리 큰 의미가 있는 것은 아니었다. 어차피 커널 보안 패치는 배포판 서버에서 제공하는 것을 받아야 하니까. 서버 사용자이면서 중요한 커널패치를 실시간으로 적용하고자 할 때는 도움이 된다. 이외에도 Intel Broxton 등 새로운 드라이버들이 새 커널에 많이 포함되었단다.

Unity 7.3.2 데스크탑에서는 주로 Dash쪽 기능들이 개선됐는데 눈에 띄는 부분은 Dash에서 검색한 App을 바탕화면이나 Unity Launcher에 Drag & Drop으로 끌어다 놓을 수 있는 점이다. 그리고, Gnome 3.16에 기반하여 Unity가 동작하는데 대표적으로 Scrollbar가 Gnome Overlay Scrollbar로 바뀌었다. 사실 Unity Scrollbar는 별로 편하다고 생각되진 않았고 굳이 그런데 공들일 필요가 있나 싶겠다는 생각도 있었는데, Canonical이 Upstart를 버린 것처럼 포기할 건 과감히 포기하는 모습은 좋아 보인다. 좀 아쉬운 점은 Gnome 3.16의 패키지들이 모두 Ubuntu 15.10에 Update되진 않았다. 대표적으로 gedit나, Nautilus 파일 관리자가  그것들이다.

이외에도, 개발자들을 위한 Ubuntu Make(umake)가 Android 개발 환경을 비롯해서 다양한 platform과 framework 들을 통합 지원한단다. 우분투에서 Game을 즐기는 이들에게는 Steam Controller가 제공된다는 점도 희소식이 될 것이다. 또한, Persistent Network Interface Name이 도입되어서 eth0 같은 네트워크 인터페이스명 대신 다소 복잡하면서도 영구적인 명칭을 갖게 되었다. 다만, 나처럼 Upgrade한 경우에는 eth0를 그대로 사용하는 듯 하다. VirtualBox에 설치해 보았더니 enp0s3라는 인터페이스가 생겼다. 아래 명령으로 확인할 수 있다.

$ ifconfig

이 밖에, 배경화면을 포함해서, gcc 5.2.1, Firefox 41.0.2, Libre Office 5.0.2.2 등등 수 많은 패키지가 Update 되었다.

한글 패키지와 다솜(dasom) 입력기에 대한 바램

한글 관련 패키지는 언제나처럼 [System Settings] > [Language Support]를 선택하면 설치되는데 fcitx가 기본 패키지로 포함되어 있어서 ibus 대신 쉽게 바꿔 사용할 수 있다. 최근에 우분투 한국 커뮤니티에 다솜 입력기를 정식 출시했던데, 다음 우분투 버전에는 다솜 입력기도 한글 패키지에 포함됐으면 하는 바램이다. ibusfcitx 한글 관련 설정은 우분투 14.10 이후의 방법들을 사용하면 되므로 다시 언급하지는 않겠다.

참고로, 다솜 입력기에서는 한글 마지막 입력 후 마우스 이동시 한글이 따라 다니는 끝 글자 버그를 해결했단다. 고생하신 개발자 분께 감사드린다. 한편으로는, 다른 한글 입력기들의 고질적인 유지보수 문제를 해결하기 위해서 더 많은 사람들이 관심과 참여를 가질 수 있기를 바라고, 혼자서 프로젝트를 끌고 가려고 하지말고 나같은 노친네들보다는 후배들이 많이 참여할 수 있도록 해 주시길 바란다. Mir나 Wayland로 X-Window 환경이 바뀌게 되면 또 다른 노력이 필요할 것이고 미래에도 새로운 기술 환경에 적응해서 살아 남아야 하기 때문이다.

우분투 15.10 Upgrade 후 생긴 자잘한 문제들

우분투 15.10으로 Upgrade하고 나서 우분투로 부팅하면 Unity 로그인 화면이 나타나야 하는데 공포의 black screen이 나타났다. 다시 전원을 끄고 부팅했더니 제대로 나타났다가 또 부팅하면 다시 black screen이다. 그런데, Volume을 좀 키웠더니 다행히 black screen 문제는 공포의 black screen 증상은 아니었다. 우분투 부팅시 북 두드리는 소리가 들렸기 때문이다. <Ctrl><Alt><F2> 눌렀다가 <Alt><F7>을 눌렀더니 로그인 화면이 나타났다. 혹시나 해서 ~/.cache 폴더를 지우고 lightdm을 다시 설치했더니 이 문제가 해결된 듯 했는데 재발하더라. [System Settings] > [Software & Updates] > [Additional Drivers] Tab에서 Nouveau 드라이버를 선택했다가 재부팅 후 다시 Nvidia 드라이버를 선택하고 재부팅했더니 더이상 재발하지 않는다.

이 외에 VirtualBox 5.0.8이 죽는 문제가 있었는데 한번만 생기고 더이상 발생하지는 않고 있다. 그리고 chrome이나 chromium 기동시 기본 브라우저로 설정할지를 계속 물어 보는데 더 이상 묻지 않기를 click하면 된다.

기타 참고 사항

우분투 15.10부터 바뀐 것인지 아니면 chrome/chromium에서 제공하는 기능인지 모르겠는데 다운로드시 다운로드 진행상태가 Unity Launcher의 아이콘에 표시된다. firefox는 안된다.

VirtualBox UEFI 모드 Guest 부팅 문제 해결

이전 게시물에서 해결하지 못했던 문제를 해결했는데, 우분투 14.10 이후 버전부터 VirtualBox에서 UEFI 모드로 Guest를 설치하면 가상머신으로 부팅할 수 없었던 문제가 있었다. 15.10에서도 역시 같은 증상이었는데 구글링해 보니 해결 방법이 있었다. UEFI Shell에서 startup.nsh 스크립트 파일이 있으면 이놈을 먼저 실행하는데 여기에 grubx64.efi path를 넣어 주면 UEFI 모드로도 부팅할 수 있다. VirtualBox나 btrfs 파일시스템의 문제는 아니었다. 다만, 우분투 14.04에서는 별다른 설정 없이도 가능했는데 왜 그런지는 모른다. VirtualBox에서 우분투 설치 iso로 부팅한 후 아래와 같이 startup.nsh를 새로운 가상 머신의 EFI System Partition(ESP)의 / 폴더에 생성해 주고 가상머신을 재부팅하면 된다.

$ sudo mount /dev/sda1 /mnt
$ cd /mnt
$ sudo echo '\EFI\ubuntu\grubx64.efi' > startup.nsh

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/04/25

Ubuntu 15.04 적극 추천


어제 글(어제 밤에 12시를 넘기는 바람에 날짜는 이 글과 동일함)에서 우분투 15.04를 권장하지 않는 분위기로 글을 올렸는데 VirtualBox가 아니고 iMac에 설치해서 잠깐 사용해 본 결과 우분투 15.04를 적극 추천하지 않을 수 없게 입장이 바뀌었기에 이 글을 별도로 작성한다. 적어도 Intel-Mac 사용자들에게는 강력 추천하고 싶다. 기능이 추가된 것보다는 안정성이 상당히 강화된 것에 높은 점수를 주고 싶다. 우분투 14.04 LTS 보다 더 안정된 느낌이다.

원래는 VirtualBox에만 설치하고 메인 머신은 우분투 14.10으로 1년 정도 더 버텨볼 생각이었다. 그런데, 가상머신 환경이라 느려서 그렇지 뭔가 상당히 안정된 느낌을 주었기에 메인 머신에서 테스트해 봐야겠다는 생각이 들어서 15.04로 하드디스크의 우분투 설치 iso를 이용하여 Clean Install 하였다.

 Nvidia 드라이버 안정성

우선, Nvidia 드라이버가 상당히 안정화 되었다. Nouveau 드라이버도 상당히 개선된 것 같고, 우분투 15.04에서 기본으로 제공하는 Nvidia proprietary driver도 346.59 버전으로 거의 최신 버전이다.

일단 14.10버전까지 오픈 소스 Nouveau 드라이버는 Qt Creator에서 QML 등 OpenGL을 사용하는 애플리케이션에서 화면 잔상이 생겨서 거의 사용할 수 없었는데 깔끔하게 동작한다. 다만,  Virtual Box 우분투 guest 머신에서 3D 가속을 사용할 경우 시스템이 죽는 문제가 발생했다. 이는 이전 버전에서도 흔히 생겼던 문제이고 우분투 문제라기 보다는 Virtual Box 문제인 경우가 많았다. Windows guest는 그럭저럭 잘 돌아간다. 3D 가속만 끄고 사용하면 우분투 게스트도 좀 느리긴 하지만 별 문제는 없다.

우분투 14.10까지는 Nvidia proprietary 드라이버를 Nvidia 홈페이지에서 다운 받아 사용해야 했다. 우분투에 기본 탑재된 드라이버를 사용할 경우 공포의 black screen 문제가 발생했었다. 이제는 기본 탑재된 드라이버를 사용하면 된다는 것이 특히, Intel-Mac 사용자들에게는 기쁜 일이다. 또 한가지 Mac 사용자들에게 반가운 점은 화면 밝기 조절을 매 부팅시마다 해 주었어야 했는데 밝기 변경 상태가 재부팅 후에도 잘 유지된다

System 안정성

우분투 14.10 사용시에는 부팅시마다 colord-sane 데몬 등 crash가 끊이질 않았는데 crash가 없어지니 뭔가로 부터 해방되어 편안한 느낌이 든다. 몇일 더 써 봐야 확실해지긴 하겠지만 우분투를 사용하면서 이렇게 안정된 느낌을 받아 본적이 없을 정도다.

우분투 14.10 설치 후 재부팅시 iMac에서 우분투로 부팅할 수 없었던 문제도 사라졌다. EFI 설정이 잘 보존된다. 다만, 우분투 15.04를 설치한 후 EFI Multi-OS 사용시 부팅 순서를 우분투가 1순위가 되도록 조정한다. 이것은 어쩌면 OS 입장에서 당연한 것인지도 모른다. 방금 설치한 OS로 부팅하도록 할 필요가 있기 때문에... 아무튼 부팅 순서는 우분투로 부팅하고 나서 이전 글의 efibootmgr 사용법을 참고하여 바꿔주면 그만이다.

WIFI 안정성

iMac에서는 우분투에 기본 탑재된 Broadcom proprietary driver를 사용하면 되는데 수동으로 설치해 주어야 하는 문제는 아직 남아있다. 몇일 더 써보아야 확인이 되긴 하겠지만 WIFI도 개선이 된듯하다. 무선공유기에 가끔씩 연결이 안되는 문제가 사라졌고 네트워크 속도도 상당히 빨라진 느낌이다. 오늘이 주말이라 그럴 수도 있기 때문에 좀더 지켜봐야 한다. 참고로, 유선 네트워크 드라이버를 언급하지 않는 이유는 예전부터 별 문제가 없었기 때문이다.


아직 하루도 안써 보고 안정성을 얘기하는 것이 때 이르긴 하지만 문제가 발생하면 이후에 다시 글을 수정할 생각이다.

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/09/25

하드디스크의 우분투 설치 iso로 우분투 설치


(2014/10/29 오류 수정)

Facebook 우분투사용자모임에 USB 플래시 메모리 없이 하드디스크(HDD)로 우분투를 재설치 할 수 없느냐는 질문이 있어서 겸사겸사 정리해 보기로 했다. 이미 우분투가 설치되어 있는데 우분투를 업그레이드 하기 위해 Clean Install 하고자 한다면 굳이 USB를 사용하지 않아도 되기 때문에 매우 편리한 우분투 설치 방법이다.

우분투 설치를 USB를 사용하지 않고 하드디스크를 이용해서 설치하는 것은 우분투 설치 USB 만들기를 응용하면 쉽게 할 수 있다. 하드디스크를 USB라고 생각하면 되기 때문이다. 다만, 하드디스크에 Grub이 설치되어 있지 않다면 USB가 반드시 필요하기는 하다. 여기서는 우분투가 이미 설치되어 있는 경우에 하드디스크에 저장된 우분투 설치 iso로 우분투를 재설치하는 방법이다. Grub이 당연히 설치되어 있기 때문이다.

우분투를 재설치하려면 우분투 홈페이지에서 내려 받은 우분투 설치 iso 파일은 우분투를 새로 설치할 파티션과는 다른 파티션에 있는 것이 좋다. 평소에 OS와 데이터 파티션을 분리해서 사용하는 것은 여러모로 장점이 많다. Windows를 같이 사용하고 있다면 Windows 파티션에 iso 파일을 복사해서 사용해도 된다. 파티션이 하나 밖에 없다면 parted로 파티션을 분리하는 것이 좋고, 그게 어려우면 iso 폴더를 만들어서 우분투 설치 시에 덮어쓰기로 설치할 수도 있기는 하다.

우분투 설치 iso 파일 위치 확인

기존에 데이터 파티션은 /home에 마운트해서 사용하고 있고 aaa라는 사용자의 Downloads 폴더에 우분투 설치 iso를 내려 받았다고 가정한다. 향후에도 우분투 iso 이미지를 가지고 하드디스크에서 부팅해서 설치할 경우를 대비해서 아래와 같이 /home/boot-isos 폴더를 만들고 사용자 권한을 부여해 두면 좋다. 내려 받은 iso 이미지들은 모두 /home/boot-isos 폴더로 몰아 넣는다.

$ sudo mkdir /home/boot-isos
$ sudo chown aaa:aaa /home/boot-isos
$ mv ~/Downloads/*.iso /home/boot-isos

이제, /home이 어느 파티션인지 알아야 한다. 아래와 같이 /dev/sda9 파티션임을 알 수 있다.

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda8        92G   22G   65G  26% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            3.9G  4.0K  3.9G   1% /dev
tmpfs           793M  1.4M  791M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            3.9G   17M  3.9G   1% /run/shm
none            100M   76K  100M   1% /run/user
/dev/sda11      145G  129G  8.7G  94% /opt
/dev/sda9        92G   29G   59G  34% /home
/dev/sda1       197M   48M  150M  25% /boot/efi

우분투 설치 iso 파일에 대한 Grub boot menu entry 등록

Grub에서 우분투 설치 iso로 부팅하려면 Grub boot entry를 새로 추가하되, 하드디스크 파티션 정보와 파일 경로를 지정해 주어야 한다. 위에서 /dev/sda9 파티션이니까 디스크의 9번째 파티션이다. 디스크는 첫번째 하드디스크이다. 즉, 아래 menu entry의 (hd0,9)에 해당한다. USB 메모리로 부팅할 경우에도 USB 메모리가 첫번째 디스크가 되므로 hd0이다. 또한, iso 파일 경로는 파티션을 기준으로 하기 때문에 /home/boot-isos/...가 아니라 /boot-isos/ubuntu-14.04.1-desktop-amd64.iso가 됨에 유의할 필요가 있다.
menuentry "HDD Ubuntu 64-bit iso" {
   set isofile="/boot-isos/ubuntu-14.04.1-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
}
위의 내용을 nano등의 편집기를 사용하여 /etc/grub.d/40_custom 파일 맨 끝에 추가한다.

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

/boot/grub/grub.cfg를 새로 생성하기 위해서는,

$ sudo update-grub

이제 재부팅 해서 Grub 메뉴 중 위에 만든 "HDD Ubuntu 64-bit iso" 메뉴를 선택한 후, 다시 "Try Ubuntu without installing" 메뉴를 선택해서 우분투 live CD 환경으로 부팅하면 iso 이미지로 부팅해서 우분투를 설치할 수 있게 된다.

$ sudo reboot

우분투 설치 iso로 재부팅 후 우분투 설치전에 해야 할 일

우분투 14.10을 이 게시물 대로 하드디스크의 iso 이미지로 설치하다가 뭔가 빠졌음을 알게 되었다. 우분투 설치 파일을 마구 복사하면서 빨리 설치가 진행되어야 하는데  File System을 인식하지 못해 설치가 진행되지 않고 계속 멈춰 있는 증상이다.

설치 중에 파티션 테이블을 건드리는데 하드디스크의 iso 이미지를 사용하기 위해 하드디스크를 mount 상태로 두고 있으니 파티션 테이블을 수정할 수 없게 된다. 물론 설치 과정 중에 unmount 할지 물어보고 yes라고 해도 root 권한이 없으니 unmount가 안된다.

우분투 설치 icon을 click 하기 전에 <Ctrl>+<Alt>+<t>로 터미널을 띄워서 아래와 같이 umount 해주면 된다.

$ sudo umount -l /isodevice

2014/08/18

Ubuntu UEFI 모드 설치 USB 만들기


제목을 "Ubuntu UEFI 모드 설치 USB 만들기"로 달았지만, 이 글은 사실, "UEFI와 BIOS를 모두 지원하는 우분투 설치 USB 만들기"가 정확할 것이다.

우분투 설치 USB 만들기에 대한 글은 사실 널려 있다. 그리고, 우분투 한국 커뮤니티에도 "Super Grub2 Disk를 이용한 우분투 Live/설치 USB 만들기"를 올린 적이 있다. 따라해 보라고 알려 줘도 당장 설치하고자 하는 마음이 앞서기 때문에 빠른 방법을 찾는 듯하다. 즉, 간단히 RufusUNetbootin, Universal USB Installer 등과 같은 USB 굽기 Tool을 사용하면 된다. 또, 버그가 있었지만 우분투가 기본으로 제공하는 Startup Disk Creator도 있다. 다만, 굳이 이런 Tool을 사용하고 싶다면 Rufus가 좋다. Rufus는 BIOS와 UEFI 방식을 모두 지원한다.

물론, 위의 글이 갖는 한계도 있다. Windows 사용자가 처음 리눅스를 설치하고자 한다면 우분투 환경이 없기 때문에 불가능한 방법이다(사실, 이 경우라면 Virtual Box에 우분투 설치해서 먼저 써 보는게 좋고, 자연스레 우분투 환경이 만들어 진다). 그리고, 우분투 사용자라고 하더라도 Super Grub2 Disk라는 생소한 Tool을 또 배워야 한다는 부담감이 있다(배우는데 30분이면 족하지만).

사실, 편하기로 따지자면 앞서의 Super Grub2 Disk를 이용한 USB 만들기를 사용할 것을 권하고 싶다. 왜냐하면 Super Grub2는 단순히 Grub2 Script를 이용해서 Grub2의 기능을 100% 이상 활용하기 때문이다. 결과적으로는 PC에서 부팅할 수 있는 Windows, Mac OSX, 온갖 Linux 배포판, FreeBSD 등을 포함한 대부분의 OS와 iso 이미지, 커널, (U)EFI/BIOS boot loader 등 대부분의 부팅 방식 들을 지원하기 때문이다. OS가 설치됐지만 갑자기 부팅이 안될 때 Super Grub2는 매우 유용하다.


여기서는, 우분투 환경이 있어야 한다는 제약은 있지만, Super Grub2를 사용하지 않고 순수하게 우분투 기본 환경에서 우분투 설치 USB를 만드는 법을 정리한다. 이 방법의 장점은,
  • 우분투 사용자 입장에서 별도의 Tool이 불필요
  • 매번 USB 굽기에 따른 USB 데이터 손실이 없음: 즉, USB 고유의 Data 보관기능 유지
  • iso 이미지 파일만 교체 또는 추가하면되므로 우분투 버전업이 용이함
  • BIOS 방식과 UEFI 방식을 모두 지원함
  • 32-bit와 64-bit iso 이미지 모두 지원함
  • Apple Mac H/W에 우분투 설치시 별개의 복잡한 USB 만들기 절차 불필요
별도의 Tool이 불필요한 점을 제외하면, Super Grub2를 이용한 USB 만들기 방법이 장점이 더 많다는 점을 한번 더 강조하고 싶다. 그리고, 이 방법이 기존의 iso 이미지를 굽지 않는 방법과 다른 점은 최신 Window 8/8.1이 설치된 PC 들이 대부분 UEFI 방식으로 부팅하기 때문에 UEFI 방식을 지원한다는 점이다.

1. 1GB 이상의 빈 USB를 준비하여 gparted를 이용, GPT 파티션 생성

여기서는 3개의 파티션을 사용하고, 1번은 ESP(EFI System Partition, 200MiB), 2번은 BIOS Grub 용(1MiB), 3번은 iso 이미지 용(나머지 USB 용량) 할당한다. USB 용량이 8GB 이상이면 파티션 수를 많이 늘려서 여러가지 목적으로 활용 가능하다. GPT 파티션은 기본적으로 128개 까지 Primary Partition을 만들 수 있다.

$ sudo gparted /dev/sdb

먼저, Partition Table을 msdos가 아닌 gpt로 구성하고, 아래의 parted 실행 결과처럼 파티션을 나눈 후 gparted에서 빠져 나온다. 참고로, 아래의 2번 파티션은 gparted에서 unformatted 상태로 bios_grub Flag를 설정한 것임에 유의한다. 사실, 3번 파티션은 ext2가 아닌 아무 파일 시스템이나 상관없다. bios_grub 파티션은 GPT 파티션에 BIOS Grub을 설치하기 위해 필요하다.

$ sudo parted /dev/sdb print
Model:  USB DISK 2.0 (scsi)
Disk /dev/sdb: 3880MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name  Flags
1      1049kB  211MB   210MB   fat32              msftdata
2      211MB   212MB   1049kB                     bios_grub
3      212MB   3880MB  3668MB  ext2
참고로, 리눅스 설치 만이 목적이라면 굳이 GPT 파티션을 사용할 필요가 없고, 파티션도 1개로 해도 된다. 즉, MBR (gparted의 msdos) 파티션을 사용하고 1개의 fat32 파티션을 사용해도 우분투는 BIOS와 UEFI 모드로 모두 설치할 수 있다.

2. Ubuntu 사이트에서 우분투 설치 iso 파일을 내려 받아 기본 EFI boot loader 복사

참고로 32-bit PC일 지라도 64-bit PC에서도 부팅할 수 있도록 아래의 과정을 해 두자. 그리고, 이 과정에서 현재 버전을 사용하지만, 한번만 해두면 이후엔 최신 버전으로 교체할 필요는 없다.

$ sudo mkdir /tmp/mnt
$ sudo mount -o loop ~/Downloads/ubuntu-14.04.1-desktop-amd64.iso /tmp/mnt

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

3. Ubuntu 사이트에서 내려 받은 우분투 설치 iso 파일들을 3번 ext2 파티션에 복사

여기서는 실제 설치할 우분투 버전의 iso를 사용한다. 즉, 32-bit PC 라면 32-bit iso 파일을 사용해야 한다. iso 파일들은 USB 3번 파티션의 /boot-isos 폴더에 복사함에 유의한다. 또한, USB 용량이 넉넉하다면 여러 개의 iso 파일을 복사해서 나중에 선택해서 부팅 가능하다. 우분투 설치 iso 용량이 늘어나는 추세이고 USB에 복사하는 것이라 시간이 많이 걸린다.

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

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

4. USB의 grub.cfg 파일에 부팅 메뉴 생성

$ sudo umount /mnt
$ sudo mount /dev/sdb1 /mnt
$ sudo nano /mnt/boot/grub/grub.cfg

nano 등의 편집기를 이용해서 USB의 /boot/grub/grub.cfg 파일에 아래의 내용을 추가하되, 기존의 파일 내용은 모두 지우는 게 나중에 부팅시 혼란스럽지 않다. 아래의 내용 중에 중요한 것은, 위의 3번에서 지정한 USB의 파티션과 iso 파일명/파일 경로가 일치해야 한다는 점이다. 참고로, 64-bit의 경우 우분투 12.04.2 이후 UEFI를 지원하면서 iso 파일 내의 리눅스 커널명이 "vmlinuz.efi"가 되었다. 그 전에는 "vmlinuz"를 사용했었다.

menuentry "USB Ubuntu 64-bit" {
   set isofile="/boot-isos/ubuntu-14.04.1-desktop-amd64.iso"
   loopback loop (hd0,3)$isofile
   linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noprompt noeject
   initrd (loop)/casper/initrd.lz
}

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

5. BIOS 모드로 부팅된 PC에서 BIOS Grub(grub-pc) 설치

현재 PC가 BIOS 모드로 부팅한 것인지 EFI 모드로 부팅한 것인지 알 필요가 있다.

$ ls -CF /sys/firmware

실행 결과 efi/ 폴더가 없으면 BIOS 모드, efi/ 폴더가 보이면 EFI 모드로 부팅한 것이다. BIOS 모드로 우분투를 설치하면 grub-pc 패키지가 설치되고, EFI 모드로 설치하면 grub-efi 패키지가 설치 됨에 유의한다.

따라서, 현재 PC가 EFI 모드로 부팅했다면 BIOS Grub을 설치하기 위해서는 반드시 BIOS Grub이 설치된 PC가 필요하다. 즉, BIOS 모드로 부팅할 PC가 없다면 아래의 과정은 불필요하다. 참고로, Virtual Box로 우분투를 설치하면 기본적으로 BIOS 환경이 된다. EFI를 지원하는 PC에서 Virtual Box는 EFI 모드도 지원한다.

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


우분투 설치 USB의 활용

향후에 우분투 새 버전을 설치하고자 할 때에는 USB에 복사할 iso 파일명이 달라질 것이고, 이에 따라 USB의 grub.cfg 파일에서 iso 파일명을 수정해 주어야 한다. 즉, 위의 3번과 4번 과정만 반복하면 된다.

이제 이렇게 만들어진 우분투 설치 USB는 Mac을 포함한 아무 PC 에서나 우분투를 설치할 수 있다. 더구나, 우분투 설치 iso는 Live 기능이 있으므로 굳이 우분투를 설치하지 않아도 USB로 부팅해서 현재 우분투 버전이 내 PC H/W에서 잘 동작하는지 확인해 볼 수 있다. 또한, 이 USB를 이용하여 부팅이 안되는 PC를 복구하거나 Data를 백업 받을 수도 있다.

추가적으로, 이 글의 방법대로 만든 USB를 활용하면 1개의 USB로 우분투 설치는 물론이고, UEFI 모드의 Windows와 Mac OSX 설치까지 가능한 Triple-OS USB Installer도 만들 수 있다.