Установка macOS в Proxmox

Возникла у меня идея посмотреть на современную систему компании Apple для PC, не покупая само устройство, так как большой надобности в этом нет. Далее расскажу, как установить систему MacOS на виртуальную машину гипервизора KVM под управлением Proxmox. Пришлось немного поразбираться, так как актуального пошагового руководства не нашел.

Онлайн-курс по устройству компьютерных сетей

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Зачем устанавливать macos на обычный компьютер?

В данном случае под обычным компьютером я имею ввиду то, что не относится к железу от Apple, на котором, и только на котором, должна работать MacOS. Как известно, существует проект Hackintosh, который позволяет установить macos не только на виртуальные машины, но и обычные ноутбуки и pc. Видел даже услугу под ключ, где вам на чистый ноут поставят hackintosh. Только нужно будет купить железо, которое гарантированно поддерживается.

Мне, для удовлетворения любопытства, не нужно отдельное железо, поэтому я решил поставить MacOS на виртуальную машину Proxmox. Каких-то практических целей я не преследую. Чистое любопытство, получится или нет. В пятницу сидел, дела делать не хотелось, решил поразбираться немного. В итоге у меня всё получилось, поэтому решил поделиться информацией.

macos on proxmox vm

Сразу скажу, что способов практического использования подобной системы не много, так как без графического ускорителя macos работает очень плохо. Вся анимация тормозит. Я не прорабатывал вопрос проброса видеокарты в виртуальную машину с macos. Мне он видится очень нетривиальным и без большой надобности разбираться с этим не захотелось. Но при этом нормально работает сеть, к системе можно подключаться по ssh, так что кому-то может и пригодится.

Я все операции проделывал на гипервизоре Proxmox 7.0, работающем на базе процессора Intel i5.

Подготовка установочного iso образа macos

Начнём с того, что подготовим 2 iso образа для установки macos:

  1. OpenCore.iso - качаем его из этого репозитория. Данный образ будет загрузочным. Он каким-то образом убеждает установщик самой системы, что работает на железе apple. Это его основная функция.
  2. Catalina-installer.iso - стандартный установщик macos. Его мы подготовим далее.

Для того, чтобы начать установку macos, нам нужно подготовить образ системы. Для этого копируем себе репозиторий - https://github.com/kholia/OSX-KVM.

# git clone --depth 1 --recursive https://github.com/kholia/OSX-KVM.git

В корне проекта есть python скрипт fetch-macOS-v2.py. Запускаем его и выбираем установку Catalina.

# cd OSX-KVM
# ./fetch-macOS-v2.py

Загрузка BaseSystem.dmg

Скрипт скачает базовый образ BaseSystem.dmg. Нам нужно будет его сконвертировать в iso.

# qemu-img convert BaseSystem.dmg -O raw Catalina-installer.iso

Оба образа - OpenCore.iso и Catalina-installer.iso копируем в репозиторий образов proxmox.

Создание виртуальной машины для MacOS

Теперь идём в веб интерфейс proxmox и создаем виртуальную машину для MacOS. Я ей выделю 4 ядра и 8 гигабайт оперативной памяти. Количество ядер не должно быть 6. Я лично пробовал с 4 или 8 ядрами. Если сделать 6, ничего не получится. Динамическую память тоже обязательно выключаем.

Не буду расписывать все шаги, а просто покажу картинки настроек. Они будут предварительные. Затем завершим подготовку виртуальной машины в консоли. А пока создаём через веб интерфейс.

После создания открываем список оборудования VM и добавляем туда iso образ Catalina-installer.iso.

Подключение системного iso образа macos catalina

После создания, виртуальную машину не запускаем. Перемещаемся в консоль гипервизора и открываем конфиг виртуальной машины в директории /etc/pve/qemu-server. Имя конфиг виртуальной машины будет равен её номеру. В моем случае это 135.conf. Нам нужно привести конфиг к следующему виду. Я выделю то, что я добавил и изменил.

args: -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -cpu host,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc
balloon: 0
bios: ovmf
boot: order=ide2
cores: 4
cpu: Penryn
efidisk0: local-500G:135/vm-135-disk-0.qcow2,size=128K
ide0: local-500G:iso/Catalina-installer.iso,cache=unsafe,size=2096528K
ide2: local-500G:iso/OpenCore-v13.iso,cache=unsafe,size=150M
machine: q35
memory: 8196
name: macos-test
net0: vmxnet3=26:06:41:79:8E:7A,bridge=vmbr0
numa: 0
ostype: other
sata0: raid1:vm-135-disk-0,cache=unsafe,discard=on,size=128G,ssd=1
scsihw: virtio-scsi-pci
smbios1: uuid=ed285c88-e9b7-41e9-b8cc-c18467097fb1
sockets: 1
vga: vmware
vmgenid: 1d33ec8f-921c-41eb-9577-6b92088d2902

