Qonfused / OSX-Hyper-V

OpenCore configuration for running macOS on Windows Hyper-V.
https://github.com/Qonfused/OSX-Hyper-V
BSD 3-Clause "New" or "Revised" License
215 stars 11 forks source link
apple hackintosh hyper-v hyperv macos oce-build opencore osx

OSX-Hyper-V

Graphic of Hyper-V Window
A Hackintosh project implementing the MacHyperVSupport package for Windows Hyper-V, built on top of the OpenCore bootloader and OCE-Build build manager.

![License](https://img.shields.io/badge/⚖_License-BSD_3_Clause-lightblue?labelColor=3f4551) ![SemVer](https://img.shields.io/badge/SemVer-v0.1.0-important?logo=SemVer&labelColor=3f4551) ![macOS Versions](https://img.shields.io/badge/macOS%20Versions-10.4%20to%2015-important?labelColor=3f4551) ![OpenCore](https://img.shields.io/badge/OpenCore-1.0.2-0c7dbe?logo=Osano&logoColor=0298e1&labelColor=3f4451) ![OCE Build](https://github.com/Qonfused/OSX-Hyper-V/actions/workflows/oce-build.yml/badge.svg?branch=main)

⚡Quick Links

⚙️ Current Progress

Refer to the CHANGELOG or SemVer board for changes implemented per release version.

macOS Version Support:

[!IMPORTANT] Beta versions of macOS may require the boot arg -lilubetaall to be set in the boot-args section of your config.plist. This is needed to allow Lilu and all dependent plugins to load on macOS versions that are not yet officially supported.

[!NOTE] Installations of OS X Tiger (10.4) to Snow Leopard (10.6) are not possible directly. It is recommended to first install a newer version of macOS and restore to the desired version using a disk image provided by Acidanthera.

You can also find other past InstallAssistant.dmg archives on Archive.org.

Supported versions below include macOS versions 10.4 to 15.0.

macOS Version Status Minimum version Maximum version
Sequoia Supported. (None) (Latest)
Sonoma Supported. (None) (Latest)
Ventura Supported. (None) (Latest)
Monterey Supported. (None) (Latest)
Big Sur Supported. (None) (Latest)
Catalina Supported. (None) (Latest)
Mojave Supported. (None) (Latest)
High Sierra Supported. (None) (Latest)
Sierra Supported. (None) (Latest)
El Capitan Supported. (None) (Latest)
Yosemite Supported. (None) (Latest)
Mavericks Supported. (None) (Latest)
Mountain Lion Supported. (None) (Latest)
Lion Supported. (None) (Latest)
Snow Leopard 🚧 Supported. (None) (Retail)
Leopard 🚧 Supported. (None) (Retail)
Tiger 🚧 Supported. (None) (Retail)

Refer to HyperV-versions.md for a complete breakdown of macOS compatibility with Windows Client, Server, and Hyper-V versions.

✨ Getting Started

If you opt to use one of the pre-built releases from this repository, you can skip to 3. Setting up Hyper-V.

1. Clone this repository using Git

To clone this repository, run the below command:

git clone https://github.com/Qonfused/OSX-Hyper-V
cd OSX-Hyper-V

2. Build this repository using OCE-Build

This project uses OCE-Build to automatically version and build this repository's EFI.

[!IMPORTANT] To run powershell scripts, you may need to set your execution policy using:

Set-ExecutionPolicy RemoteSigned

To build this project's EFI, run one of the below commands at the root of the project:

# Build for macOS 10.8 and newer
.\scripts\build.ps1

# Build for macOS 10.7 and older
.\scripts\build.ps1 --legacy

# Build for macOS 10.4 - 10.5, 10.6 if running in 32-bit mode
.\scripts\build.ps1 --legacy --32-bit

3. Setting up Hyper-V

[!NOTE] MacHyperVSupport requires Windows Server 2012 R2 / Windows 8.1 or higher. Windows Server 2016 is currently unsupported.

First check that you've enabled Hyper-V before proceeding.

[!TIP] After building or downloading this project's EFI, you can run the create-virtual-machine.ps1 script to quickly setup a new virtual-machine.

For example, from a local build of this project:

# Use the latest version of macOS (cpu=2 cores, ram=8 GB, size=50 GB)
.\dist\Scripts\create-virtual-machine.ps1 -name "My New Virtual Machine"

# Use an older version of macOS (cpu=4 cores, ram=16 GB, size=128 GB)
.\dist\Scripts\create-virtual-machine.ps1 -name "Catalina" -version 10.15 -cpu 4 -ram 16 -size 128

or from a downloaded release:

cd ~/Downloads/EFI-1.0.0-64-bit-DEBUG # Scripts are packaged with releases

# Use the latest version of macOS (cpu=2 cores, ram=8 GB, size=50 GB)
.\Scripts\create-virtual-machine.ps1 -name "My New Virtual Machine"

# Use an older version of macOS (cpu=4 cores, ram=16 GB, size=128 GB)
.\Scripts\create-virtual-machine.ps1 -name "Catalina" -version 10.15 -cpu 4 -ram 16 -size 128

Below outline the steps to manually create a new virtual machine for macOS:


i. Create a boot VHDX disk

Format a small (1GB) FAT32 disk initialized with GPT (GUID partition table) and mount it. This will serve as the boot partition for your macOS virtual machine and contain the OpenCore EFI folder.

Move the EFI folder (the whole folder) to the root of the VHDX disk.


ii. Create a macOS installer/recovery VHDX disk

Create or add an installer disk with either of the below methods:


iii. Creating the macOS Virtual Machine

In the Hyper-V Manager, navigate to Action > New > Virtual Machine. 3-New-VM

Configure the below options while going through the wizard:

Once created, right click on your new virtual-machine (under the 'Virtual Machines' section of the window), and select Settings. 3-VM-Settings

Then configure the below options under the Hardware section:


4. Using this EFI with macOS

Installation of macOS should fall in line with the Installation Process section of the Dortania Guide. Some additional post-install sections are provided to facilitate with Hyper-V (or project) specifics.

Limitations

There are some known limitations with the base configuration for Hyper-V:

[!NOTE] DDA is only available for Windows Server and Microsoft Hyper-V Server versions 2016 and newer. Windows Pro and Windows Enterprise users have no support for DDA with Hyper-V.

iServices

To enable iServices functionality, you can:

  1. Generate SMBIOS data with GenSMBIOS
    • Follow the Dortania iServices guide to generate new SMBIOS data for your machine.
  2. For local builds of this EFI, patch existing SMBIOS data automatically.
    • This is automatically patched each time you run a build using the .serialdata file (using existing data or data generated by GenSMBIOS).
    • Refer to the .serialdata.example file for an example of the entry format.

🔥 Contributing

Contributions of any size to this project are always welcome!

Refer to CONTRIBUTING.md for instructions (and tips) on making contributions to this project.

⚖️ License

BSD 3-Clause License.

🌟 Credits