QEMU/KVM — Установка MacOS Mojave

1. Конвертация в ISO образ

Для начала нам понадобится образ MacOS Mojave.

Скачать официальный получиться только на Mac

Переходим по ссылке: support.apple.com/macos/mojave

Вас перебросит в iTunes, соглашаемся с лицензионным соглашением, убираем все галочки про обновление, и выбираем скачать образ.

После того, как скачивание завершилось, нужно конвертировать скачанный образ в ISO, для этого скачаем репозиторий:

git clone https://github.com/kholia/OSX-KVM.git

И выполним скрипт:

./mojave/create_iso_mojave.sh

По завершению которого, на рабочем столе появится сконвертированный ISO образ.

2. Подготовка хост машины

Для запуска MacOS Mojave необходим процессор с поддержкой инструкций sse4.1 и sse4.2

Все действия проводились на OS Ubuntu 18.04, CPU: Intel Xeon E3-1270 v6

Убедимся, что процессор поддерживает виртуализацию:

egrep -c '(vmx|svm)' /proc/cpuinfo

Если совпадений "0" — не поддерживает, если отличное от нуля, то поддерживает.

Включим форвардинг пакетов:

vim /etc/sysctl.conf

Добавим строку:

net.ipv4.ip_forward=1

Применим изменения:

sysctl -p

Устанавливаем все необходимые пакеты:

apt install -y qemu qemu-kvm libvirt0 virt-manager bridge-utils libvirt-daemon-system libvirt-clients uml-utilities libguestfs-tools

Создаем интерфейс "tap0"

ip tuntap add dev tap0 mode tap
ip link set tap0 up promisc on
brctl addif virbr0 tap0

Теперь на хост машине нам так же понадобится следующий репозиторий:

git clone https://github.com/kholia/OSX-KVM.git

Копируем наш ISO образ прям в корень скачанного репозитория.

Создаем диск для будущей виртуальной машины:

qemu-img create -f qcow2 mac_hdd.img 128G

 

3. Установка MacOS Mojave

Нас интересует скрипт "boot-macOS-Mojave.sh" в корне репозитория

Поправьте имя и если нужно, путь к ISO образу. Так как Ubuntu у нас без графической оболочки, необходимо добавить следующие опции для проброса изображения посредством VNC:

-vga std -nographic -vnc :1

Где 1 — номера экрана, 1 — соответствует порту 5901. Отсчет с нуля.

И удалить строку:  "-monitor stdio"

Чтобы получилось следующее:

qemu-system-x86_64 -vga std -nographic -vnc :1 -enable-kvm -m 3072 -cpu Penryn,kvm=on,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on,$MY_OPTIONS\
          -machine pc-q35-2.11 \
          -smp 4,cores=2 \
          -usb -device usb-kbd -device usb-tablet \
          -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" \
          -drive if=pflash,format=raw,readonly,file=OVMF_CODE.fd \
          -drive if=pflash,format=raw,file=OVMF_VARS-1024x768.fd \
          -smbios type=2 \
          -device ich9-intel-hda -device hda-duplex \
          -device ide-drive,bus=ide.2,drive=Clover \
          -drive id=Clover,if=none,snapshot=on,format=qcow2,file=./'Mojave/Clover.qcow2' \
          -device ide-drive,bus=ide.1,drive=MacHDD \
          -drive id=MacHDD,if=none,file=./mac_hdd.img,format=qcow2 \
          -device ide-drive,bus=ide.0,drive=MacDVD \
          -drive id=MacDVD,if=none,snapshot=on,media=cdrom,file=./'Mojave.iso' \
          -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device vmxnet3,netdev=net0,id=net0,mac=52:54:00:AB:F8:B7

Запускаем скрипт:

./boot-macOS-Mojave.sh

Подключаемся по VNC на порт, который указали в скрипте запуска

Запускаем установку

Сразу после выбора языка установки запускаем "Disk Utility"

Смотрим на размер дисков, и находим который мы создавали для виртуальной машины

Выбираем "Erase" и задаем имя раздела

Закрываем "Disk Utility" и переходим к установке "Install MacOS"

Соглашаемся с лицензионным соглашением и выбираем раздел для установки

Дальше процесс установки расписывать нет смысла.