В веб интерфейсе настройки должны выглядеть примерно вот так:

Все настройки VM для macOS на Proxmox

Если у вас процессор не Intel, а AMD, параметры процессора следует использовать другие:

-cpu Penryn,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc,+pcid,+ssse3,+sse4.2,+popcnt,+avx,+avx2,+aes,+fma,+fma4,+bmi1,+bmi2,+xsave,+xsaveopt,check

В консоли гипервизора делаем еще одну настройку, меняя параметры модуля ядра kvm.

echo "options kvm ignore_msrs=Y" >> /etc/modprobe.d/kvm.conf && update-initramfs -k all -u

Активируем эту настройку без перезагрузки:

modprobe kvm options ignore_msrs=Y

У нас всё готово к тому, чтобы начать установку MacOS на виртуальную машину Proxmox.

Установка MacOS на Proxmox

Запускаем виртуальную машину и переходим в консоль. Если всё сделали правильно на предыдущих шагах, должны увидеть следующую картинку.

Установка MacOS на Proxmox

Мышка в этом режиме не будет работать, так что стрелками на клавиатуре выбираем macOS Base System и жмём Enter.

Некоторое время будете видеть надкусанное яблоко с прогресс баром.

Установка macOS Base System

Если на предыдущих этапах всё сделали правильно, то должны увидеть утилиты macOS.

Disk Utility

Нам надо выбрать Disk Utility. Здесь уже должна работать мышка. Выберите свой основной диск и очистите его, нажав Erase.

Создание основного диска для системы

После того, как закончите очистку, закрывайте утилиту и переходите в главное меню. Здесь вам нужно будет выбрать Reinstall macOS.

Reinstall macOS

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

Выбор диска для установки системы

Начнёт процесс установки macOS, который в зависимости от вашего железа может длиться разное количество времени. В основном скорость будет зависеть от вашего жесткого диска. У меня минут 15-20 длился данный этап.

macOS catalina progress installation on proxmox

После завершения этого этапа VM автоматически перезагрузится и встретит вас подобным меню.

macOS Installer

Нужно клавиатурой выбрать macOS Installer и установка продолжится. Пройдёт еще 10-15 минут, после которых система автоматически перезагрузится ещё раз. Далее вас встретит очередной загрузчик, где нужно выбрать ваш основной диск, на который установлена система. В моем случае это Main.

Загрузка установленной системы

Дальше запускается стандартная преднастройка системы. Нужно будет выбрать страну, язык, логин, пароль и т.д. От использования учётной записи с Apple ID можно отказаться, так что никакие дополнительные учетные записи для работы macOS делать не нужно будет.

Система MacOS работает в виртуальной машине Proxmox

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

Видео установки macOS

Мне очень сильно помогло видео на youtube на данную тему. Оно позволило быстро въехать в тему, чтобы понять этапы, по которым надо пройти.

В видео не рассмотрен момент с получением osk key. Автор взял его со своего текущего mac. А что делать тем, у кого его нет? Я не сразу понял. В итоге нашёл информацию, что на последних версиях OpenCore ключ не имеет значения. Можно указать любой, что я и сделал. После этого всё получилось.

Заключение

Что теперь делать с установленной на виртуальную машину macOS, решать вам. Было бы интересно узнать, как вам эта система пригодилась. Поделитесь в комментариях. Я подозреваю, что подобная установка будет актуальна для разработчиков, которым нужно что-то проверять в экосистеме apple. Какое-то другое применение в голову не приходит. Я, как сисадмин, никакого полезного применения для себя не нашёл.

Проблему с тормозами графики частично можно решить, если подключаться к системе через встроенный в macos Screen Sharing. Но это возможно только если у вас есть под рукой нормальный Mac. В этом случае можете использовать подобное подключение. Так же с помощью этого шаринга можно подключиться по VNC, но качество графики всё равно будет очень низкое, сопоставимое с консолью proxmox.

Онлайн-курс по устройству компьютерных сетей.

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

