Virtualbox는 리눅스 데스크탑을 사용한다면 싫어도 써야하는 물건입니다. 그 이유야 당연히 Windows환경을 요구하는 경우가 은근히 있기 때문이지요. Wine으로 해결이 가능한 부분도 많지만 Windows 시스템 그 자체를 원한다면 어쩔 수 없습니다. 보통 궁극의 해결책이라고 표현하지요.

 

특히 유용한 기능중 하나가 USB Passthrough 기능입니다. 리눅스를 통하지 않고 바로 USB장치를 가상머신에 연결하게 해서 Windows드라이버만 지원하는 장치를 돌아가게 하거나 직접 Windows에서 작업 가능하도록 짜인 장비를 연결하는데에 이용가능합니다.

 

2015년에는 VirtualBox에 주로 WindowsXP를 사용했다면 이후 2019년까지는 Windows7이 그리고 2020년 현재에는 주로 Windows10이 가상머신에 이용되고 있습니다. 그런데 USB3.0을 지원하지 않는 WindowsXP는 그렇다 치는데 Windows7에서 USB장치가 인식이 안 되는 경우가 왕왕 있습니다.

 

보통 VirtualBox에 USB장치를 연결하는건 이런식으로 연결할 것이다. 실수로 USB키보드나 마우스를 연결하지 않도록 하자. 지옥을 맛 볼 수 있다.

우선 확인해주셔야 할 것은 버전에 맞는 Extension Pack을 설치했는가 입니다.

https://www.virtualbox.org/wiki/Downloads

이곳에 가셔서 VirtualBox Extension Pack을 찾아 다운로드 받아주셔야 합니다.

 

영어를 몰라도 대충 알아서 찾아 가도록 하자

이것을 설치해 주시면 USB장치를 지원이 할 수 있게 됩니다.

 

그 다음은 리눅스에서의 권한 문제입니다.

리눅스에서 사용자가 VirtualBox사용 권한을 얻어야 하는데 이를 설정하지 않으면 작동하지 않습니다.

그건 다음 링크에서 확인이 가능합니다.

https://moordev.tistory.com/205

 

VirtualBox사용시 USB 인식이 안 될 때

VirtualBox는 리눅스에서 다들 이용하고 계실 겁니다. 윈도 프로그램을 실행할 때 가장 마지막으로 시도하는 방법으로 다들 이용하고 계시지요. 그런데 VirtualBox를 쓸 때 USB가 인식이 안 되는 경우��

moordev.tistory.com

그런데도!!! 아직도!!! 인식이 안 된다면!!!!

 

그렇다면 한번 USB설정을 살펴봅시다.

우선 Windows장치의 설정으로 들어갑니다.

그리고 USB를 보시면 USB 2.0(EHCI) 컨트롤러 혹은 USB 3.0(xHCI)컨트롤러 둘 중 하나가 체크되어 있을 것입니다. 만약 1.1이라면 당장 바꾸세요. 지옥의 속도를 경험하게 됩니다.

 

여기서 한가지 알 수 있는 것은 USB 1.1에서는 인식이 되는데 2.0이상일 때 인식이 안 되거나 혹은 2.0은 되는데 3.0이 안 되는 경우가 있다는 것입니다.

 

이 것은 Windows 문제입니다. Chipset Driver나 USB드라이버가 설치되어 있지 않아서 벌어진 일입니다. 

Windows를 설치한 다음 우리는 보통 업데이트를 바로 돌려버리거나 알아서 업데이트를 하는데 이때 장치 드라이버가 자동으로 설치됩니다. 그런데 VirtualBox에서는 장치인식문제로 드라이버가 자동으로 설치되지 않는것입니다.

 

그렇다면 수동으로 설치하면 된다는 의미겠지요.

https://downloadcenter.intel.com/download/22824/Intel-USB-3-0-eXtensible-Host-Controller-Driver-for-Intel-8-9-100-Series-and-Intel-C220-C610-Chipset-Family

 

Download Intel® USB 3.0 eXtensible Host Controller Driver for Intel® 8/9/100 Series and Intel® C220/C610 Chipset Family

Intel® USB 3.0 eXtensible Host Controller Driver for Intel® 8/9/100 Series and Intel® C220/C610 Chipset Family

downloadcenter.intel.com

여기 있는 이 드라이버를 설치하거나

 

https://downloadcenter.intel.com/download/22904/Intel-USB-3-0-eXtensible-Host-Controller-driver-for-S1200V3RP?wapkw=USB

 

Download Intel® USB 3.0 eXtensible Host Controller driver for S1200V3RP

Intel® USB 3.0 eXtensible Host Controller driver for S1200V3RP

downloadcenter.intel.com

이 드라이버를 설치하면 됩니다.

 

만약 Windows10환경에서 안 된다면 그냥 Windows Update에서 한번 싸아악 돌리면 해결됩니다!

