Возникла у меня идея посмотреть на современную систему компании Apple для PC, не покупая само устройство, так как большой надобности в этом нет. Далее расскажу, как установить систему MacOS на виртуальную машину гипервизора KVM под управлением Proxmox. Пришлось немного поразбираться, так как актуального пошагового руководства не нашел.
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
В данном случае под обычным компьютером я имею ввиду то, что не относится к железу от Apple, на котором, и только на котором, должна работать MacOS. Как известно, существует проект Hackintosh, который позволяет установить macos не только на виртуальные машины, но и обычные ноутбуки и pc. Видел даже услугу под ключ, где вам на чистый ноут поставят hackintosh. Только нужно будет купить железо, которое гарантированно поддерживается.
Мне, для удовлетворения любопытства, не нужно отдельное железо, поэтому я решил поставить MacOS на виртуальную машину Proxmox. Каких-то практических целей я не преследую. Чистое любопытство, получится или нет. В пятницу сидел, дела делать не хотелось, решил поразбираться немного. В итоге у меня всё получилось, поэтому решил поделиться информацией.
Сразу скажу, что способов практического использования подобной системы не много, так как без графического ускорителя macos работает очень плохо. Вся анимация тормозит. Я не прорабатывал вопрос проброса видеокарты в виртуальную машину с macos. Мне он видится очень нетривиальным и без большой надобности разбираться с этим не захотелось. Но при этом нормально работает сеть, к системе можно подключаться по ssh, так что кому-то может и пригодится.
Я все операции проделывал на гипервизоре Proxmox 7.0, работающем на базе процессора Intel i5.
Подготовка установочного iso образа macos
Начнём с того, что подготовим 2 iso образа для установки macos:
- OpenCore.iso - качаем его из этого репозитория. Данный образ будет загрузочным. Он каким-то образом убеждает установщик самой системы, что работает на железе apple. Это его основная функция.
- 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. Нам нужно будет его сконвертировать в 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.
После создания, виртуальную машину не запускаем. Перемещаемся в консоль гипервизора и открываем конфиг виртуальной машины в директории /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
В веб интерфейсе настройки должны выглядеть примерно вот так:
Если у вас процессор не 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 Base System и жмём Enter.
Некоторое время будете видеть надкусанное яблоко с прогресс баром.
Если на предыдущих этапах всё сделали правильно, то должны увидеть утилиты macOS.
Нам надо выбрать Disk Utility. Здесь уже должна работать мышка. Выберите свой основной диск и очистите его, нажав Erase.
После того, как закончите очистку, закрывайте утилиту и переходите в главное меню. Здесь вам нужно будет выбрать Reinstall macOS.
Дальше будут разные вопросы, на которые нужно дать согласие и выбрать в качестве диска для установки системы свой единственный диск.
Начнёт процесс установки macOS, который в зависимости от вашего железа может длиться разное количество времени. В основном скорость будет зависеть от вашего жесткого диска. У меня минут 15-20 длился данный этап.
После завершения этого этапа VM автоматически перезагрузится и встретит вас подобным меню.
Нужно клавиатурой выбрать macOS Installer и установка продолжится. Пройдёт еще 10-15 минут, после которых система автоматически перезагрузится ещё раз. Далее вас встретит очередной загрузчик, где нужно выбрать ваш основной диск, на который установлена система. В моем случае это Main.
Дальше запускается стандартная преднастройка системы. Нужно будет выбрать страну, язык, логин, пароль и т.д. От использования учётной записи с Apple ID можно отказаться, так что никакие дополнительные учетные записи для работы macOS делать не нужно будет.
После завершения установки системы, рекомендую сразу же сделать себе архивную копию на всякий случай, чтобы потом заново устанавливать не пришлось.
Видео установки macOS
Мне очень сильно помогло видео на youtube на данную тему. Оно позволило быстро въехать в тему, чтобы понять этапы, по которым надо пройти.
В видео не рассмотрен момент с получением osk key. Автор взял его со своего текущего mac. А что делать тем, у кого его нет? Я не сразу понял. В итоге нашёл информацию, что на последних версиях OpenCore ключ не имеет значения. Можно указать любой, что я и сделал. После этого всё получилось.
Заключение
Что теперь делать с установленной на виртуальную машину macOS, решать вам. Было бы интересно узнать, как вам эта система пригодилась. Поделитесь в комментариях. Я подозреваю, что подобная установка будет актуальна для разработчиков, которым нужно что-то проверять в экосистеме apple. Какое-то другое применение в голову не приходит. Я, как сисадмин, никакого полезного применения для себя не нашёл.
Проблему с тормозами графики частично можно решить, если подключаться к системе через встроенный в macos Screen Sharing. Но это возможно только если у вас есть под рукой нормальный Mac. В этом случае можете использовать подобное подключение. Так же с помощью этого шаринга можно подключиться по VNC, но качество графики всё равно будет очень низкое, сопоставимое с консолью proxmox.
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Дорогой Хостя!
А что же с производительностью графики по штатному spice?
Думаю, там всё грустно будет. Хотя сам не проверял.
Доброго дня. При попытке 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
И проблема пропадала.
Мануал для нищеебов) который будут юзать хакинтош на дешевых вырвиглаз мониторах и тупящих компах)
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
А нужна макось чтоб разрабы могли свое добро билдить
Автору спасибо.
Не являюсь разработчиком, впервые столкнулся с удаленным доступом, когда нужно было гасить комп племяшек, когда они хотели "еще немножко поиграть", а их мать орала: "да когда уже это закончится"
На их компе в этот момент "терялась" мышь, закрывались все игры, внизу экрана появлялась фигурка звездочета, и произносила речь, типа: "Дети вы славно поиграли, мне нужно спать, и вам тоже. Спокойной ночи"! После этого комп с помощью 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/ и здесь тоже народ не знает как победить тормозизм видео. Беда.
Да, с графикой и тормозами простых решений нет. Я тоже тот сайт использовал, когда статью писал. Основные настройки оттуда взял.
Похоже, что решение для более качественного удаленного доступа на macOS будет разработано (скрестил пальцы)) )
https://teradici.com/resource-center/latest-news/2021/05/13/teradici-and-macstadium-collaborate-to-enable-high-performance-remote-access-for-the-mac?_ga=2.256747272.2080624881.1636282704-710838004.1636282704
https://teradici.com/teradici-cas-for-macos?_ga=2.190179496.2080624881.1636282704-710838004.1636282704
update - решение для macOS таки уже есть https://www.youtube.com/watch?v=xFs2MeTcGVs
В плейлисте подробно, на португальском техническом, о настройках Bios не серверных системных плат (минимум), Proxmox, CPU, GPU, и самой MacOS, загрузчика, др.
https://www.youtube.com/watch?v=9SsvPcQk7Mc&list=PLf_ZhL_Y4glPSp0cw9crZlAZcFzWkw-RQ
====
https://blogs.vmware.com/vsphere/2021/08/project-monterey-early-access.html - предположительно это не спроста, т.к. у VMware основной клиент корпоративный
+
Linux on Apple Silicon https://asahilinux.org/blog/
В целом интересный подход, чтобы посмотреть как выглядит макОС))
Был бы более простой и без использования виртуальной машины, было бы интересно. Поигрался и вернулся потом на привычную ОС.
Как раз благодаря виртуальной машине способ более ли менее простой. Без неё устанавливать и дольше, и сложнее.
Спасибо.
По https://manjaro.site/?s=proxmox также есть касаемо установки.
Заводы и фабрики остановлены , молодежи негде работать, поэтому многие ринулись изучать новую нишу - язык программирования для мобильной разработки Apple iPhone - Swift.
Для изучения необходим хотя бы подержанный телефон iPhone (150$) и подержанный Макбук за 50 тыщ. Наверно, вместо макбука на первых порах можно установить виртуальный macos со средой разработки x-code...
Для сборки приложений под apple - вполне вариант. Xcode, fastlane, понеслось