사이드바 영역으로 건너뛰기

게시물에서 찾기2008/07

1개의 게시물을 찾았습니다.

  1. 2008/07/18
    Ubuntu 8.04 Server에서 VirtualBox 설치하고 USB 사용하기? 아니 삽질기!
    종이한장

Ubuntu 8.04 Server에서 VirtualBox 설치하고 USB 사용하기? 아니 삽질기!

<< 변경이력 >>
2008. 7. 18. : 처음 작성


---------------
  무던히도 더운 여름날 어떤 까닭에서인지 잘 쓰던 시스템이 언제부턴가 작은 에러 창을 내 보인다.  시작할 때만 생기는 작은 문제라 급한 다른 일에 밀려 우선순위를 뒤로 두고 있었는데 날이 더워서인지 갑자기 짜증이.....  결국 긴 시간 들여 시스템을 갈아 엎었다.  아! 에러창 보다는 자그마치 4GiB 메모리를 장착하고도 3.4GiB 정도 밖에 사용하지 못하고 있는 현실이 더 짜증 났던 것 같다.

  하여간, 이런 이유로 시스템을 갈아 엎기로 결정했고, 무엇보다 4GiB 메모리를 온전하게 사용하기 위한 목적이기에 선택은 몇 가지가 있었는데, 내가 좋아하는 Kubuntu 환경을 사용해야 했고,  갈아엎는 시간을 최소화 해야했기에 커널 재컴파일 같은 일은 하지 않기로 했다. 또한, 주 용도가 32비트 어플리케이션 개발이기에 아직까지 한 번도 사용하지 않은 64bit 판은 32bit 판에 비해 우선순위가 밀렸다.  그래서 내린 결론은 이랬다.  아! 그러나... 시스템을 갈아엎는다는 것은 생각한 시간보다 더 잡아 먹는다는 경험상의 진리를 다시 한 번 느껴야 했다.

  1) Kubuntu 8.04 Alternative 32bit 판
  이럴줄은 몰랐다. 분명 7.10판을 사용하는 Ubuntu Server 32bit 판에서는 4GiB 메모리를 제대로 인식하는 것을 확인했음에도, Kubuntu Desktop은 몰라도 Alternative 판은 Ubuntu Server 판에서 사용하는 커널과 비슷할 줄 알았다.  혹시라도 다른 언급이 있을 줄 알고 미리 문서를 대충 훑어보긴 했으나 별다른 소리가 없길래 ....  결국 1)번 선택은 포기하고 2)번으로...

  2) Kubuntu 8.04 Alternative 64bit 판
  걱정이 많았다. 아직까지 한 번도 써 본 적이 없기 때문에 어떤 문제가 발생할지 불안했다.  단 한가지 4GiB 메모리는 제대로 쓸 수 있다는 점만 확신하고 시도했다.  그러나,  설치부터 문제가 발생했는데, 웹에서 흔히 보이는 커널 패러미터 문제였다.  두 가지 정도 해결책이 있다길래 패러미터를 고쳐서 해보았지만 불행인지 다행인지 해결되지 않는다.  차라리, 잘 된 일... 과감히 2)번 포기하고 3)번으로.... (내게는 이걸 해결해야만 할 이유도 없었고, 무엇보다 그럴 시간이 없었다.)

  3) Ubuntu 8.04 Server 32bit 판
  사실 여기까지는 그다지 시간이 걸리지 않았다. 1)번이야 시스템 설치 한 번 한게 다니까.. 2)번은 과감히 포기했기에...  마지막, 3)번... 이 단계에서는 예기치 못한 문제가 기다리고 있었는데 다름아닌 제목에 있던 VirtualBox에서의 USB 사용 문제였다.  설치도 깔끔했고, 4GiB 메모리도 제대로 인식하고, Kubuntu-Desktop 환경도 설정했다. 

  흠... 덥다.
  대충 가자.

  쿠분투 데스크 탑 ... KDE4 환경 멋있긴 하지만 웬지 무겁다.
  우분투 데스크 탑 ... 그놈환경... KDE4에 비해 밋밋한듯 하고 특히 세션관리가 쿠분투에 비해 맘에 들지 않는다. 그러나 낙점!


  VirtualBox 설치하기

  이 설명은 인터넷에 많이 널려있다.  영문판이긴 하지만, 

Howto Install VirtualBox 1.6 in Ubuntu 8.04(Hardy Heron) including USB Support

  이 좋다.  그림까지 곁들여 있으니 나 같은 사람에게도 굿~!
  초 간단 요약하면, 다운로드 받은 파일을 설치하고 커널 모듈을 컴파일 해야하기 때문에 미리 헤더를 설치해야 한다. 명령 순서를 정리하면....
  1) apt-get install virtualbox_1.6.2-31466_Ubuntu_hardy_i386.deb
  2) apt-get install kernel-devel
  3) apt-get install build-essential linux-headers-`uname -r`

  VirtualBox에서 USB 장치 사용하기


  VirtualBox 1.5.6 OSE 설치 ... 어라? USB가 지원 안 되네? 여기저기 이래저래 하면 된다고 나오는데 나는 다 안 된다. 과감히 포기하고 Sun xVM (VirtualBox 1.6.2) 설치.... 아싸! 관리화면에 USB 항목이 분명히 눈에 띈다.  이젠 되는구나 싶었다. 근데? USB 항목을 클릭하면, 기대와 다르게 Could not load the Host USB Proxy Service (VERR_FILE_NOT_FOUND). The service might be not installed on the host computer.  ???

USB 항목을 설치했을 때 나오는 에러

