macos-guest-virtualbox.sh -это сценарий Bash, который создает гость MacOS Virtual Machine на VirtualBox с немодифицированными файлами установки MacOS, загруженных непосредственно с серверов Apple.
Установка по умолчанию только требует, чтобы пользователь терпеливо сидел и, менее чем в десять раз, нажмите Enter, когда его запрошен сценарием, не взаимодействуя с виртуальной машиной.
Протестировано на bash и zsh на Cygwin. Работает на MacOS, CentOS 7 и Windows на процессорах x86 с VT-X или AMD-V. Должен работать над большинством современных дистрибутов Linux.
MacOS Catalina (10.15), Mojave (10.14) и High Sierra (10.13) в настоящее время поддерживаются.
Если вы хотите стать сопровождающим этого репозитория, см. Вопрос № 645 - Содействие желанию.
Документация может быть просмотрена путем выполнения команды ./macos-guest-virtualbox.sh documentation
Большая часть сценария - это либо документация, комментарии, либо действенные сообщения об ошибках, что должно сделать скрипт простым для осмотра и понимания.
ICloud, Imessage и другие подключенные сервисы Apple требуют действительного названия устройства и серийного номера, идентификатора платы и серийного номера, а также других подлинных (или подлинных) параметров Apple. Они могут быть установлены в EFI и NVRAM, редактируя сценарий. Смотрите команду документации для получения дополнительной информации.
Сценарий по умолчанию назначает целевой размер хранилища виртуального диска 80 ГБ, который заполняется примерно на 25 ГБ на хосте при начальной установке. После завершения установки размер хранения может быть увеличен. Смотрите команду документации для получения дополнительной информации.
Следующие первичные разрешения дисплея поддерживаются MacOS на VirtualBox: 5120x2880 2880x1800 2560x1600 2560x1440 1920x1200 1600x1200 1680x1050 1440x900 1280x800 1024x768 640x480 . Смотрите команду документации для получения дополнительной информации.
Объем сценария завершает процесс установки MacOS по умолчанию на VirtualBox на поддерживаемом оборудовании. Дальнейший порядок функционирования VirtualBox или MacOS выходит за рамки этого сценария. Некоторые функции могут вести себя неожиданно, такие как поддержка USB -устройства, поддержка аудио, поддержка запроса пароля FileVault и другие функции, включая критическую функциональность.
Сценарий предназначен для аппаратного обеспечения MAC CPU X86. Гости macOS на VirtualBox, как правило, несовместимы с другими моделями процессора. Если гостевой процесс загрузки Macos висит на «Loadkernelfromstream», «Endrandomeed» или «Exitbs», см. Команду документации, касающуюся профилей ЦП VirtualBox и настройки ЦП. Некоторые модели процессора, выпущенные в 2020 году, а затем могут не запустить или заполнить установщик, и могут потребовать вручную настройку настроек процессора.
Виртуальная машина может быть обновлена до последних версий MacOS Big Sur (11) и MacOS Monterey (12) с помощью обновления программного обеспечения. Big Sur может быть установлен на месте. Монтерею может потребоваться прикрепление другого тома к виртуальной машине и выбрать громкость в качестве цели установки, в противном случае обновление склонно к сбою и входу в петлю загрузки.
После успешного создания рабочей виртуальной машины MacOS рассмотрите возможность импорта в более эффективное программное обеспечение для виртуализации или упаковывать ее для платформ управления конфигурацией для автоматического развертывания. Эти приложения для виртуализации и развертывания требуют дополнительной конфигурации, которая выходит за рамки сценария.
QEMU с KVM способен обеспечить оборудование для виртуальной машины для почти коренных работ. QEMU поддерживает формат хранения изображений виртуального диска VMDK , который можно настроить для создания сценарием. Смотрите команду документации для получения дополнительной информации. QEMU и KVM требуют дополнительной конфигурации, которая выходит за рамки сценария.
VirtualBox Native Execution Manager (NEM) - экспериментальная функция VirtualBox. VirtualBox использует NEM, когда доступ к VT-X и AMD-V блокируется программным обеспечением для виртуализации или функциями защиты от выполнения, такими как Hyper-V, WSL2, WSLG, Windows Sandbox, защита целостности памяти, защита приложений, защита учетных данных, защита устройств и другие функции и программное обеспечение. MacOS и установщик MacOS имеют проблемы с коррупцией памяти в рамках виртуализации NEM. Скрипт проверяет NEM и выходит с сообщением об ошибке, если он обнаружен.
VirtualBox может работать на WSL2 и WSLG с некоторым компиляцией модуля ядра, хотя производительность чрезвычайно низкая. В тот момент, когда требуется компиляция модуля ядра, может быть предпочтительнее использовать QEMU/KVM на WSL2 и WSLG, что на порядок меньше, чем VirtualBox на WSL2 и WSLG. WSL2, WSLG, QEMU и KVM требуют дополнительной конфигурации, которая выходит за рамки сценария.
Гость MacOS VirtualBox загружен без дополнительных загрузчиков, но он совместим с OpenCore. OpenCore требует дополнительной конфигурации, которая выходит за рамки сценария.
MacOS может не поддерживать какие-либо встроенные аудио контроллеры VirtualBox. Bootloader OpenCore может загружать открытый источник или встроенные драйверы аудио в VirtualBox, предоставляя конфигурацию для STAC9221 (Intel HD Audio) или Sigmatel Stac9700,83,84 (ICH AC97).
VirtualBox не предоставляет edid для своего виртуального дисплея, а macOS не позволяет масштабировать дисплея (высокий PPI) без edid. Bootloader OpenCore может вводить edid, который позволяет масштабировать отображение.
Реализация VirtualBox EFI не загружает должным образом приглашение пароля шифрования FileVault полного диска при загрузке. Bootloader OpenCore может загрузить приглашение пароля с помощью параметров ProvideConsoleGop , установленного true . См. Пример config.plist
Следующие зависимости должны быть доступны через менеджер пакетов:
bash coreutils gzip unzip wget xxd dmg2img virtualbox
Следующие дополнительные пакеты обеспечивают оптическое распознавание символов, которое уменьшает необходимое взаимодействие со сценарием:
tesseract-ocr tesseract-ocr-eng
Поддерживаемые версии:
Bash ≥ 4,3, в Windows, пробегая через Cygwin или WSL "1", см. NEMcoreutils ≥ 8,22, GNU gzip ≥ 1,5, Info-Zip unzip ≥ V6,0, GNU wget ≥ 1,14, xxd ≥ 1,11dmg2img ≥ 1,6,5, на Cygwin пакет недоступен через диспетчер пакетов, поэтому сценарий загружает его автоматически.tesseract-ocr ≥ 4