안녕하세요.
이번 포스팅에서는 QEMU-KVM 기반의 안드로이드 x86 가상머신을 생성하고 SPICE 클라이언트를 통해 외부에서 GUI 기반으로 가상머신에 접속이 가능하도록 진행해보고자 합니다.
먼저 안드로이드 x86은 기존의 ARM 기반으로 많이 사용되던 안드로이드를 Intel 기반으로 포팅한 버전으로 프로젝트 명이기도 합니다. CPU 칩 자체가 틀리기 때문에 호환이 안되던 안드로이드를 Intel에서도 올릴 수 있도록 하였습니다.
따라서 이번 포스팅에서는 Ubuntu 환경에서 QEMU-KVM을 통해 가상머신을 생성하고 SPICE 서버를 통해 외부에서 가상머신을 원격 GUI 환경으로 사용할 수 있도록 하겠습니다.
1. QEMU-KVM 기반의 안드로이드 x86 가상머신 생성(with SPICE)
가상머신을 생성하기 앞서 이러한 환경을 제공하기 위해 QEMU, KVM 그리고 가상머신의 라이프 사이클을 관리하는 virt-manager를 설치하겠습니다.
우선 아래의 명령어를 통해 패키지 리스트 및 패키지를 업데이트하도록 합니다.
root@android-kvm:~$ apt-get upgrade -y && apt-get upgrade -y
다음은 QEMU-KVM 사용에 필요한 관련 패키지를 설치하도록 합니다.
root@android-kvm:~# apt-get install qemu-kvm libvirt-bin virtinst bridge-utils cpu-checker
현 사용자(root)를 KVM에 추가해 줍니다.
root@android-kvm:~# adduser $USER kvm
이후 아래의 명령어를 입력하였을 때, 아래와 같은 결과가 출력되면, 성공적으로 KVM 설치한 것입니다.
root@android-kvm:~# kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used
끝으로 virt-manager를 설치해주고, virt-manager 명령어를 통해 virt-manager를 실행시켜줍니다.
root@android-kvm:~# apt-get install virt-manager
root@android-kvm:~# virt-manager
그림 1에서는 가상 머신 관리자를 나타냅니다. 가상 머신을 생성하기 위하여 좌측 상단의 붉은색 네모로 표기된 버튼을 눌러줍니다.
그림 1에서 가상 머신 생성을 위한 버튼을 누르게 되면 그림 2와 같이 가상 머신 생성에 대해 새로운 팝이 뜨게 되는 데 ISO 이미지 사용 세션에서 원하는 안드로이드 x86 이미지의 경로를 찾아서 넣어주면 됩니다. 그 뒤 앞으로를 눌러주시면 됩니다.
그림 3과 4에서는 가상머신에 대한 리소스 할당을 설정할 수 있습니다. 원하는 메모리와 CPU 그리고 용량을 작성한 뒤 앞으로 버튼을 눌러주시면 됩니다.
끝으로 그림 5와 같이 이름을 입력하고, Network Selection에서 가상 네트워크 NAT를 설정해주고 완료를 눌러주게 되면 자동으로 가상머신 팝업이 뜨게 됩니다.
2. 안드로이드 x86 가상머신 설치
가상 머신을 생성하게 되면 자동으로 아래와 같이 가상 머신 GUI 화면이 나타나게 되는데 그림 1에서는 안드로이드 x86의 설치 초기 화면을 나타냅니다. 여기서 Installation - Install Android-x86 to harddisk를 선택하고 엔터를 눌러 주시면 됩니다.
다음은 그림 2와 같이 Create/Modify partitions를 선택하고 엔터를 눌러주시면 됩니다.
GPT 사용 여부에 대해서는 NO를 선택해주시면 됩니다.
그림 4에서는 파티션을 생성하게 되는데 NEW를 선택하시고 엔터를 누르신 뒤 메모리에 대해 변경 사항이 없다면 그대로 엔터를 눌러주시면 됩니다. 그 뒤 yes를 입력하고 그림 5와 같이 Write -> Quit를 눌러주시면 됩니다.
생성된 파티션은 리스트에 뜨게 되는데 해당 파티션에서 엔터를 누르게 되면 그림 6과 같이 파일 시스템 포맷 형태에 대해 묻게 됩니다. 이때 ext4를 선택하시면 됩니다.
이후로는 아래와 같이 모두 Yes를 선택해주시면 됩니다.
이후 Run Android-x86을 선택하시면 됩니다.
그림 11에서는 설치 완료 후 로딩된 안드로이드 x86의 메인 화면을 나타내고, 스타트 버튼을 누르게 되면 익숙한 안드로이드 OS 화면을 그림 12와 같이 확인하실 수 있습니다.
3. 원격으로 SPICE 서버 접속
원격지에서 위에서 생성한 안드로이드 x86 가상 머신에 접속하기 위해서는 다음과 같은 가상머신 설정이 필요합니다. 해당 팝업은 상단의 가상 머신 탭에서 구체적인 설정을 진행할 수 있는데, 먼저 Network source는 NAT로 변경해주시고, Device Model은 virtio로 변경해야 합니다.
그림 14에서는 SPICE 서버에 대한 설정을 나타내는데 먼저 Address 부분은 All interfaces로 변경해 줍니다. 또한 포트 TLS port에 체크가 되어 있지 않다면 체크를 해주시면 됩니다. 여기서는 5900 포트(기본값)를 통해 SPICE 서버로 접속하게 됩니다.
가상 머신 측에서 준비가 모두 끝났기 때문에 SPICE server에 접속하기 위한 클라이언트를 설치하고 접속 테스트를 진행해보겠습니다. 본 클라이언트는 윈도우를 기준으로 합니다. 먼저 아래 링크에 접속하시면 됩니다.
https://spice-space.org/download.html
말씀드린 링크에 접속하게 되면 아래와 같은 화면이 뜨는데 여기서 Windows installers에서 virt-manager download page를 클릭해 줍니다.
위에서 언급한 페이지에 접속하게 되면 아래의 화면이 나타나고, 여기서 Win_x64.MSI를 클릭하고 다운로드하여 설치해줍니다. 만약 32bit이시면, WIN_x86 MSI를 받아주시면 됩니다.
설치가 완료되면 Remote Viewer라는 프로그램이 생성되고 아래와 같은 화면을 나타냅니다. 아래 화면에서 Connection Address에서 가상 머신이 운용되고 있는 호스트 아이피와 가상 머신의 SPICE 서버 기본 포트 번호인 5900을 작성하여 연결합니다. 그럼 그림 18과 같이 그래도 GUI 환경의 안드로이드 x86을 원격지에서 확인 할 수 있습니다.
4. 결론
결론
이번 포스팅에서는 ubuntu 환경에서 QEMU-KVM을 이용한 안드로이드 x86 가상 머신을 생성해보고, 외부에서 SPICE 서버를 통해 GUI로 접속해보는 것을 진행해보았습니다.
내용이 어렵지 않고 간단하게 수행할 수 있기 때문에 혹 필요하시다면, 한번 참고하시는 것도 좋을 것 같습니다.
감사합니다.
5. 인용글
https://delightwook.tistory.com/53#google_vignette
'Virtualization : : OS' 카테고리의 다른 글
[가상화] 1. 가상화 개념 정리(KVM/QEMU) (2) | 2024.06.08 |
---|