macos-guest-virtualbox.sh adalah skrip bash yang membuat tamu mesin virtual macOS di VirtualBox dengan file instalasi macOS yang tidak dimodifikasi yang diunduh langsung dari server Apple.
Instalasi default hanya mengharuskan pengguna untuk duduk dengan sabar dan, kurang dari sepuluh kali, tekan Enter ketika diminta oleh skrip, tanpa berinteraksi dengan mesin virtual.
Diuji pada bash dan zsh di Cygwin. Bekerja pada MacOS, CentOS 7, dan Windows pada X86 CPU dengan VT-X atau AMD-V. Harus bekerja pada sebagian besar distro Linux modern.
MacOS Catalina (10.15), Mojave (10.14), dan High Sierra (10.13) saat ini didukung.
Jika Anda ingin menjadi pemelihara repositori ini, silakan lihat masalah #645 - pengelola yang diinginkan.
Dokumentasi dapat dilihat dengan mengeksekusi perintah ./macos-guest-virtualbox.sh documentation
Mayoritas skrip adalah dokumentasi, komentar, atau pesan kesalahan yang dapat ditindaklanjuti, yang seharusnya membuat skrip langsung untuk memeriksa dan memahami.
ICloud, iMessage, dan layanan Apple yang terhubung lainnya memerlukan nama perangkat dan nomor seri yang valid, ID papan dan nomor seri, dan parameter Apple asli (atau seperti asli) lainnya. Ini dapat diatur dalam EFI dan NVRAM dengan mengedit skrip. Lihat perintah dokumentasi untuk informasi lebih lanjut.
Script secara default memberikan ukuran penyimpanan disk virtual target 80GB, yang dihuni sekitar 25GB pada host pada instalasi awal. Setelah instalasi selesai, ukuran penyimpanan dapat ditingkatkan. Lihat perintah dokumentasi untuk informasi lebih lanjut.
Resolusi tampilan primer berikut ini didukung oleh MacOS di VirtualBox: 5120x2880 2880x1800 2560x1600 2560x1440 1920x1200 1600x1200 1680x1050 1440x900 1280x800 1024x768 640x480 . Lihat perintah dokumentasi untuk informasi lebih lanjut.
Lingkup skrip sedang menyelesaikan proses instalasi macOS default di VirtualBox pada perangkat keras yang didukung. Urutan yang berfungsi lebih lanjut dari VirtualBox atau MacOS berada di luar ruang lingkup skrip ini. Beberapa fitur mungkin berperilaku tak terduga, seperti dukungan perangkat USB, dukungan audio, dukungan kata sandi boot filevault, dan fitur lainnya, termasuk fungsionalitas kritis.
Skrip ini dirancang untuk perangkat keras Mac CPU x86. Tamu MacOS di VirtualBox umumnya tidak kompatibel dengan model CPU lainnya. Jika proses boot macOS tamu tergantung pada "LoadKernelFromstream", "Endrandomseed", atau "Exitbs", lihat perintah dokumentasi mengenai profil CPU VirtualBox dan pengaturan CPUID. Beberapa model CPU yang dirilis pada tahun 2020 dan kemudian mungkin gagal memulai atau menyelesaikan pemasang, dan mungkin memerlukan menyesuaikan pengaturan CPUID secara manual.
Mesin virtual dapat ditingkatkan ke versi MacOS Big Sur (11) dan MacOS Monterey (12) terbaru melalui pembaruan perangkat lunak. Big Sur dapat dipasang di tempat. Monterey mungkin mengharuskan melampirkan volume lain ke mesin virtual dan memilih volume sebagai target instalasi, jika tidak, peningkatan rentan terhadap kegagalan dan memasuki loop boot.
Setelah berhasil membuat mesin virtual MacOS yang berfungsi, pertimbangkan mengimpornya ke perangkat lunak virtualisasi yang lebih berkinerja, atau mengemasnya untuk platform manajemen konfigurasi untuk penyebaran otomatis. Aplikasi virtualisasi dan penyebaran ini memerlukan konfigurasi tambahan yang berada di luar ruang lingkup skrip.
QEMU dengan KVM mampu menyediakan passthrough perangkat keras mesin virtual untuk kinerja hampir asli. QEMU mendukung format penyimpanan gambar disk virtual VMDK , yang dapat dikonfigurasi untuk dibuat oleh skrip. Lihat perintah dokumentasi untuk informasi lebih lanjut. QEMU dan KVM memerlukan konfigurasi tambahan yang berada di luar ruang lingkup skrip.
VirtualBox Native Execution Manager (NEM) adalah fitur VirtualBox eksperimental. VirtualBox menggunakan NEM ketika akses ke VT-X dan AMD-V diblokir oleh perangkat lunak virtualisasi atau fitur perlindungan eksekusi seperti Hyper-V, WSL2, WSLG, Windows Sandbox, Perlindungan Integritas Memori, Penjaga Aplikasi, Penjaga Kredensial, Penjaga Perangkat, dan Fitur dan Perangkat Lunak lainnya. MacOS dan pemasang MacOS memiliki masalah korupsi memori di bawah virtualisasi NEM. Script memeriksa NEM dan keluar dengan pesan kesalahan jika terdeteksi.
VirtualBox dapat berjalan di WSL2 dan WSLG dengan beberapa kompilasi modul kernel, meskipun kinerja sangat rendah. Pada titik bahwa kompilasi modul kernel diperlukan, mungkin lebih disukai untuk menggunakan QEMU/KVM pada WSL2 dan WSLG, yang merupakan urutan besarnya lebih cepat daripada VirtualBox pada WSL2 dan WSLG. WSL2, WSLG, QEMU, dan KVM memerlukan konfigurasi tambahan yang berada di luar ruang lingkup skrip.
MacOS VirtualBox Guest dimuat tanpa bootloader tambahan, tetapi kompatibel dengan OpenCore. OpenCore membutuhkan konfigurasi tambahan yang berada di luar ruang lingkup skrip.
MacOS tidak dapat mendukung pengontrol audio VirtualBox bawaan. OpenCore bootloader mungkin dapat memuat driver audio sumber terbuka atau bawaan di VirtualBox, menyediakan konfigurasi untuk STAC9221 (Audio HD Intel) atau tersedia tersedia.
VirtualBox tidak menyediakan EDID untuk tampilan virtualnya, dan macOS tidak memungkinkan penskalaan tampilan (PPI tinggi) tanpa EDID. OpenCore bootloader dapat menyuntikkan EDID yang memungkinkan penskalaan tampilan.
Implementasi EFI VirtualBox tidak memuat dengan benar prompt kata sandi Enkripsi Disk Fulvault saat boot. OpenCore bootloader dapat memuat prompt kata sandi dengan parameter ProvideConsoleGop diatur ke true . Lihat sampel config.plist
Ketergantungan berikut harus tersedia melalui manajer paket:
bash coreutils gzip unzip wget xxd dmg2img virtualbox
Paket opsional berikut memberikan pengenalan karakter optik yang mengurangi interaksi yang diperlukan dengan skrip:
tesseract-ocr tesseract-ocr-eng
Versi yang Didukung:
Bash GNU ≥ 4.3, pada windows dijalankan melalui cygwin atau wsl "1", lihat NEMcoreutils GNU ≥ 8,22, GNU gzip ≥ 1,5, Info-Zip unzip ≥ V6.0, GNU wget ≥ 1,14, xxd ≥ 1,11dmg2img ≥ 1.6.5, di Cygwin Paket tidak tersedia melalui Paket Manajer sehingga skrip mengunduhnya secara otomatis.tesseract-ocr ≥ 4