-
Notifications
You must be signed in to change notification settings - Fork 1.1k
macOS on VirtualBox on WSLg #525
Comments
This comment has been minimized.
This comment has been minimized.
WSL2 uses Hyper-V which blocks VirtualBox from accessing VT-x/AMD-V. macOS guests on VirtualBox require VT-x/AMD-V. The script only works on WSL2/WSLg if you enable nested virtualization and load the |
This comment has been minimized.
This comment has been minimized.
Right now I believe Oracle will not support VirtualBox on WSL2/WSLg, and I assume the extremely limited performance is here to stay, so the script isn't officially supported on WSL2/WSLg. I do heartily recommend QEMU/KVM as the performance on WSL2/WSLg is very good. |
@myspaghetti Are there any tutorials online to get a mac virtual machine similiar to the one this script creates but on WSL2/WSLg? Or are we on our own? |
All the steps are here. When the WSLg kernel is updated you'll have to change the version number from 5.10.y to whichever you're running, but otherwise all the steps are stable. Regardless, VirtualBox is extremely slow on WSL2/WSLg so you'll save time going directly for OSX-KVM. |
VirtualBox has steadily improved over time. Version Unfortunately nested P.S. I looked at the OSX-KVM link and its a serious commitment to follow all those steps - we need a script for that! |
@tcab mind the difference between VirtualBox on Windows using NEM, and VirtualBox on a WSLg host. To clear things up:
|
Here's a sort-of tutorial for compiling the
vboxdrv
module for WSLg, adapted from the Darling guide and the Hanna J guide.No support is offered for installing WSLg, compiling a kernel, or compiling and loading the
vboxdrv
module.This process can and will break, since WSLg is still in beta. Without further ado:
sudo apt update
sudo apt install build-essential flex bison libssl-dev libelf-dev git -y
5.10.y
kernel branch:git clone --depth 1 --single-branch --branch linux-msft-wsl-5.10.y 'https://github.com/microsoft/WSL2-Linux-Kernel.git' linux-msft-wsl-5.10.y
cd linux-msft-wsl-5.10.y
cp Microsoft/config-wsl .config
sudo make -j $(expr $(nproc) - 1)
sudo make modules_install
sudo apt install virtualbox-source
tar -xf /usr/src/virtualbox.tar.bz2
cd modules/virtualbox/vboxdrv
sudo make -C ~/linux-msft-wsl-5.10.y/ M=${PWD}
sudo insmod vboxdrv.ko
Hooray, now you can run the script, version
0.99.1.0
or higher, and install macOS on VirtualBox on WSLg, super-slowly.sudo apt install bash coreutils gzip unzip wget xxd dmg2img virtualbox -y
mkdir ~/macOS
cd ~/macOS
wget https://raw.githubusercontent.com/myspaghetti/macos-guest-virtualbox/master/macos-guest-virtualbox.sh
bash -i macos-guest-virtualbox.sh
Follow the script and you're done. Please mind that in my limited experience, there appears to be some disk I/O issue which slows the VirtualBox VM considerably, so booting macOS takes about ten minutes and installation takes many hours. If you're already compiling kernels and kernel modules, you might as well skip VirtualBox altogether and head directly to OSX-KVM on WSL2/WSLg which is a lot faster.
The text was updated successfully, but these errors were encountered: