본문 바로가기
리눅스

QEMU macOS guest

by 다움위키 2023. 12. 22.

다른 가상 기계에서 macOS를 설치해서 사용하는 것이 그래픽 처리가 늦어서 사용하기에 원활하지 않습니다. 다른 가상 기계에서의 이전 설치와 비교해 보기 위해, KVM/QEMU에서 설치를 해보고자 합니다.

이 정보는 다음 주소의 안내서에 따라 진행됩니다.

Requirements

  • 데비안 10과 그 이후 버전과 같은 현대 리눅스 배포판
  • QEMU >= 4.2.0
  • Intel VT-x 또는 AMD SVM를 지원하는 CPU
  • SSE4.1를 지원하는 CPU >= macOS Sierra
  • AVX2를 지원하는 CPU >= macOS Mojave

Installation Preparation

KVM tweak (호스트 리눅스)

  • echo 1 | sudo tee /sys/module/kvm/parameters/ignore_msrs

이 변경 사항을 영구적으로 적용하기 위해, github에서 OSX-KVM을 가져온 후에, (인텔 CPU에서만 하십시오, AMD는 위의 것만 수정하라는 것인지?? 하지 말라는 것인지??)

  • sudo cp kvm.conf /etc/modprobe.d/kvm.conf

QEMU와 필요 패키지 설치

  • sudo apt-get install qemu uml-utilities virt-manager git wget libguestfs-tools p7zip-full make -y

사용자 그룹 추가

  • sudo usermod -aG kvm $(whoami)
  • sudo usermod -aG libvirt $(whoami)

명령을 적용하기 위해 컴퓨터 재시작

저장소에서 스크립트 가져오기

최신 버전으로 업데이트

  • git pull --rebase

macOS 설치 프로그램 가져오기

  • ./fetch-macOS-v2.py

Big Sur 선택을 추천, 설치가 되지 않아, High Sierra로 선택.

이미지 변환

  • qemu-img convert BaseSystem.dmg -O raw BaseSystem.img

디스크 생성

  • qemu-img create -f qcow2 mac_hdd_ng.img 120G

나중에 업데이트를 생각한다면, 큰 이미지를 생성해 둘 필요가 있습니다.

macOS guest menu

Tap Networking (Better Performance) :

다운로드가 느려서 이것을 추가하고 시작해 봅니다.

  • sudo ip tuntap add dev tap0 mode tap
  • sudo ip link set tap0 up promisc on
  • sudo ip link set dev virbr0 up
  • sudo ip link set dev tap0 master virbr0

명령줄에서 설치를 하려면, 다음 스크립트를 실행할 수 있지만, 좀 더 편하게 아래의 방법을 이용할 수 있습니다.

  • ./OpenCore-Boot.sh

virt-manager 메뉴 만들기 :

위의 방법보다는 이 방법이 간편할 수 있습니다.

  • sed "s/CHANGEME/$USER/g" macOS-libvirt-Catalina.xml > macOS.xml
  • virt-xml-validate macOS.xml
  • virsh --connect qemu:///system define macOS.xml

이제 virt-manager에서 macos가 보입니다.

디스크 지우기 :

디스크 유틸리티를 사용해서 위에서 만든 120G 디스크를 지우기를 실행해야 설치 중에 선택할 수 있습니다. APFS를 선택하지 말고 Mac OS Extended를 선택하는 것이 좋다고 합니다.

설치 시작 :

라이선스를 확인하고, 아마도 네트워크로 이미지를 받아오는 것으로 추정되는데, 상황에 따라 다운로드를 하지 못하거나, 중간에 비정상적으로 종료되는 경우도 있습니다. 어쨌든, 대체로 수십 분에서 몇 시간이 걸릴 수 있습니다.

스레드 4개 메모리 8G에서 부팅은 다른 게스트에 비해 많이 느리지만, 로그인 후에는 쓸만한 그래픽 속도를 보여줍니다. 충분히 사용할 만 합니다!!

OSX Optimization

가상 기계에서, 게스트 운영 시스템으로 리눅스를 사용하는 것은 최고의 성능을 보여줍니다. 게다가 윈도우 게스트도 사용하기에 무리가 없을 정도로 충분한 성능이 나옵니다. 반면에 osx는 상대적으로 더 많은 코어와 메모리를 사용하도록 설정해도 가장 낮은 성능을 보여주기 때문에, 좀 더 빠르게 동작하도록 설정할 필요가 있습니다.

이 내용은 보안에 문제가 없을 것으로 판단되는 설정을 다음 문서에서 발췌해서 기록해 둡니다.

Disable spotlight indexing

  • sudo mdutil -i off -a

Disable heavy login screen wallpaper

  • sudo defaults write /Library/Preferences/com.apple.loginwindow DesktopPicture ""

Reduce Motion & Transparency

  • defaults write com.apple.Accessibility DifferentiateWithoutColor -int 1
  • defaults write com.apple.Accessibility ReduceMotionEnabled -int 1
  • defaults write com.apple.universalaccess reduceMotion -int 1
  • defaults write com.apple.universalaccess reduceTransparency -int 1
  • defaults write com.apple.Accessibility ReduceMotionEnabled -int 1

Enable multi-sessions

  • sudo /usr/bin/defaults write .GlobalPreferences MultipleSessionsEnabled -bool TRUE
  • defaults write "Apple Global Domain" MultipleSessionsEnabled -bool true

Disable screen locking

  • defaults write com.apple.loginwindow DisableScreenLock -bool true

Disable saving the application state on shutdown

  • defaults write com.apple.loginwindow TALLogoutSavesState -bool false

Installation information

High Sierra :

가장 짧은 시간에 설치가 되고, 사용함에도 무리가 없습니다.

Mojave :

설치 중인데, 설치 시간이 길지는 않습니다.

Catalina :

설치 시간이 High Sierra 보다 훨씬 오래 걸리지만, 사용함에 무리가 없습니다.

Big Sur :

마찬가지로 설치 시간이 오래 걸리고, 해상도가 5000x3000으로 설정되고, 시스템 설정이 화면에서 노출되지 않아, 사용하기 힘듭니다.

Monterey :

가장 오랫동안 설치를 진행하고 있습니다. 최소화 애니메이션에서 시스템에 무리가 갑니다.