Mac OS getting

Возникла потребность общения с Mac OS. Несмотря на то, что дистрибутив из семейства Unix, свободного и простого доступа к нему нет. Возможные варианты:

  • Установка Mac OS на виртуальную машину
    Непроизводительно, неудобно, универсально…

    В данный момент решено остановиться именно на этом варианте. Установка производится в Ubuntu 21.10. После завершения установки, планируется использовать ВМ как под Ubuntu, так и под Windows.

Т.к. Mac OS, это точно не про работу в виде сервиса, то установка в VMWare, Hyper-V, Xen, KVM кажется нецелесообразной. Тогда как в VirtualBox требуется минимальный уровень подготовки, а виртуальной машиной можно будет пользоваться в любой ОС, куда способен установиться VirtualBox.

Получение дистрибутива и установка VirtualBox

mkdir ./virtualbox-distrib
cd ./virtualbox-distrib
wget https://download.virtualbox.org/virtualbox/6.1.26/virtualbox-6.1_6.1.26-145957~Ubuntu~eoan_amd64.deb
sudo dpkg -i virtualbox*.deb

Исправление нарушенных зависимостей

sudo apt -f install -y

Получение и установка Extension Pack

wget https://download.virtualbox.org/virtualbox/6.1.26/Oracle_VM_VirtualBox_Extension_Pack-6.1.26-145957.vbox-extpack
VBoxManage extpack install ./Oracle_VM_VirtualBox_Extension_Pack-6.1.26-145957.vbox-extpack

Установка необходимых пакетов и создание ВМ с macOS

sudo apt install -y dmg2img
mkdir /mnt/DATA/VirtualMachine/macOS
cd /mnt/DATA/VirtualMachine/macOS
wget https://raw.githubusercontent.com/myspaghetti/macos-guest-virtualbox/master/macos-guest-virtualbox.sh
sed -i 's/storage_size=80000/storage_size=100000/' ./macos-guest-virtualbox.sh
bash -i ./macos-guest-virtualbox.sh
После запуска скрипта установки следует обратить внимание на сообщение:

The script interacts with the virtual machine twice, please do not interact with the virtual machine manually before the script is finished.

Т.е. когда появятся окна “Language”, “Utilities”, “Terminal” установщика Mac OS, в терминале Ubuntu необходимо нажать Enter для продолжения работы скрипта (2 прохода по 3 окна). Первое взаимодействие с окном ВМ происходит только после завершения работы скрипта.

Удаление временных файлов после выключения ВМ

./macos-guest-virtualbox.sh prompt_delete_temporary_files

Смена разрешения экрана и коэффициента масштабирования ВМ

VBoxManage setextradata macOS VBoxInternal2/EfiGraphicsResolution 1600x900
VBoxManage setextradata macOS GUI/ScaleFactor 2

Включение аудио

VBoxManage modifyvm macOS --audio pulse
VBoxManage modifyvm macOS --audioin on
VBoxManage modifyvm macOS --audioout on

Создание снимка ВМ

VBoxManage snapshot "macOS" take "pre 10.15.7" --description "Final stage of macOS Catalina installation"

Установка VirtualBox Guest Additions в Mac OS

  • После входа в Mac OS необходимо запустить терминал, с помощью которого включить “Recovery Mode” и перезагрузить систему:
sudo nvram "recovery-boot-mode=unused"
sudo reboot
  • После входа в “Recovery Mode” необходимо запустить терминал из раздела Utilities, с помощью которого отключить “System Integrity Protection”, установить “Developer ID Сertificate”, отключить “Recovery Mode” и перезагрузить систему:
csrutil disable
spctl kext-consent add VB5E2TV963
nvram -d recovery-boot-mode
reboot
  • После входа в Mac OS необходимо запустить терминал, с помощью которого изменить права доступа в каталог с расширениями:
sudo mount -uw /
sudo chown :admin /System/Library/Extensions/
sudo chmod 775 /System/Library/Extensions/
  • Смониторвать диск с VirtualBox Guest Additions и запустить установщик.
  • После завершения установки VirtualBox Guest Additions необходимо запустить терминал, с помощью которого изменить права доступа в каталог с разрешениями, включить “Recovery Mode” и перезагрузить систему:
sudo chown :wheel /System/Library/Extensions/
sudo chmod 755 /System/Library/Extensions/
sudo nvram "recovery-boot-mode=unused"
sudo reboot
  • После входа в “Recovery Mode” необходимо запустить терминал из раздела Utilities, с помощью которого включить “System Integrity Protection”, отключить “Recovery Mode” и перезагрузить систему:
csrutil enable
nvram -d recovery-boot-mode
reboot

Включение буфера обмена и Drag and Drop

VBoxManage modifyvm macOS --clipboard-mode bidirectional
VBoxManage modifyvm macOS --draganddrop bidirectional

Запуск ВМ в Windows

Несмотря на то, что VirtualBox отлично работает совместно с Hyper-V, Mac OS в такой конфигурации запускаться отказывается – загрузка прерывается с “Kernel Panic”. Чтобы этого избежать, необходимо отключить Hyper-V и перезагрузить систему:

bcdedit /set hypervisorlaunchtype off
shutdown -r -f