19 комментариев

  1. Дорогой Хостя!
    А что же с производительностью графики по штатному spice?

  2. Аноним

    Доброго дня. При попытке qemu-img convert BaseSystem.dmg -O raw monterey.iso -
    qemu: module block-block-dmg-bz2 not found, do you want to install qemu-block-extra package?
    qemu: module block-block-dmg-lzfse not found, do you want to install qemu-block-extra package?

    Qemu-block-extra установлен. Может есть идеи как побороть?

    • Евгений

      Понимаю что скорее всего для вас это уже не проблема, но как поборол я. apt install dmg2img. Далее открывал make файл искал строку с qemu-img convert. Выглядело так
      else
      qemu-img convert $< -O raw $@
      endif
      В итоге так
      else
      dmg2img -i $< -o $@
      endif
      И проблема пропадала.

  3. Анатолий

    Мануал для нищеебов) который будут юзать хакинтош на дешевых вырвиглаз мониторах и тупящих компах)

    • Андрей

      Intel 2630v3 + X99K9 Machinist + 24Gb DDR4 RAM + 512Gb NVME KC2500 + WIFI/BT BCM963602+ AMD HD7770 + 27" 4K LG 650W

      Правда на это железо через Clover или OpenCore Monterey и без вертуалки спокойно встает. Со всеми сервисами Apple и поддержкой DRM в TV+ С него и пишу из Мак ОС.
      У меня есть MacBook Air на M1 - это железо сравнительно работает так же быстро. Но более универсально - винда и линукс без проблем.

    • Причём тут нищеебы? Я из техники apple признаю только airpods pro, остальное, ОСОБЕННО их компы, УГ полное и я могу привести 1001 причину почему это так и почему лучше купить нормальный ноут (я уже молчу про последнее поколение на ARM (то есть мобильном) процессоре). Единственное что норм в маках - дизайн, но с дизайном у яблок никогда проблем не было. Если вы покупаете комп за дизайн (наличие яблока на корпусе устройства) - радуйтесь его дизайну и тому что вы теперь не нищееб. Но вот незадача, ваши ненищеебские ноуты и моноблоки таки тоже ломаются, как девственницы перед первым сексом, и несёте потом вы их таким нищеебам как я, моля о реанимации. Думаю, бессмысленно дальше объяснять что покупать себе работающее красивое ненужное устройство я не буду ради того чтобы смочь таким как вы помочь, поэтому и создают всякие хакинтоши и образы для установки на виртуальные машины

    • >Мануал для нищеебов) который будут юзать хакинтош на дешевых вырвиглаз мониторах и тупящих компах)
      Напомните, пожалуйста, как там называется линейка эпловских серверов, а то я позабыл

    • Неважно

      Да, очень нищий сетап у меня

      2x Intel(R) Xeon(R) Gold 6231 CPU @ 3.20GHz
      12x 32GB RAM DDR4 REG ECC
      12x WD Ultrastar SN200 Series NVMe SSD

      А нужна макось чтоб разрабы могли свое добро билдить

      Автору спасибо.

  4. Не являюсь разработчиком, впервые столкнулся с удаленным доступом, когда нужно было гасить комп племяшек, когда они хотели "еще немножко поиграть", а их мать орала: "да когда уже это закончится"
    На их компе в этот момент "терялась" мышь, закрывались все игры, внизу экрана появлялась фигурка звездочета, и произносила речь, типа: "Дети вы славно поиграли, мне нужно спать, и вам тоже. Спокойной ночи"! После этого комп с помощью Radmin отключался.
    ========
    Теперь (в связи с локдаунами), требуется работать из дома. Работа простая - видеомонтаж учебных курсов для студентов.
    И вот удаленный доступ к монтажке стал не просто непонятной фичей какой-то, а обычным элементом рабочего процесса.
    Конечно правильнее когда нативное разрешение экрана, а не 1920х1080 (оптимально, хорошо виден интерфейс видеоредактора), нет лагов интерфейса, мыши, но никто не выдаст исходники; нет у меня "флешки" на овер 90Терабайт видео/аудио/графических исходников, ну и отапливать квартиру монтажкой, и платить за электричество это тоже неправильно.
    В офисе обычные, и "народные" маки, все библиотеки проектов только на Apple Final Cut Pro мать его X. На самом деле реально работает на слабом, старом родном железе, на котором Premiere может только запускаться.
    Перепробовал мегатонны платных/бесплатных Remote, и на маках, для видеомонтажа (изображение+звук должны транслироваться) из-за функциональности и низкой стоимости использую Remotix и Splashtop, они реально лучшие. (об AnyDesk в курсе, нафиг)
    Под Windows реально самое крутое решение - https://parsec.app
    А под macOS только предварительная версия - https://support.parsec.app/hc/en-us/articles/4407194154253
    ========
    Благодарю за статью, как раз требуется обновить хак, так как Catalina не позволяет установить последнюю версию FCPX, но не смог обновить загрузчик под Big Sur/Monterey для ASUS PRIME X299-A, не хватает квалификации... Придется учить матчасть по гипервизорам первого типа. Просто таки открытие)

    Нашел похожее решение по виртуализации https://www.nicksherlock.com/2021/10/installing-macos-12-monterey-on-proxmox-7/ и здесь тоже народ не знает как победить тормозизм видео. Беда.

  5. Спасибо.
    По https://manjaro.site/?s=proxmox также есть касаемо установки.

  6. Заводы и фабрики остановлены , молодежи негде работать, поэтому многие ринулись изучать новую нишу - язык программирования для мобильной разработки Apple iPhone - Swift.
    Для изучения необходим хотя бы подержанный телефон iPhone (150$) и подержанный Макбук за 50 тыщ. Наверно, вместо макбука на первых порах можно установить виртуальный macos со средой разработки x-code...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar