Saturday, March 3, 2012

Virtualbox : Kubuntu Guest OS on Mac OSX host - II. usb 인식과 공유

Virtualbox with Kubuntu Guest OS - II.


Operating System Environments

Main : Mac OSX SnowLeopard (10.6.8)

Sub- : Kubuntu Lucid-Lynx (10.04 LTS)  parallel with Windows 7 Ultimate K in Virtualbox

Server : Debian GNU/Linux lenny (5.0.8) or squeeze (6.0.2)

Mobile : iPod-touch 4G - iOS 5.0.1




Oracle VM VirtualBox는 GNU General Public License(GPL)의 가상화(virtualization) 솔루션이다.{다 GPL은 아니다!!} Innotek GmbH에서 개발했다가 Sun Microsystems에 인수, 2010년 1월 Sun이 Oracle에 인수되면서 현재(2012년 3월)는 Oracle Corperation 에서 개발하고 있다.

Wikipedia 설명보기


Oracle VM VirtualBox는 개인 사용자에게 무료로 배포되고 있으며, Windows, Linux, Mac OSX 등 많은 OS를 host로 지원하는 cross-platform이고 설치와 사용이 간단하다.


가상화(virtualization)가 무엇인가?

간단한 예로, 맥(host OS)을 쓰고 개인이 부득이하게 한국의 인터넷 뱅킹 업무를 써야 할 필요가 있을 때, 맥을 계속 쓰면서 Application으로 맥 내에서 윈도우(guest OS)를 부팅시켜 은행 업무를 하게 만들어 주는 기술이 바로 가상화(virtualization)이다. 이는 마치 윈도우에서 cd space 같은 것으로 진짜 CD가 아니라 PC 안의 .iso파일을 CD로 인식시키는 것과 유사, 하지만 이 경우는 CD가 아니라 OS 자체인 것이다.

Bootcamp를 이용하여 윈도우를 사용하는 것에 비해 장점은 1. 설치가 용이하고 2. 매번 껐다 켰다할 필요가 없다는 점이고, 단점으로는 아무래도 성능(performance)이 떨어지는 것으로 알려져 있다. 하지만 3D 게임 같은 것을 돌릴게 아니라면 큰 문제는 없다.


이번 Post의 내용은 아래와 같다.

  1. Oracle VM VirtualBox 로 Kubuntu Lucid-Lynx(10.4 LTS) 설치하기
  2. usb 인식시키기
  3. host OS인 Mac OSX 와 폴더 공유시키기



1. Oracle VM VirtualBox 로 Kubuntu Lucid-Lynx(10.4 LTS) 설치하기 는 전 Post에서 다루었다.

1. Oracle VM VirtualBox 로 Kubuntu Lucid-Lynx(10.4 LTS) 설치하기 보러가기


guest OS 설치 후 바로 usb도 인식하고, host OS와 폴더도 공유할 수 있으면 더 할 나위 없이 좋겠지만, 이를 위해서는 몇 가지 작업을 추가로 해주어야 한다.




2. usb 인식시키기


a) 1. Oracle VM VirtualBox 로 Kubuntu Lucid-Lynx(10.4 LTS) 설치에서 받아 두었던, Oracle VM VirtualBox Extension Pack을 Oracle VM VirtualBox로 실행한다.




b) VirtualBox를 열어, Settings -> Ports -> USB 에서 {Enable USB 2.0 (EHCI) Controller}를 체크하고 USB Device Filters를 하나 넣는다. 




이렇게 하고 guest OS를 실행시킨 후, usb를 실제로 꽂으면, 아래와 같이 guest OS인 kubuntu에서 바로 인식되는 것은 볼 수 있다.




주의할 점은 VirtualBox로 guest OS를 실행 중에서 꽂은 usb는 host OS에는 인식되지 않는다는 점이다.




3. host OS인 Mac OSX 와 폴더 공유시키기

Official Manual 보러가기

주의 : 여기서 guest OS는 특별한 언급이 없으면 kubuntu Lucid-Lynx 이다.


우선 guest OS에서 bash shell(terminal)을 열어 아래와 같이 입력한다.

$sudo apt-get install dkms

dkms package를  설치한 것이다.


