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의 인식이 다시 돌아올겁니다.

,

hwp를 싫어하신다면 어쩔 수 없지만 또 그렇다고 하기엔 너무 편리하게 잘 만들어서 참 계륵인 그 물건 한글2008입니다.


사실 한글2008은 지금은 구하기 어려운 아시아눅스 데스크탑에 맞추어서 만들어진 물건이기 때문에 우분투에서 이를 설치하고 실행하기엔 너무 어려웠습니다. 구글검색을 해보면 rpm으로 만들어진 한글2008을 어떻게든 설치하려고 우분투가 나올 때마다 삽질에 삽질을 연속하는 것을 볼 수 있습니다. 사실 라이브러리만 잘 맞춰주면 되는 것이라서 그렇게 어렵다고 보지는 않지만 10년이 지나가는 요즘에는 호환성이 심각해져서 설치해야 하는 라이브러리가 부쩍 늘었습니다. 저 역시 16.04에 한글2008을 설치하기 위해서 엄청난 삽질을 동원했습니다.


8.04시절에는 3개만 링크 걸면 그만이었던 것이 10.04에는 5개로 늘어나고 이후에는 줄줄이...


이러고 나니 너무 귀찮더군요. 차라리 구버전 우분투나 아시아눅스를 설치한 다음 한글2008을 사용하는 것이 더 낫겠다는 생각이 들었습니다. 그렇다고 이 시점에서 10년전 배포판을 설치하는 것은 무리입니다. 하지만 Docker를 사용한다면 이야기는 달라집니다.




사실 도커가 많이 쓰이는 곳은 서버프로그램으로 서버마다 PHP버전과 MySQL등의 버전 혹은 경로가 다르다는 문제가 생기거나 배포판마다 조금씩 다르기도 하므로 시스템부터 컨테이너식으로 서버를 가상화하는 것에 가까운 물건입니다. 반가상화이기 때문에 성능 저하는 거의 없고 서버 시스템이 고대로 컨테이너화 되기 때문에 시스템 구축 문제로 머리 싸맬일이 없습니다.


즉, 우분투 구버전 혹은 아시아눅스 데스크탑을 도커에 이미지화 해서 올린다음 필요할 때마다 한글2008을 설치한 컨테이너를 올리게 되면 우분투 버전 올라갈때마다 삽질을 줄일 수 있게 되는 겁니다!!!!!!


아시아눅스의 Docker베이스가 있기는한데 아시아눅스 데스크탑이 아닌 서버버전이라 이쪽은 아니라는 생각이 들었습니다. 그래서 우분투 10.04를 기반으로 하기로 했습니다. 8.04에서는 느려서 못 써먹었던 것으로 기억하거든요.


제일 중요한 Dockerfile과 한글2008(평가판) 및 라이브러리는 아래 링크에서 받으실 수 있습니다. (MEGA이용 구글 드라이브 추후 추가 예정)


아래 링크에서 브라우저를 통해 다운로드를 누르면 된다.




https://mega.nz/#!uFMDHKxT!wSaTs6M3cp-rM-0xZkScw9RD7d2HaRbpd8o7mB-Q8ik


(Mega를 처음 쓰시는 분들은 브라우저를 통해 다운로드 받기를 누르시면 편합니다.)




우선은 Docker를 설치해야 합니다. 우분투에서 Docker는 두가지 방법으로 설치할 수 있습니다.


1. 우분투 공식 저장소를 이용

sudo apt-get install docker.io

sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker


2. Docker 저장소를 이용

https://docs.docker.com/engine/installation/linux/ubuntu/


여기를 보시면 우분투에서 어떻게 설치하는지 나오는데 순서는 다음과 같습니다. 이쪽이 버전도 높고 정리가 잘 되어있다는 느낌이라서 이쪽을 추천합니다.


sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"


그냥 이걸 쭉 긁어다가 터미널에 착 얹어 주시면 되겠습니다.


그리고


sudo apt-get update

sudo apt-get install docker-ce


Docker는 docker-ce와 docker-ee가 있는데 ce는 Comunity Edition(개인용)이란 의미고 ee는 Enterprise Edition으로 대규모 사업자 용입니다. 당연히 우린 CE를 쓰는게 맞겠지요.


위의 링크파일의 압축을 푸시면 아래 스크린샷 같은 파일들이 튀어나오게 됩니다.


뭔가 좀 쓸데없이 많아 보이지만 한글2008평가판 deb과 라이브러리 묶음과 호환성패치 일부와 도커 이미지 생성을 위한Dockerfile이다.

정말 쓸데없이 많지만 다 필요합니다. 여기서 제일 중요한 것은 Dockerfile과 start.sh입니다.


