macos-guest-virtualbox.shは、Appleサーバーから直接ダウンロードされた未修正のMacOSインストールファイルを備えたVirtualBoxでMacOS Virtual Machine Guestを作成するBASHスクリプトです。
デフォルトのインストールでは、ユーザーが忍耐強く座る必要があり、10回未満で、仮想マシンと対話することなく、スクリプトによってプロンプトされたときにEnterを押します。
Cygwinのbashとzshでテストされました。 VT-XまたはAMD-Vを搭載したX86 CPUのMACOS、CENTOS 7、およびWindowsで動作します。ほとんどの最新のLinuxディストリビューションで作業する必要があります。
Macos Catalina(10.15)、Mojave(10.14)、およびHigh Sierra(10.13)が現在サポートされています。
このリポジトリのメンテナーになりたい場合は、Issue#645 -Mainterer Wantedを参照してください。
ドキュメントは、コマンドを実行することで表示できます./macos-guest-virtualbox.sh documentation
スクリプトの大部分は、ドキュメント、コメント、または実用的なエラーメッセージのいずれかであり、スクリプトを検査および理解するために簡単にする必要があります。
iCloud、iMessage、およびその他の接続されたAppleサービスには、有効なデバイス名とシリアル番号、ボードIDとシリアル番号、およびその他の本物の(または本物のような)Appleパラメーターが必要です。これらは、スクリプトを編集することにより、EFIとNVRAMで設定できます。詳細については、ドキュメントコマンドを参照してください。
スクリプトはデフォルトでは、80GBのターゲット仮想ディスクストレージサイズを割り当てます。これは、初期インストール時にホストで約25GBに入力されます。インストールが完了すると、ストレージサイズが大きくなる場合があります。詳細については、ドキュメントコマンドを参照してください。
次の一次ディスプレイ解像度は、VirtualBoxのMACOによってサポートされています: 5120x2880 2880x1800 2560x1600 2560x1440 1920x1200 1600x1200 1680x1050 1440x900 1280x800 1024x768 640x480 。詳細については、ドキュメントコマンドを参照してください。
スクリプトの範囲は、サポートされているハードウェアでVirtualBoxにデフォルトのMACOSインストールプロセスを完了しています。 VirtualBoxまたはMacOSのさらなる機能順序は、このスクリプトの範囲を超えています。 USBデバイスサポート、オーディオサポート、FileVaultブートパスワードプロンプトサポート、および重要な機能を含むその他の機能など、一部の機能は予期せず動作する場合があります。
このスクリプトは、x86 CPU Macハードウェア用に設計されています。 VirtualBoxのMacOSゲストは、一般に他のCPUモデルと互換性がありません。ゲストMacOSブートプロセスが「LoadKernelfRomStream」、「EndrandomSeed」、または「ExitBS」に掛かっている場合は、VirtualBox CPUプロファイルとCPUID設定に関するドキュメントコマンドを参照してください。 2020年以降にリリースされた一部のCPUモデルは、インストーラーの起動または完了に失敗する可能性があり、CPUID設定を手動で調整する必要がある場合があります。
仮想マシンは、ソフトウェアアップデートを通じて、最新のMacOS Big Sur(11)およびMacos Monterey(12)バージョンにアップグレードできます。 Big Surが施設内に設置される場合があります。モントレーは、別のボリュームを仮想マシンに接続し、インストールターゲットとしてボリュームを選択する必要がある場合があります。そうしないと、アップグレードが故障してブートループを入力する傾向があります。
動作中のMacOS仮想マシンの作成を正常に作成した後、よりパフォーマンスのある仮想化ソフトウェアにインポートするか、自動展開用の構成管理プラットフォーム用にパッケージ化することを検討してください。これらの仮想化および展開アプリケーションには、スクリプトの範囲を超えた追加の構成が必要です。
KVMを搭載したQEMUは、ネイティブに近いパフォーマンスのために仮想マシンハードウェアパススルーを提供できます。 QEMUは、 VMDK仮想ディスクイメージストレージ形式をサポートしています。これは、スクリプトによって作成されるように構成できます。詳細については、ドキュメントコマンドを参照してください。 QEMUとKVMには、スクリプトの範囲を超えた追加の構成が必要です。
VirtualBox Native Execution Manager(NEM)は、実験的なVirtualBox機能です。 VT-XおよびAMD-Vへのアクセスが仮想化ソフトウェアまたはHyper-V、WSL2、WSLG、Windows Sandbox、Memory Integrity Protection、Application Guard、Credential Guard、Device Guard、その他の機能とソフトウェアなどの実行保護機能によってブロックされると、VirtualBoxはNEMを使用します。 MACOSとMACOSインストーラーは、NEM仮想化の下でメモリ腐敗の問題を抱えています。スクリプトはNEMをチェックし、検出された場合はエラーメッセージで終了します。
VirtualBoxは、いくつかのカーネルモジュールコンパイルでWSL2とWSLGで実行できますが、パフォーマンスは非常に低いです。カーネルモジュールのコンパイルが必要な時点では、WSL2およびWSLGでQEMU/KVMを使用することが望ましい場合があります。 WSL2、WSLG、QEMU、およびKVMには、スクリプトの範囲を超えた追加の構成が必要です。
MacOS VirtualBoxゲストは追加のブートローダーなしでロードされますが、OpenCoreと互換性があります。 OpenCoreには、スクリプトの範囲を超えた追加の構成が必要です。
MacOSは、組み込みのVirtualBoxオーディオコントローラーをサポートできない場合があります。ブートローダーのOpenCoreは、VirtualBoxにオープンソースまたはビルトインオーディオドライバーをロードできる場合があり、STAC9221(Intel HDオーディオ)またはSigmatel STAC9700,83,84(ICH AC97)の構成を提供します。
VirtualBoxは仮想ディスプレイ用のEdidを供給せず、MacOSはEdidなしでディスプレイスケーリング(High PPI)を有効にしません。ブートローダーのOpenCoreは、ディスプレイスケーリングを可能にするエディッドを注入できます。
VirtualBox EFIの実装では、ブート時にFileVaultフルディスク暗号化パスワードプロンプトを適切にロードしません。 Bootloader OpenCoreは、PRAMETER ProvideConsoleGopを使用してパスワードプロンプトをtrueにロードできます。 sample config.plistを参照してください
次の依存関係は、パッケージマネージャーを通じて利用できるようにする必要があります。
bash coreutils gzip unzip wget xxd dmg2img virtualbox
次のオプションパッケージは、スクリプトとの必要な相互作用を減らす光学文字認識を提供します。
tesseract-ocr tesseract-ocr-eng
サポートされているバージョン:
Bash 、windowsでcygwinまたはwsl "1"を介して実行します。Nemを参照してくださいcoreutils 、 gzip 、Info- unzip 、 wget 、 xxddmg2img 、Cygwinでは、パッケージはパッケージマネージャーを介して利用できないため、スクリプトは自動的にダウンロードします。tesseract-ocr