,

VirtualBox는 리눅스에서 다들 이용하고 계실 겁니다. 윈도 프로그램을 실행할 때 가장 마지막으로 시도하는 방법으로 다들 이용하고 계시지요.


그런데 VirtualBox를 쓸 때 USB가 인식이 안 되는 경우가 있습니다. 이럴 때 확인하는 방법을 알려드리겠습니다.


VirtualBox에서 USB장치가 인식되지 않으면 이렇게 나온다. (USB장치를 하나도 안 쓰는 경우는 없을테니...)



1. 확장을 설치했는가?


VirtualBox의 확장은 오픈소스로 풀리지 않은 부분을 활성화 하기 위한 패키지입니다.

보통 처음 VirtualBox를 설치하신 분들은 가끔 잊어버리기도 하는데 확장이 설치가 안 되면 USB를 인식을 하되 2.0까지만 인식을 합니다. 3.0장치는 2.0으로 잡히거나 안 잡히게 됩니다.


https://www.virtualbox.org/wiki/Downloads




해당 위치의 파일을 다운로드 받은 다음 열기를 눌러서 설치를 해주시면 됩니다.


파일-환경설정-확장 에서 방금 추가한 확장이 체크되어 있는지 확인해보시기 바랍니다.




2. 계정 권한 설정


정말 많은 분들이 잊어버린 항목입니다. 이상하게 자동으로 해줄 것 같은데 은근히 수동입니다.


우분투의 경우 계정 및 그룹 설정에서 VirtualBox 사용 권한을 체크해주셔야 VirtualBox의 모든 기능을 이용할 수 있습니다.




리눅스 민트 혹은 우분투에서 환경설정에 들어가봅시다.


Users and Groups 혹은 사용자 계정에 들어가면 아래와 같은 모양의 창이 뜹니다. 여기서 고급설정




그리고 VirtualBox 가상화 솔루션 사용에 체크를 해주시면 됩니다.



아 시스템을 껐다가 다시 켜주시는 것도 잊지 마시고요.


시스템을 껐다가 켜면 아무 문제없이 USB의 인식이 다시 돌아올겁니다.

,

이 이야기는 VMware를 유용하게 쓰시고 계실 모든 분들에게 통용될 이야기입니다. 우분투에서만 이용되는 이야기는 아닙니다. CPU성능이 더럽게 좋아서 소프트웨어 렌더링이 훨씬 더 퍼포먼스가 좋다던지(Intel, S3) 공식드라이버가 워낙 거지같아서 오픈소스프로젝트의 드라이버를 사용하시는(AMD) 모든 분들에게 다 먹히는 이야기이니 유용하게 쓰시기 바랍니다. Windows에서는 후자의 경우가 없으므로 별로 쓸 일은 없겠지만 간혹 베타드라이버에서 VMware가 가속이 안된다고 한 경우가 있으니 Windows 사용자분들도 써먹을 수 있습니다.


VMware를 쓸 때 3D 가속을 하는 이유는 무엇일까요? 보통 VirtualBox에서는 일단 Direct Rendering이 가능하다는 가정하에 3D 가속 설정만 하면 그냥 가속 모드로 들어가는 것과는 다르게 VMware는 오픈소스 드라이버이거나 최신의 드라이버의 경우 3D 가속이 검증이 안 되서 그런 것인지 3D가속을 꺼버립니다.



호스트에서 3D 가속이 안 된다고? 리눅스에서 AMD쓴다고 무시하냐?


VMware가 아무래도 기업용으로 자주 쓰이다 보니 업데이트가 늦는 편이고, 안정성을 추구하다보니 드라이버에 대해서도 상당히 보수적인 입장을 취합니다. 하지만, VMware가 아무리 보수적이라고 해도 방법이 없지는 않습니다. 환경설정에는 안 나와있지만 수동으로 설정을 하면 어떤 드라이버를 쓴다고 해도 3D 가속을 쓸 수 있습니다.


VMware의 가상머신이 있는 곳(~/vmware)에서 vmx파일을 텍스트 에디터로 열면 여러분들이 설정한 설정 값들이 텍스트형태로 나와 있음을 알 수 있습니다. 그 중 제일 마지막에 다음과 같은 한줄만 추가하면 됩니다.



mks.gl.allowBlacklistedDrivers = "TRUE"


이 한줄만 추가해주시면 이제 오픈소스드라이버를 쓰든, 베타드라이버를 쓰든 아니면 소프트렌더링을 쓰든(...) 3D 가속을 가상머신에서 하는 것을 보실 수 있습니다.

,