После установки MacOS Mojave выключим виртуальную машину и удалим со скрипта строки, подключающие наш ISO образ, как DVD привод.
Вот эти 2 строки:

          -drive id=MacHDD,if=none,file=./mac_hdd.img,format=qcow2 \
          -device ide-drive,bus=ide.0,drive=MacDVD \

 

4. Установка Clover на раздел с MacOS

Это нужно не для того, чтобы убрать лишний образ с виртуальной машины, а чтобы настроить автозапуск системы, без надобности выбора раздела загрузки.

Запускаем виртуальную машину и выбираем 3-ий пункт "Boot MacOS from MacOS"

MacOS — имя раздела, который мы задавали при подготовке раздела (Erase)

Для этого понадобятся:
1. Clover
2. Clover Configurator

Скачиваем Clover и запускаем, получаем следующую ошибку:

Нажимаем "OK" и переходим в "System Preferences" -> "Security & Privacy" и видим наш Clover, и сообщение, что в целях безопасности он был заблокирован. Нажимаем "Open Anyway"

Доходим до пункта "Installation Type" и не жмем "Install", а переходим в "Customize".

Отмечаем два верхних пункта для EFI

Жмем "Install" и вводим пароль пользователя

Установка Clover завершена.

По сути установка Clover была нужна для того, чтобы создался загрузочный раздел, а в него будем клонировать содержимое раздела "Clover.qcow2"

Скачиваем Clover Configurator и запускаем. Так же переходим в "System Preferences" -> "Security & Privacy" и разрешаем запуск.

Выбираем раздел "Mount EFI" и видим там два EFI раздела.

disk1s1 — примонтирован, раздел с MacOS, сюда будем клонировать Clover

disk0s1 — не примонтирован, раздел образа "Clover.qcow2", отсюда будем клонировать

Монтируем диск disk0s1 — "Mount Partition"

Переходим в раздел "Clover Cloner". Убедимся, что в качестве "Source" указан раздел "disk0s1", а "Target" — "disk1s1". Жмем "Clone".

После удачного клонирования, выключаем виртуальную машину, находи в скрипте запуска следующие строки:

          -device ide-drive,bus=ide.2,drive=Clover \
          -drive id=Clover,if=none,snapshot=on,format=qcow2,file=./'Mojave/Clover.qcow2' \

И удаляем их.

Запускаем снова виртуальную машину. Если все сделали правильно, то видим наш Clover

Загружаемся с раздела с MacOS. Снова открываем Clover Configurator. Переходим в раздел "Mount EFI" и видим, что там теперь один раздел, примонтируем его.

В левом нижнем угла находим иконку с названием "Import Configuration". В "Locations" выбираем "EFI" -> "CLOVER" -> "config.plist" и жмем "Open".

В разделе "SECTIONS" выбираем пункт "Boot" и приводим его к следующему виду.

В левом нижнем углу находим иконку с названием "Export Configuration" и жмем "Save" и перезагружаемся, при включении Clover спросит раздел с которого грузится, выбираем наш раздел, все последующие загрузки он будет автоматически грузится с него.

После этого можно оставить только следующие файлы:

  • boot-macOS-Mojave.sh
  • mac_hdd.img
  • OVMF_CODE.fd
  • OVMF_VARS-1024×768.fd
0 0 vote
Рейтинг статьи

Метки: Метки

Подписаться
Уведомление о
guest
6 комментариев
старее
новее большинство голосов
Inline Feedbacks
View all comments
Dima Gerasimov
Dima Gerasimov
1 год назад

Добрый день, вопрос хоть и не по инсталяции, но близок. Досталась в наследство виртуалка с Mojave, но запускается она исключительно 1024х768. И больше в настройках mac OS нет других вариантов, а хотелось бы. Если есть идеи куда копать/смотреть буду благодарен

Dima Gerasimov
Dima Gerasimov
1 год назад
Reply to  Artem

Через VNC. Попробовал в Clover ставить 1920х1080, но тогда интерфейс ломается. Скинул бы скрин, но не уверен, что коменты картинки поддерживают

Dima Gerasimov
Dima Gerasimov
1 год назад
Reply to  Artem

Победил, создатель виртуалки в биосе запретил разрешения больше, чем 1024х768