그리고 VirtualBox 로 실행시킨 guest OS 창 맨~ 위를 보면, 사과 마크() 옆에 네번째 {Devices} 메뉴로 가보면, 맨아래 {Install Guest Additions…}를 클릭한다. 그러면 아래와 같이 뭔가가 guest OS에 mount 된다.




여기서 실행시켜야 될 것은 위 그림에 빨간 박스 친 VBoxLinuxAddtions.run 이란 이름의 script이다. 다시 guest OS에서 terminal을 열어 아래와 같이 입력해 mount된 곳으로 이동한다.

$cd /media/VBOXADDITIONS_4.1.8_75467

그리고 아래와 같이 입력하여 VBoxLinuxAddtions.run 을 실행시킨다.

$sudo sh VBoxLinuxAddtions.run


다시 사과 마크() 옆에 네번째 {Devices} 메뉴로 가서, {Shared Folders…}를 클릭해 아래 그림에 빨간 화살표가 가리키는 곳을 클릭하여,





새로 나오는 창에서 {Folder Path}에 host OS인 Mac OSX 에서 공유(sharing)하고 싶은 folder를 정하고, 그 아래 {Folder Name} 이름을 하나 적어 넣고, {Auto-mount}와 {Make Permanent}를 체크한다. 

참고) guest OS로 윈도우 7을 깔았다면, 여기까지만 하면 공유 폴더가 윈도우 7에서 그냥 보이고 바로 사용할 수 있다! 물론 여기까지 예처럼 뭔가 mount되지도 않고, {Install Guest Additions…}만 실행하면, 윈도우 7 안에서 "…을 실행하시겠습니까?" 따위의 메시지가 뜨고, yes 하면 바로 뭔가를 깐다. 그걸로 끝이다.




여기까지 하면 준비는 끝났다. 이제 guest OS인 kubuntu Lucid-Lynx에서 공유시켜 보자. 재미있게도 host OS(Mac OSX)와 guest OS(Kubuntu)와의 공유 과정은 host OS에서 지정한 folder를 guest OS에 virtualbox를 통해 mount 시키는 것이다.


a) 수동으로 mount 시키기

아래와 같이 guest OS에서 terminal을 열어 실행한다.

$sudo mount -t shared_folder_name /home/path_in_guestOS_kubuntu -o rw


여기서 "shared_folder_name" 는 바로 위의 그림에서 Folder Name: 에 적어 넣은 "test"에 해당하는 이름을 적어 넣는다. "/home/path_in_guestOS_kubuntu" 는 guest OS 에서 mount 하고 싶은 path를 적어 넣는다. 마지막 "-o rw" 는 mount의 option으로 mount 대상에 읽고 쓰기를 가능하게 만들어 주는 것이다. 이게 없으면 매번 chown/chmod로 permission을 설정해 주어야 한다.


이미지 파일 같은 간단한 파일로 제대로 공유가 되었는지를 확인하자!


b) guest OS를 실행 시킬 때 자동으로 mount 시키기

emacs와 같은 에디터로 적당한 이름의 파일(test_script.sh라 하자)을 하나 만들자. 그 안에 수동으로 mount 시키는 명령(sudo mount -t shared_folder_name /home/path_in_guestOS_kubuntu -o rw)을 그대로 적어 넣고 저장하자.


제대로 동작하는 지를 확인하기 위해, 간단히 guest OS를 재부팅시켜 (mount된 shared folder가 사라져 있을 것이다), 만든 파일(test_script.sh)을 실행시켜 보자.

$sudo sh test_script.sh


제대로 동작한다면, 이 파일(test_script.sh)을 /etc/init.d 로 이동(복사)하자.

$sudo cp test_script.sh /etc/init.d


그리고 아래 두 줄을 실행하자

$sudo chmod +x /etc/init.d/test_script.sh

$sudo update-rc.d test_script.sh defaults


에러 메세지가 하나 뜨는데 (debian 규격에 맞게 쓰여진 script가 아니라는…), 무시해도 좋다. 다시 guest OS를 재부팅해 보자. 저절로 mount 되어 있는 것을 볼 수 있을 것이다.


참고 사이트

No comments:

Post a Comment