가상화라는 개념은 사실 예전부터 있었습니다. 하나의 컴퓨터를 여러대의 컴퓨터로 활용하는 것은 워크스테이션시절로 거슬러 올라갈 정도로 상당히 오래된 개념입니다. 하지만, 지금과 같은 거의 완벽한 가상화는 아니었고 그냥 이미 세팅이 완료된 시스템에 User가 일정 요금을 내거나 워크스테이션 관리자의 허락을 받고 사용하는 방식이었습니다. (윈도를 처음부터 쓰신 분들은 이해가 잘 안 되실 겁니다. 윈도는 사용자 개념이 워크스테이션에서의 그것과는 거리가 멀었기 때문입니다. NT계열 등장 이후에나 Unix의 개념과 비슷해졌습니다.)


즉, 워크스테이션에서는 사용자가 로그온을 하면 홈폴더(/home/사용자이름)에 한해서지만 내 컴퓨터처럼 사용할 수 있었습니다. 이 홈폴더가 샌드박스화 되면 일종의 가상화라고 합니다. 하지만 이는 이번에 이야기할 하드웨어 가상화하고는 이야기가 다르지요. 그 시절의 가상화는 소프트 가상화로 미리 설치된 OS에 설치된 프로그램만 사용할 수 있었던 시절입니다. 이 당시에 컴퓨터를 쓰고 싶은 사람들이 원하는 프로그램이 있으면 관리자에게 요청해야 했습니다. 정확히 하면 내 컴퓨터처럼 완벽히 사용할 수는 없었습니다.


하지만, 때는 흐르고 흘러서 1인 1PC시대가 도래했습니다. 옛날처럼 하나의 컴퓨터에 여러사람들이 붙어서 사용할 일이 없어졌고, 내 컴퓨터는 나만이 사용하는 것으로 바뀌었습니다. 그로인해 워크스테이션이란 개념은 점점 사라지게 되었습니다. 그도 그럴것이 개인용 PC의 성능이 워크스테이션을 뛰어넘기 시작하면서 옛날의 방식을 쓸 이유가 없어졌습니다. 이로써 한동안 가상화라는 개념은 사라지는 듯 했습니다. 하지만 아이러니하게도 개인용 컴퓨터에서 가상화라는 형식이 등장하게 될 줄은 몰랐을 겁니다.


그리고 바야흐로 90년대~00년대에 Apple사의 OSX가 등장하면서 PowerPC계열의 컴퓨터가 등장하게 됩니다. 당시에는 멀티미디어가 대세였는데 PowerPC는 이 방면에서 정말 강력한 컴퓨터였습니다. 게다가 Apple의 컴퓨터로써 이 PowerPC기반의 Mac은 기존 MacOS9를 쓰던 사람에게 큰 충격을 준 컴퓨터였습니다. 하지만 이 당시에도 PC는 Intel+Windows가 이미 잠식한 상황이었고 쓸만한 프로그램은 다 여기에 있었습니다. PowerPC를 쓰는 사람에게 이는 너무 아쉬운 점이었습니다.

"Mac에서 intel+Windows용 프로그램을 쓸 수 있으면 참 좋을텐데..." 이 작은 소원(?)은 VirtualPC라는 프로그램이 등장하면서 해결됩니다. 이 당시는 가상화라기보다는 intel칩을 흉내내는 에뮬레이터에 가까웠습니다. 하지만 VirtualPC가 Windows용으로 포팅이 되면서 기존 PC사용자에게 입소문을 타게 되었고, 가상화는 User모드 가상화에서 하드웨어 가상화라는 새로운 모습으로 격변하게 됩니다. 즉, 기존에는 이미 설치된 OS 환경에서만 내 맘대로 주무를 수 있었다면, 이제는 한정된 하드웨어이기는 하지만, OS도 마음대로 설치하고 프로그램도 마음대로 설치할 수 있는 새로운 가상PC가 만들어진 것입니다. 사실 혁명과도 같은 물건이었는데, Microsoft가 인수를 하면서 이 혁명과도 같은 물건은 한낱 후발 주자인 VMware에게 밀려버립니다.


하지만 모두 알고 계시듯이 VirtualPC나 VMware만 하드웨어 가상화지원을 하는 것은 아니었습니다. 그 이전에 리눅스에서 Xen이란 놈이 커널에 한해서지만 리눅스 가상화(반소프트 반 하드웨어 가상화)를 지원했고, Bochs와 Qemu라는 오픈소스 가상화 프로그램도 있었습니다. VirtualPC가 Microsoft에게 인수된 이후 CPU가상화 기능이 사라진(사라진 것은 아니고 PPC에서 intel칩을 에뮬레이션 해주지 못하게 되었습니다. 가상OS마저 Windows만 지원된것은 덤 입니다.)대에 비해 이 프로그램들은 CPU도 흉내를 내주어서 Arm이나 MIPS(!!)에서 Pentium을 흉내내준다던지 하는 누가 보면 신기한 일들도 했습니다.(스마트폰에서 Windows를 구동하는 영상의 대부분은 바로 저 Qemu나 Bochs를 이용한 것입니다.)하지만 성능은 상용프로그램에 비하면 좀 모자르기도 했고, VMware나 VirtualPC에 비해 잘 알려지지도 못했습니다.


