From c4f5b0542295f621433026a25684758a9ad7b963 Mon Sep 17 00:00:00 2001 From: Jack <31696646+myspaghetti@users.noreply.github.com> Date: Sat, 4 Jul 2020 10:34:11 +0300 Subject: [PATCH 1/5] Update README.md --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 529c648..dceaaf8 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ## Push-button installer of macOS on VirtualBox -[`macos-guest-virtualbox.sh`](https://raw.githubusercontent.com/myspaghetti/macos-guest-virtualbox/master/macos-guest-virtualbox.sh) is a Bash script that creates a macOS virtual machine guest on VirtualBox with unmodified macOS installation files downloaded directly from Apple servers. Tested on [Cygwin](https://cygwin.com/install.html). Works on macOS, Windows Subsystem for Linux, and CentOS 7. Should work on most modern Linux distros. +[`macos-guest-virtualbox.sh`](https://raw.githubusercontent.com/myspaghetti/macos-guest-virtualbox/master/macos-guest-virtualbox.sh) is a Bash script that creates a macOS virtual machine guest on VirtualBox with unmodified macOS installation files downloaded directly from Apple servers. Tested on [Cygwin](https://cygwin.com/install.html). Works on macOS, CentOS 7, and Windows. Should work on most modern Linux distros. A default install only requires the user to sit patiently and, less than ten times, press enter when prompted by the script, without interacting with the virtual machine. @@ -52,12 +52,16 @@ VirtualBox does not supply an EDID for its virtual display, and macOS does not e The VirtualBox EFI implementation does not properly load the FileVault full disk encryption password prompt upon boot. The bootloader [OpenCore](https://github.com/acidanthera/OpenCorePkg/releases/tag/0.5.8) is able to load the password prompt with the parameter `ProvideConsoleGop` set to `true`. See sample [config.plist](https://github.com/myspaghetti/macos-virtualbox/files/4640669/config.plist.txt). +### VirtualBox Native Execution Manager (NEM) + +The VirtualBox Native Execution Manager (NEM) is an experimental VirtualBox feature. VirtualBox uses NEM when access to VT-x and AMD-V is blocked by virtualization software or execution protection features such as Hyper-V, Windows Sandbox, WSL2, memory integrity protection, and other software. macOS and the macOS installer have memory corruption issues under NEM virtualization. The script checks for NEM and gives an error message if it is detected. + ## Dependencies All the dependencies should be available through a package manager: `bash` `coreutils` `gzip` `unzip` `wget` `xxd` `dmg2img` `virtualbox` * [VirtualBox](https://www.virtualbox.org/wiki/Downloads) ≥ 6.1.6 with Extension Pack, though versions as low as 5.2 may work. -* GNU `Bash` ≥ 4.3, on Windows run through [Cygwin](https://cygwin.com/install.html) or WSL. +* GNU `Bash` ≥ 4.3, on Windows run through [Cygwin](https://cygwin.com/install.html) or WSL - see [NEM](#VirtualBox-Native-Execution-Manager-(NEM\)) * GNU `coreutils` ≥ 8.22, GNU `gzip` ≥ 1.5, Info-ZIP `unzip` ≥ v6.0, GNU `wget` ≥ 1.14, `xxd` ≥ 1.7 * `dmg2img` ≥ 1.6.5, on Cygwin the package is not available through the package manager so the script downloads it automatically. From 5b54cdc38b75c2ac0facd6ae09babe069bf4c4cb Mon Sep 17 00:00:00 2001 From: Jack <31696646+myspaghetti@users.noreply.github.com> Date: Sat, 4 Jul 2020 10:35:07 +0300 Subject: [PATCH 2/5] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dceaaf8..82d86ef 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,6 @@ All the dependencies should be available through a package manager: `bash` `coreutils` `gzip` `unzip` `wget` `xxd` `dmg2img` `virtualbox` * [VirtualBox](https://www.virtualbox.org/wiki/Downloads) ≥ 6.1.6 with Extension Pack, though versions as low as 5.2 may work. -* GNU `Bash` ≥ 4.3, on Windows run through [Cygwin](https://cygwin.com/install.html) or WSL - see [NEM](#VirtualBox-Native-Execution-Manager-(NEM\)) +* GNU `Bash` ≥ 4.3, on Windows run through [Cygwin](https://cygwin.com/install.html) or WSL - see [NEM](#virtualbox-native-execution-manager-nem) * GNU `coreutils` ≥ 8.22, GNU `gzip` ≥ 1.5, Info-ZIP `unzip` ≥ v6.0, GNU `wget` ≥ 1.14, `xxd` ≥ 1.7 * `dmg2img` ≥ 1.6.5, on Cygwin the package is not available through the package manager so the script downloads it automatically. From 4b02d4e9072501d4387e1ddd690007a99b7ae720 Mon Sep 17 00:00:00 2001 From: Jack <31696646+myspaghetti@users.noreply.github.com> Date: Sat, 4 Jul 2020 10:36:25 +0300 Subject: [PATCH 3/5] Update README.md --- README.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 82d86ef..8bfb62e 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,16 @@ After successfully creating a working macOS virtual machine, consider importing QEMU with KVM is capable of providing virtual machine hardware passthrough for near-native performance. QEMU supports the `VMDK` virtual disk image storage format, which can be configured to be created by the script. See the [documentation command](#documentation) for further information. QEMU and KVM require additional configuration that is beyond the scope of the script. +#### VirtualBox Native Execution Manager (NEM) + + + +The VirtualBox Native Execution Manager (NEM) is an experimental VirtualBox feature. VirtualBox uses NEM when access to VT-x and AMD-V is blocked by virtualization software or execution protection features such as Hyper-V, Windows Sandbox, WSL2, memory integrity protection, and other software. macOS and the macOS installer have memory corruption issues under NEM virtualization. The script checks for NEM and gives an error message if it is detected. + + + + + ### Bootloaders The macOS VirtualBox guest is loaded without extra bootloaders, but it is compatible with [OpenCore](https://github.com/acidanthera/OpenCorePkg/releases). OpenCore requires additional configuration that is beyond the scope of the script. @@ -52,10 +62,6 @@ VirtualBox does not supply an EDID for its virtual display, and macOS does not e The VirtualBox EFI implementation does not properly load the FileVault full disk encryption password prompt upon boot. The bootloader [OpenCore](https://github.com/acidanthera/OpenCorePkg/releases/tag/0.5.8) is able to load the password prompt with the parameter `ProvideConsoleGop` set to `true`. See sample [config.plist](https://github.com/myspaghetti/macos-virtualbox/files/4640669/config.plist.txt). -### VirtualBox Native Execution Manager (NEM) - -The VirtualBox Native Execution Manager (NEM) is an experimental VirtualBox feature. VirtualBox uses NEM when access to VT-x and AMD-V is blocked by virtualization software or execution protection features such as Hyper-V, Windows Sandbox, WSL2, memory integrity protection, and other software. macOS and the macOS installer have memory corruption issues under NEM virtualization. The script checks for NEM and gives an error message if it is detected. - ## Dependencies All the dependencies should be available through a package manager: From 97fb738d561d99e5089f028c4071be5ef3c7278c Mon Sep 17 00:00:00 2001 From: Jack <31696646+myspaghetti@users.noreply.github.com> Date: Sat, 4 Jul 2020 10:37:09 +0300 Subject: [PATCH 4/5] Update README.md --- README.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/README.md b/README.md index 8bfb62e..6b0d4cb 100644 --- a/README.md +++ b/README.md @@ -38,14 +38,8 @@ QEMU with KVM is capable of providing virtual machine hardware passthrough for n #### VirtualBox Native Execution Manager (NEM) - - The VirtualBox Native Execution Manager (NEM) is an experimental VirtualBox feature. VirtualBox uses NEM when access to VT-x and AMD-V is blocked by virtualization software or execution protection features such as Hyper-V, Windows Sandbox, WSL2, memory integrity protection, and other software. macOS and the macOS installer have memory corruption issues under NEM virtualization. The script checks for NEM and gives an error message if it is detected. - - - - ### Bootloaders The macOS VirtualBox guest is loaded without extra bootloaders, but it is compatible with [OpenCore](https://github.com/acidanthera/OpenCorePkg/releases). OpenCore requires additional configuration that is beyond the scope of the script. From 4146e863bfdfd3e341628d960a45767f54fc994b Mon Sep 17 00:00:00 2001 From: Jack <31696646+myspaghetti@users.noreply.github.com> Date: Sat, 4 Jul 2020 10:38:16 +0300 Subject: [PATCH 5/5] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6b0d4cb..572c609 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ QEMU with KVM is capable of providing virtual machine hardware passthrough for n #### VirtualBox Native Execution Manager (NEM) -The VirtualBox Native Execution Manager (NEM) is an experimental VirtualBox feature. VirtualBox uses NEM when access to VT-x and AMD-V is blocked by virtualization software or execution protection features such as Hyper-V, Windows Sandbox, WSL2, memory integrity protection, and other software. macOS and the macOS installer have memory corruption issues under NEM virtualization. The script checks for NEM and gives an error message if it is detected. +The VirtualBox Native Execution Manager (NEM) is an experimental VirtualBox feature. VirtualBox uses NEM when access to VT-x and AMD-V is blocked by virtualization software or execution protection features such as Hyper-V, Windows Sandbox, WSL2, memory integrity protection, and other software. macOS and the macOS installer have memory corruption issues under NEM virtualization. The script checks for NEM and exits with an error message if it is detected. ### Bootloaders