가상 머신은 컴퓨팅과 소프트웨어 엔지니어링 분야에서 없어서는 안 될 핵심 기술입니다. 가상 머신을 활용하면 별도의 하드웨어 추가 없이도 다양한 운영체제를 자유롭게 테스트하고 사용할 수 있습니다. 또한 가상 머신에서 문제가 발생하더라도 호스트 운영체제에는 전혀 영향을 주지 않으므로 안심하고 실험할 수 있다는 점도 큰 장점입니다.
이 가이드에서는 QEMU-KVM 가상 머신을 사용하여 우분투(Ubuntu) 리눅스에 macOS를 설치하는 방법을 단계별로 살펴봅니다. 설치를 완료하면 리눅스에서는 기본적으로 사용할 수 없는 macOS 전용 소프트웨어까지 그대로 활용할 수 있습니다.
QEMU란 무엇인가?
QEMU는 윈도우의 VMware나 VirtualBox와 유사한 가상 머신 에뮬레이터이자 가상화 도구입니다. QEMU는 리눅스 커널 위에서 네이티브 수준의 가상 머신 환경을 제공하는 KVM과 함께 사용하는 경우가 많습니다.
QEMU의 가장 큰 장점은 설정과 관리가 매우 쉽다는 것입니다. 특히 명령줄에서 가상 머신을 생성하는 과정이 그 어느 때보다 간편해집니다. 물론 GUI 환경을 선호한다면 virt-manager를 사용하면 되는데, 이는 QEMU/KVM 환경에서 가장 널리 쓰이는 그래픽 관리 도구입니다.
또한 QEMU/KVM 가상 머신으로 테스트를 마친 후 더 이상 필요하지 않게 되면, 해당 가상 머신과 연결된 가상 디스크 파일만 삭제하면 깔끔하게 정리됩니다.
QEMU/KVM 설치하기
QEMU/KVM은 apt 유틸리티를 통해 명령줄에서 간단히 설치할 수 있습니다. apt는 데비안 계열 리눅스 배포판에서 애플리케이션을 설치하고 제거하는 데 사용되는 패키지 관리 도구입니다. QEMU 패키지와 함께 Python 관련 유틸리티도 함께 설치해야 하므로, 아래 명령어로 필요한 모든 의존성을 한 번에 설치하세요.
sudo apt-get install qemu-system qemu-utils python3 python3-pip
macOS 및 설치 도구 내려받기
이번 가이드에서는 GitHub의 foxlet 프로젝트를 활용하여 macOS 설치 과정과 QEMU/KVM 기반 가상 머신 관리를 한결 수월하게 진행합니다.
먼저 foxlet의 공식 GitHub 저장소에서 macOS 베이스 이미지와 설치 도구를 내려받아야 합니다. 터미널을 열고 작업 폴더로 사용할 /Downloads 디렉터리로 이동합니다.
cd ~/Downloads
그다음 wget 유틸리티로 프로젝트 파일을 다운로드합니다.
wget https://github.com/foxlet/macOS-Simple-KVM/archive/refs/heads/master.zip
다운로드가 완료되면 /Downloads 폴더에 master.zip 파일이 저장됩니다. unzip 명령줄 유틸리티로 압축 파일의 내용을 해제합니다.
unzip master.zip
압축 해제가 끝나면 macOS-Simple-KVM-master라는 이름의 폴더가 생성됩니다.
가상 머신을 위한 KVM 폴더 만들기
가상 머신을 체계적으로 관리하려면 macOS 가상 머신을 담을 KVM 폴더를 미리 만들어 두는 것이 좋습니다. 이 디렉터리는 앞으로 시스템에 추가로 만들 다른 가상 머신들을 보관하는 용도로도 활용할 수 있습니다.
mkdir ~/KVM
폴더 생성이 완료되면 압축을 푼 macOS 설치 도구 폴더를 KVM 폴더로 이동합니다. 관리 편의를 위해 폴더 이름을 macOS로 변경하는 것도 좋습니다. 아래 명령어 하나로 이동과 이름 변경을 동시에 처리할 수 있습니다.
mv ~/Downloads/macOS-Simple-KVM-master/ ~/KVM/macOS
가상 디스크 생성하기
이제 방금 이름을 변경한 macOS 폴더 안에 가상 하드 디스크를 생성합니다. 먼저 해당 디렉터리로 이동합니다.
cd ~/KVM/macOS
macOS 폴더 안에서 아래 스크립트를 실행합니다. 이 명령은 macOS Catalina 설치 이미지를 자동으로 다운로드합니다.
./jumpstart
베이스 이미지가 준비되면, 이제 macOS를 실제로 설치할 가상 디스크 이미지를 만들 차례입니다. qemu-img 유틸리티를 사용해 운영체제 설치에 사용할 가상 하드 디스크를 생성합니다.
qemu-img create -f qcow2 mac_os.qcow2 64G
위 명령은 qcow2 형식의 mac_os.qcow2라는 이름의 가상 디스크를 약 64GB 크기로 생성합니다. 참고로 QEMU는 지정한 크기보다 여유 있게 이미지를 생성하는데, 아래 출력 결과에서 실제로 약 68GB 크기의 디스크가 만들어진 것을 확인할 수 있습니다.
가상 머신 구성하기
macOS 폴더에서 주목해야 할 또 하나의 중요한 파일은 basic.sh입니다. 이 파일은 가상 머신의 런타임 환경을 설정하는 데 사용됩니다.
basic.sh 파일의 맨 아래에 아래 두 줄을 추가한 뒤 저장합니다.
-drive id=SystemDisk,if=none,file=mac_os.qcow2
-device ide-hd,bus=sata.4,drive=SystemDisk
수정 후 basic.sh 파일의 최종 내용은 아래 이미지와 같은 형태가 되어야 합니다.
이 외에도 가상 머신에 할당할 RAM 용량을 조정할 수 있습니다. -m으로 시작하는 줄이 RAM 크기를 GB 단위로 지정하며, -smp로 시작하는 줄의 cores=x 부분에서 가상 머신이 사용할 CPU 코어 수를 지정할 수 있습니다.
우분투에 macOS 설치하기
설치를 시작하려면 방금 편집한 basic.sh 스크립트 파일을 실행합니다.
./basic.sh
명령을 실행하면 macOS 운영체제의 초기 설치 화면이 나타납니다. Enter 키를 눌러 계속 진행하세요.
참고: 이 단계에서는 마우스가 제대로 작동하지 않을 수 있습니다. 이 경우 방향키를 사용해 화면을 탐색해야 합니다.
마우스와 키보드 제어권을 가상 머신 창에서 빠져나오려면 Ctrl + Alt + G 키 조합을 사용하세요.
라이선스 조항을 충분히 읽어본 뒤 Agree(동의) 버튼을 선택해 설치를 계속 진행합니다.
설치를 본격적으로 진행하기 전에 반드시 디스크 유틸리티(Disk Utility)로 가상 디스크를 포맷해야 합니다.
왼쪽 패널에서 해당 디스크 용량 항목을 선택하고 Erase(지우기) 버튼을 클릭합니다. 그런 다음 디스크 유틸리티에서 디스크 이름을 MainDisk로 변경하고, 아래 이미지와 같이 Apple File System(APFS) 포맷과 GUID 파티션 맵 방식을 선택해 포맷을 진행합니다.
모든 설정이 끝나면 화면 왼쪽 상단의 빨간색 버튼을 눌러 디스크 유틸리티 창을 닫습니다. 그러면 시스템이 자동으로 이전 화면으로 돌아갑니다.
가상 하드 디스크 포맷이 정상적으로 완료되었다면, 이제 Reinstall macOS(macOS 재설치) 옵션을 선택하여 macOS 설치를 진행할 수 있습니다.
다음으로 macOS 시스템이 설치될 디스크를 선택합니다.
이어지는 화면에서는 Continue(계속) 버튼만 클릭하면 설치가 진행됩니다.
설치에는 상당한 시간이 소요됩니다. 아래 초기 예상 시간에서 확인할 수 있듯이 여유로운 마음으로 커피 한 잔을 즐기며 기다리세요.
설치 과정 중에는 운영체제 구성 화면이 나타날 때까지 별도의 선택을 할 필요가 없습니다.
macOS 설치 환경 설정하기
설치가 무사히 진행되었다면 이제 새 운영체제의 초기 설정을 시작할 차례입니다. 먼저 거주 국가 또는 지역을 선택합니다.
그다음 입력 언어와 음성 언어 옵션을 차례로 선택합니다. 필요하다면 Customize Settings(설정 사용자화) 버튼을 눌러 추가 언어 지원을 활성화할 수도 있습니다.
다음 화면에서는 Apple의 데이터 처리 방식과 사용자 개인정보 보호 정책이 안내됩니다. Continue(계속)를 클릭해 진행하세요.
macOS에서는 다른 PC나 저장 매체로부터 데이터를 이전하는 기능을 제공하지만, 이번 설치에서는 과정을 단순하게 유지하기 위해 이 단계를 건너뜁니다.
Apple ID 로그인은 나중으로 미룰 수도 있습니다.
이용약관 화면에서는 설치를 계속 진행하려면 Agree(동의)를 선택해야 합니다.
이제 사용자 계정을 설정합니다. 사용자 이름과 안전한 비밀번호를 입력해 계속 진행하세요. 비밀번호를 잊어버릴 경우를 대비해 힌트를 추가로 등록할 수도 있습니다.
Express Set Up(빠른 설정)이라는 문구가 표시된 다음 화면에서는 그냥 Continue(계속)를 누르면 됩니다.
분석 데이터 화면에서는 개발자에게 오류 및 사용 통계를 공유할지 묻습니다. Share crash and usage data with app developers(앱 개발자와 오류 및 사용 데이터 공유) 옵션에 체크한 뒤 Continue(계속) 버튼을 선택하세요.
스크린 타임(Screen Time) 화면에서는 macOS가 화면 사용 시간을 기록하고 요약을 제공할지 여부를 설정할 수 있습니다. Set Up Later(나중에 설정)를 선택한 뒤 Continue(계속) 버튼을 누릅니다.
음성 비서 애호가라면 Siri 활성화 여부를 이 단계에서 결정할 수 있습니다. Continue(계속)를 선택해 설치를 계속 진행하세요.
새로운 macOS 데스크톱 화면을 만나기 전 마지막 단계는 테마 색상 설정입니다. 이번 튜토리얼에서는 Dark(다크) 테마를 선택했습니다.
드디어 macOS 데스크톱 화면이 나타납니다. 이 시점부터 시스템을 바로 사용할 수 있으며, 간혹 추가 구성 옵션이 나타날 수 있습니다. 시스템 업데이트도 지금 바로 진행하거나 나중으로 미룰 수 있습니다.
이것으로 우분투 리눅스의 가상 머신 안에서 macOS가 성공적으로 구동되었습니다!
가상 머신 시작 및 종료하기
가상 머신 사용을 마쳤다면 언제든지 macOS 시스템을 종료하거나 재시작할 수 있습니다. 가상 머신을 중지하려면 basic.sh 스크립트가 실행 중인 터미널에서 Ctrl + C 키를 누르면 됩니다.
가상 머신을 다시 켜려면 가상 하드 디스크가 있는 macOS 폴더 안에서 basic.sh 스크립트를 실행하기만 하면 됩니다.
./basic.sh
그러면 아래와 같은 부팅 화면이 나타납니다. Boot macOS from MainDisk(MainDisk에서 macOS 부팅) 옵션을 선택하세요.
QEMU/KVM 추가 설정하기
화면 해상도를 포함한 가상 머신 세부 설정을 더욱 다양하게 구성할 수도 있지만, 이 가이드는 설치 과정에 초점을 맞추고 있습니다. 가상 하드 디스크가 있는 macOS 디렉터리 안의 /docs 폴더를 열어보면 시스템을 추가로 구성하는 방법에 대한 자세한 정보를 확인할 수 있습니다.
macOS 가상 머신은 호스트 운영체제가 사용하는 인터넷 연결을 자동으로 공유하므로, 별도의 네트워크 설정 없이도 좋아하는 앱을 손쉽게 설치할 수 있습니다. 참고로 같은 방식의 가상 머신을 활용하면 윈도우 운영체제에서도 macOS를 설치할 수 있습니다.