현재 가상화의 선두주자는 누가 뭐라고 해도 VMware입니다. VMware하면 VMware Workstation만 생각하시는 분이 있을텐데 VMware의 주력제품은 VirtualBox나 VirtualPC와 같은 영역과는 차원을 달리하는 ESX입니다. 별건 아니고 그냥 VMware 가상화를 사용할 수 있는 환경을 갖춘 리눅스입니다. 하지만 이를 이용해서 옛날 워크스테이션 서비스 하는 것처럼 가상의 하드웨어 세트를 계정당 하나씩 제공 가능하게 해줍니다. 즉, 사라진줄 알았던 워크스테이션이 다시 돌아온 것이지요. 다만 옛날에는 다같이 쓰는 컴퓨터에 한 OS를 나눠 썼다면 지금은 완전히 가상화된 컴퓨터를 하나 덜렁 내주는 셈입니다. 이를 잘 쓴 서비스가아마존의 AWS가 아닐까 합니다. VMware사의 솔루션을 썼을지 아니면 자체 개발한 솔루션을 썼을지는 잘 모르겠지만 상당히 VMware ESX의 원하는 방향과 AWS는 비슷합니다. 가상화된 하드웨어에 미리 준비된 디스크이미지를 부팅하여 사용자에게 서비스한다... 이를 여러대 만들어서 클러스터화 하면 실제 기기는 몇대 안 되더라도 서버가 여러대 있는 듯한 효과를 만들어내게 됩니다. 워크스테이션의 강력함이 이렇게 쓰이는 셈입니다.


얼마전에 보니 VirtualPC를 말아먹은 Microsoft는 Hyper-V란 놈을 내놓고 VMware ESX를 노리고 있더군요. 실제 성능을 보아하니 VMware보다 더 좋기는 하던데 아마도 Windows만 지원하다보니 최적화가 되어서 그럴 것이라는 생각이 듭니다. 공짜라고 좋다고 쓰시는 분이 있던데 그거 공짜 아닙니다. Windows의 Pro버전이 비싼 이유가 다 거기 있는 것입니다. 게다가 Windows는 Unix만큼의 안정성을 갖추지 못했습니다. (단 유닉스에 비해 리눅스는 좀 불안정한 감이 있습니다. 안정성을 추구하는 Debian리눅스하고 비교해도 그렇습니다.)그런데 Hyper-V가 오직 Windows만 지원되다 보니 메리트가 상당히 떨어집니다. 아무래도 Hyper-V에 대한 글을 볼때마다 씁쓸한 생각이 드는 것은 어쩔 수 없군요. VirtualPC시절만 해도 상당히 좋은 프로그램이었고 발전가능성이 무궁무진했었는데 거대기업에 먹히고 나서.....


그러고보니 VMware나 VirtualPC(현재 Hyper-V)에 맞서는 오픈소스 종족이 남아 있습니다. Oracle에서 지원하는 VirtualBox입니다. 이것은 innotek시절부터 성능이 마음이 들어서 상당히 많은 사람들이 사용하고 있습니다. innotek이 Sun사에 인수되면서 성능이 안정화 되었고 Oracle에 Sun사가 인수되면서 잠시 불안해 했었지만 Oracle이 별 터치를 안 해주면서(?)지금은 GPU가상화도 그럭저럭 해주는 물건이 되었습니다. 문제는 VMware에 비하면 부족한 디스크I/O입니다만, 이는 시간이 지나 하드웨어 성능이 무섭도록 발전하면 격차가 알아서 좁아질 운명입니다. 다만, Oracle은 VMware같이 ESX같은 솔루션을 준비할 생각이 없는 것 같습니다. 하지만, 어쨌건 가상화는 가상화, 그것도 VMware에서 사용하는 것과 비슷한 하드웨어 가상화 입니다. 좀 설정만 해주고 http등의 알려진 프로토콜로 묶어주면 ESX못지않은 시스템을 갖출 수는 있습니다. 다만, 상당히 설정이 귀찮고 ESX에 비해 성능이 영 좋지 못하다는 것이 문제이기는 합니다.


지금 현재 가상화 대결의 구도는 VMware vs VirtualBox (vs Hyper-V - 일부에만 해당 Linux/Unix는 지원이 안 되므로)입니다. 하지만 Arm칩이 여기저기 쓰이는 요즘 Qemu나 Bochs도 무시 못합니다. 가상화는 아직 발전 중이고 워크스테이션은 다시 세상의 대세가 될 수 있을까요? 그 것은 조금더 상황을 봐야 할 듯 합니다.

,