이 창이 뜬다면 위에 링크 걸어 놓은 문서  Enable USB Support in Virtualbox 부분을 보시라!!!
요약할 것도 없지만 요약하면, /etc/init.d/mountdevsubfs.sh 스크립트에서, "Magic"을 검색해서 나오는 부분 4줄이 코멘트 처리되어 있는 것을, 열어주면 된다.

이렇게 되어 있는 것을,
    #
    # Magic to make /proc/bus/usb work
    #
    #mkdir -p /dev/bus/usb/.usbfs
    #domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
    #ln -s .usbfs/devices /dev/bus/usb/devices
    #mount --rbind /dev/bus/usb /proc/bus/usb

이렇게 고쳐주란 얘기
    #
    # Magic to make /proc/bus/usb work
    #
    mkdir -p /dev/bus/usb/.usbfs
    domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
    ln -s .usbfs/devices /dev/bus/usb/devices
    mount --rbind /dev/bus/usb /proc/bus/usb


  자! 위 내용이 제대로 적용되고 리부팅 되었다면, 에러창 대신에 USB 설정화면을 볼 수 있다.


왼쪽 아래 도움말 단추를 누르면 설명이 나오는데, 안타깝게도 영문이다. 읽어봐도 무슨 소린지 모르겠다. 허나, USB 장치를 사용하는데 아무런 지장은 없다.  (혹시 필터가 어떤 기능인지 아시는 분 설명좀...)


  사실 여기까지는 "Ubuntu 8.04 VirtualBox USB"로 검색하면 나오는 문서에 모두 나오는 얘기다. 여기까지 하면 게스트 OS에서 두둥~하는 소리와 함께 USB 장치를 사용할 줄 알았다. 내 기억으로도 1.4.x 버전까지는 별 문제 없이 사용 할 수 있었다. 게스트 OS를 부팅하면 뭔가 되는 것 처럼 느껴지긴 했다. USB 장치를 꽂은 상태로 게스트 OS를 부팅하면 주변장치 상태창의 USB 버튼에 흐릿하긴 하지만 USB 장치 리스트가 보였으니까... 그러나 "흐릿한 불안감"은 역시나~!  메뉴에서 "장치 > USB 장치"를 선택해도 USB 장치 리스트가 보이긴 하지만, 선택할 수가 없다!

 

 


상태창도 마찬가지!



이런 저런 시도를 해보았으나, 모두 허사로 돌아갔다. 심지어는, 그 동안 들인 시간을 포기하고, VMware 를 선택할까 생각했으니까!

그러다가 결국 방법을 찾아냈는데, 위에 링크한 영문 링크에서다. 그 문서 본문에도 나오지 않는 얘기를 댓글에서 찾아냈으니, 모래알에서 바늘 찾는것 만큼이나 어려운 댓글에서 진주를 찾아낸 격!


  1. Edmund Says:

    You can try these commands or even add them to your startup script (e.g. in Ubuntu /etc/rc.local)
    1) VBOX=$(grep vboxusers /etc/group | sed ’s/vboxusers:x:(.*):.*/1/’)
    2) sudo mount -t usbfs -o devgid=$VBOX,devmode=664,nodev,noexec,nosuid none /proc/bus/usb

(Copy & Paste를 했는데, 앞에 번호가 이상하게 딸려오네... 원래는 4번 댓글임)
수 정한 부분은 1)번 라인 sed 명령의 홑따옴표를 쌍따옴표로 바꿔줬다. 자세히 살펴보면 검색에서 걸리는 문서에 간혹가다 보이는 /etc/fstab에 추가하라는 항목과 비슷하다. 결국, 그 부분을 애써 무시한 탓이었을까? 가능하다면 배포본 자체의 시스템 파일은 건들이지 않으려고 하다보니 생긴 일일 수도 있겠다. 하여간, 이 부분을 실행하니 게스트 OS에서 USB 장치를 제대로 인식한다!  아~! 정말이지.....

 


  결국, fstab 파일을 수정하지 않아서 생긴 삽질이었다.  /etc/fstab 파일에 딱 한줄 추가했을 뿐인데....

none /proc/bus/usb usbfs devgid=124,devmode=664 0 0


여기서 "devgid=124"는 vboxusers 그룹번호다. /etc/group 파일에서 확인할 수 있다.

vboxusers:x:124:hts



  다 쓰고나지 허망하다. 결국, 다른 블로그에 올라온 글과 차이가 없다. 차이가 있다면 안 해도 되었을 삽질이란 점.  날도 덥고 할 일도 많은데, 이 무슨 지랄인가 말이다. 아! 한 가지! 상 당히 많은 블로그에서 공통으로 얘기하고 있는 부분이 /etc/udev/rules.d/40-permissions.rules 파일 내용에 GROUP=vboxusers 항목을 추가하라는 말이 있는데, 내 경우에는 이 부분은 안 해 줬다. /etc/fstab 파일에 한 줄 추가하기 전 까지는 이 부분을 추가해 줬지만, 해줘도 별 무소용! 안 해 줘도 되는 건 과감히 안 해 주는 편이 좋다.


  별 특징없는 글을 마무리해야겠다. ㅠㅡ;

  우분투 8.04 서버 32비트 배포판에서 VirtualBox 를 설치하고, USB 장치를 사용하려면,

  1) OSE 판 말고, www.virtualbox.com에서 VirtualBox 1.6.2 판을 설치하라. (커널 모듈을 추가해야 하기 때문에, 커널 헤더를 설치해야 한다.)

  2) /etc/init.d/mountdevsubfs.sh 스크립트를 수정하라.

  3) /etc/fstab 파일에 한 줄 추가하라.


진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크