최근 ARM 프로세서의 사용이 늘어나고 있습니다. ARM 프로세서를 이용하는 클라우드 서버를 이용하게 되기도 하는데, ARM 프로세서를 에뮬레이션 해서 사용할 수 있다면 사전에 필요한 작업을 할 수 있겠죠? 우분투 QEMU/KVM ARM 프로세서 에뮬레이션 방법을 알아보겠습니다.
목차
QEMU/KVM virt-manager 설치
아직 virt-manager가 설치되지 않은 분은 다음과 같이 패키지를 먼저 설치해 주세요.
sudo apt update
sudo apt install virt-manager
ShellScriptQEMU/KVM Virtual Machine Manager 실행
기본적으로 설치된 Virtual Machine Manager를 실행해서 새로운 가상 머신을 만들려고 하면 아래와 같이 나옵니다. 뭐, 별다를 게 없습니다. 하지만 이렇게 해서는 ARM 프로세서 에뮬레이션이 불가능합니다.
ARM 에뮬레이션을 위한 패키지 설치
다음과 같이 qemu-system-arm 패키지를 설치해 줍니다.
sudo apt update
sudo apt install qemu-system-arm
ShellScriptqemu-system-arm 패키지를 설치한 다음 다시 Virtual Machine Manager에서 새로운 가상 머신을 만들려고 시도하면 아래에 아키텍처 옵션(architecture options)이 생깁니다. Architecture 값은 기본으로 x86_64로 된 것을 aarch64로 바꿔줍니다. 그리고 Machine Type은 virt로 합니다.
이제 ARM 에뮬레이션을 활용할 수 있게 되었으므로, ARM용 운영체제를 설치해서 사용하면 됩니다.
Ubuntu Server for ARM 22.04 설치하기
저는 Ubuntu Server for ARM 22.04 버전을 설치해 보도록 하겠습니다.
혹시나 architecture에서 arm(32bit)을 선택하셨다면 아래와 같은 메시지 “Unable to complete install: ‘unsupported configuration: TPM model ‘tpm-tis’ is only available”를 만날 수 있습니다. Ubuntu Server for ARM은 64비트용으로 제작되었으니 aarch64로 아키텍처 선택해 주는 것 잊지 마시기 바랍니다.
제대로 부팅이 되면 그림 4와 같은 화면이 나오면 Try or Install Ubuntu Server를 선택합니다.
이제 가만히 두면 아래와 같이 화면이 나오며 진행됩니다.
주요 파일들을 로드하고 나면 아래와 같이 설치용 TUI가 나옵니다.
Continue in rich mode를 선택하면 좀 더 풍부한 색상과 유니코드를 사용할 수 있습니다. 시리얼 콘솔에서 인스톨러를 실행하면 기본으로 basic mode로 작동한다고 합니다. 이 경우에는 ASCII 문자와 흑백으로만 화면이 구성된다고 안내하고 있습니다.
언어로 English를 선택합니다.
키보드 레이아웃도 English를 선택해 줍니다.
저는 로컬에서 사용할 것이라 그냥 Ubuntu Server를 선택합니다. 더 작은 서버로 만들고 싶다면 minimized를 선택하면 되겠죠? 하지만 필요한 모든 것은 별도로 설치해야 합니다.
저는 공유기에서 아예 해당 MAC 어드레스를 세팅해서 IP를 고정해 주었습니다. 네트워크 설정을 마쳤으면 Done을 눌러서 다음으로 넘어갑니다.
사용하는 프록시가 있다면 입력해주면 됩니다. 저는 없으므로 그냥 Done 눌러서 넘어갑니다.
우분투 미러는 디폴트로 둡니다.
스토리지 설정도 그냥 Done으로 넘어갑니다.
파티션 알아서 잡아주네요. 그냥 Done 눌러서 넘어갑니다. 특별히 별도의 파티션 설정을 원하는 분은 설정해 주시면 되겠죠?
이제 설치를 시작하면 모든 데이터가 삭제된다고 하는데, 어차피 새로 만든 가상 머신이니 지워질 것도 없습니다. Continue 눌러서 진행하면 됩니다. 빨간색으로 버튼 표시된 게 강렬하군요.
이제 여러분의 계정을 설정해 주시면 됩니다. 비밀번호 그냥 캡처용으로 간단히 적었습니다. 비밀번호는 길게 적어야 하는 거 다들 아시죠?
Ubuntu Pro를 활성화할 것인지 물어보는데 저는 Ubuntu Pro 안 쓰기 때문에 Skip for now를 선택하고, Continue를 눌러줍니다.
OpenSSH 서버를 설치할 것인지 물어봅니다. 저는 SSH Key 설정은 별도로 할 것이므로 Install OpenSSH Server만 체크해주고 Done 눌러줍니다.
필요한 서버 환경이 있다면 선택해서 설치해 주도록 합니다. 저는 로컬에서 ARM용 빌드를 위해 사용할 것이라 선택하지 않고 Done을 눌러서 넘어가면, 이제 파티션 포맷부터 운영체제 설치가 진행됩니다.
이제 설치가 시작됩니다. 설치가 완료될 때까지 여러분의 볼일을 보시면 됩니다. 모든 설치가 끝나면 아래와 같이 Reboot Now 버튼이 생깁니다. 설치가 끝나면 Reboot Now를 눌러서 재부팅해 줍니다.
서버 재부팅이 다 끝났다면, 위에서 설정한 계정으로 로그인할 수도 있으며, 다음과 같이 ssh로 접속하면 아래와 같이 잘 접속되며 aarch64 아키텍처가 확인됩니다.
Ubuntu Server이기 때문에 GUI 환경은 제공되지 않습니다.
관련 자료
Qemu 공식문서를 통해서 관련 내용을 참고했습니다.