Dockerfile은 여기있는 파일들을 이용해서 우분투 10.04 기반의 한글2008이 설치된 이미지를 만들고 start.sh는 만들어진 Docker이미지를 이용해서 한글2008을 실행하는 역할을 합니다.


그렇다면 여기서 도커이미지를 만들어야겠지요.


압축을 푼곳에서 터미널을 이용합니다.


cd {압축푼곳}

sudo docker build ./ -t hwp7


도커 명령어 일부를 볼 수 있는데 build는 Dockerfile이란 파일을 이용해서 이미지를 만들라는 의미고 ./는 현재 폴더를 -t hwp7은 이미지 이름을 hwp7으로 하라고 한겁니다.


시간이 꽤 걸릴 겁니다. 우분투 10.04 베이스 파일을 Dockerhub에서 받아오고 한글2008 DEB을 설치하고 old-release.ubuntu.com(우분투 구버전 저장소)에서 필요한 라이브러리를 받아와야 하기 때문에 그렇습니다.

중간에 오류가 없으면 아무 문제없이 진행이 되었을 겁니다.


다 되었으면 start.sh 파일을 실행해봅시다.



여기서 터미널에서 실행을 누르셔야 합니다. 왜냐하면 sudo명령을 요구하기 때문에 터미널에서 실행후 sudo 패스워드를 입력해야 합니다.


이것이 마음에 안 드시면 Docker를 유저 권한으로 할 수 있게 미리 그룹에 넣으시고 start.sh 파일 제일 앞의 sudo를 지워주시면 됩니다. (하지만 관리자 권한으로 하는 것이 보안상 낫지요)


조금 기다리면 사용기간이 어쩌고 하는 메시지가 뜨는데 여기서 확인을 누르시면 한글2008이 실행이 됩니다.


시스템의 거의 왠만한 폰트는 사용할 수 있게 볼륨링크를 해놓았고 파일-불러오기-/home/hwp

에 들어가시면 호스트의 홈폴더접근이 가능합니다. 홈폴더 외에 접근을 할리는 없으니 이렇게만 해 놓았습니다.


/home/hwp 를 통해 내 홈폴더에 접근이 가능하다.

주의 사항으로는 이런저런 설정을 해 놓아봐야 설정 저장이 안 됩니다. 즉, 설치후 완전 기본 상태라는 것입니다. docker commit을 한번 하면 되긴하는데 이건... 나중에 자세히 보고 알려드리겠습니다.


참고로 프린트는 지원되지 않습니다. 한글2008이 죽어버리더군요. 아마도 cups관련 문제인 것으로 보입니다. 하지만 문제없지요. 왜냐하면 우리에겐 우분투용 한컴뷰어가 있잖아요!


한글2008은 어디까지나 구버전이므로 HWP의 편집이 필요한 경우에만 쓰고 문서보기나 프린트는 한컴뷰어로 때우시는 것을 추천합니다.


참고로 이건 Docker를 이용한 것이므로 Arch든 CentOS든 RHEL이든 Debian이든 상관없이 Docker만 설치하면 한글2008 구동이 된다는 것을 의미합니다. 참 편하죠?


데스크탑의 정리가 필요하다면 start.sh 파일만 잘 복사해뒀다가 써도 좋습니다. 일단 이미지 만들어진 다음에는 start.sh파일 외에는 필요가 없거든요. 링크정도로 만들어서 바탕화면에 놓는다거나 하면 되겠지요.




P.S 생각보다 요구하는 라이브러리가 많이서 깜짝 놀랐습니다. Docker이미지가 1기가가 넘습니다. 이 정도일 줄은 몰랐는데...


P.S-2 커널 4.5 이상을 쓰실 때 Docker 설치가 어려우시면 aufs가 문제입니다. 4.5에선 aufs지원이 삭제되었다고 들었거든요. overlay라는 가상 파일 시스템을 쓴다고 합니다. 보통은 Docker가 알아서 한다고 설치중 오류가 난다면


/etc/docker/daemon.json


여기에 해당 파일을 만들어서



{
  "storage-driver": "overlay2"
}

요렇게 적으면 된다고 합니다.


물론 파일은 관리자 권한으로 만들어야겠지요.

,

가상화라는 개념은 사실 예전부터 있었습니다. 하나의 컴퓨터를 여러대의 컴퓨터로 활용하는 것은 워크스테이션시절로 거슬러 올라갈 정도로 상당히 오래된 개념입니다. 하지만, 지금과 같은 거의 완벽한 가상화는 아니었고 그냥 이미 세팅이 완료된 시스템에 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도 무시 못합니다. 가상화는 아직 발전 중이고 워크스테이션은 다시 세상의 대세가 될 수 있을까요? 그 것은 조금더 상황을 봐야 할 듯 합니다.

,