Big Sur & Monterey not booting fully on WSL2 #368

Open
opened 2025-12-29 00:25:27 +01:00 by adam · 12 comments
Owner

Originally created by @SakulFlee on GitHub (Jun 6, 2022).

Hello everyone :)
I am having trouble running macOS Monterey (and Big Sur) on WSL2 (W11).
The other images (latest, naked, Catalina, High Sierra and Mojave) do work flawlessly.

Big Sur

Big Sur boots and after a few crashes/reboots the installer opens.
However, after a few minutes in the installer QEMU reboots and has to restart multiple times again until the installer is shown. Can't install.

Command used (just like in the README.md):

docker run -it \
    --device /dev/kvm \
    -p 50922:10022 \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    -e "DISPLAY=${DISPLAY:-:0.0}" \
    sickcodes/docker-osx:big-sur  

Monterey

Monterey doesn't even get to the Installer stage.
It either reboots multiple times or is stuck with console output.

Command used (just like in the README.md):

docker run -it \
    --device /dev/kvm \
    -p 50922:10022 \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    -e "DISPLAY=${DISPLAY:-:0.0}" \
    -e GENERATE_UNIQUE=true \
    -e MASTER_PLIST_URL='https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-custom.plist' \
    sickcodes/docker-osx:monterey

Additional Information

If there is a way for me to attach macOS logs and/or other information is required please let me know!
I've tried all images on WSL-Ubuntu and WSL-OpenSUSE.
Apart from some missing packages on the OpenSUSE side both show the same behaviour.

I am not sure if this is a Windows/WSL related issue?
I am running WIndows 11; Version 22H2 (OS Build 22610.1) and WSL is the following:

> wsl --version
WSL version: 0.58.3.0
Kernel version: 5.10.102.1
WSLg version: 1.0.33
MSRDC version: 1.2.2924
Direct3D version: 1.601.0
Windows version: 10.0.22610.1
uname -a \
> ; echo "${DISPLAY}" \
> ; echo 1 | sudo tee /sys/module/kvm/parameters/ignore_msrs \
> ; grep NAME /etc/os-release \
 df -h > ; df -h . \
> ; qemu-system-x86_64 --version \
> ; libvirtd --version \
> ; free -mh \
 nproc \> ; nproc \
> ; egrep -c '(svm|vmx)' /proc/cpuinfo \
/dev/k> ; ls -lha /dev/kvm \
 /tmp/> ; ls -lha /tmp/.X11-unix/ \
> ; ps aux | grep dockerd \
> ; docker ps | grep osx \
grep "d> ; grep "docker\|kvm\|virt" /etc/group
Linux Citra 5.10.102.1-microsoft-standard-WSL2 #1 SMP Wed Mar 2 00:30:59 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
:0
1
NAME="openSUSE Tumbleweed"
PRETTY_NAME="openSUSE Tumbleweed"
CPE_NAME="cpe:/o:opensuse:tumbleweed:20220415"
Filesystem      Size  Used Avail Use% Mounted on
drvfs           931G  801G  131G  86% /mnt/wsl/docker-desktop-bind-mounts/openSUSE-Tumbleweed/47339e9566e9267e46c034b3e3415ae191e4952ba50ab1b15912a5385d3a376c
QEMU emulator version 6.2.0 (openSUSE Tumbleweed)
Copyright (c) 2003-2021 Fabrice Bellard and the QEMU Project developers       
libvirtd (libvirt) 8.4.0
               total        used        free      shared  buff/cache   available
Mem:            15Gi       4.1Gi       9.4Gi        22Mi       2.0Gi        11Gi
Swap:          4.0Gi          0B       4.0Gi
12
24
crw-rw-rw- 1 root root 10, 232 Jun  6 19:34 /dev/kvm
total 0
drwxrwxrwx 2 root      root       60 Jun  6 19:34 .
drwxrwxrwt 6 root      root      260 Jun  6 19:34 ..
srwxrwxrwx 1 sakul6499 sakul6499   0 Jun  6 19:34 X0
sakul64+   642  0.0  0.0   6624  2244 pts/3    S+   23:00   0:00 grep --color=auto dockerd
6e6c20a7c998   sickcodes/docker-osx:naked   "/bin/bash -c 'sudo …"   2 hours ago   Up 2 hours   0.0.0.0:50922->10022/tcp   focused_wilson
kvm:x:36:qemu,sakul6499
docker:x:1001:sakul6499
libvirt:x:108:sakul6499

Thank you very much!
I am open for further testing this.

Originally created by @SakulFlee on GitHub (Jun 6, 2022). Hello everyone :) I am having trouble running macOS Monterey (and Big Sur) on WSL2 (W11). The other images (latest, naked, Catalina, High Sierra and Mojave) do work flawlessly. ## Big Sur Big Sur boots and after a few crashes/reboots the installer opens. However, after a few minutes in the installer QEMU reboots and has to restart multiple times again until the installer is shown. **Can't install**. Command used (just like in the README.md): ``` docker run -it \ --device /dev/kvm \ -p 50922:10022 \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -e "DISPLAY=${DISPLAY:-:0.0}" \ sickcodes/docker-osx:big-sur ``` ## Monterey Monterey doesn't even get to the Installer stage. It either reboots multiple times _or_ is stuck with console output. Command used (just like in the README.md): ``` docker run -it \ --device /dev/kvm \ -p 50922:10022 \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -e "DISPLAY=${DISPLAY:-:0.0}" \ -e GENERATE_UNIQUE=true \ -e MASTER_PLIST_URL='https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-custom.plist' \ sickcodes/docker-osx:monterey ``` ## Additional Information _If there is a way for me to attach macOS logs and/or other information is required please let me know!_ I've tried all images on WSL-Ubuntu and WSL-OpenSUSE. Apart from some missing packages on the OpenSUSE side both show the same behaviour. I am not sure if this is a Windows/WSL related issue? I am running WIndows 11; Version 22H2 (OS Build 22610.1) and WSL is the following: ``` > wsl --version WSL version: 0.58.3.0 Kernel version: 5.10.102.1 WSLg version: 1.0.33 MSRDC version: 1.2.2924 Direct3D version: 1.601.0 Windows version: 10.0.22610.1 ``` ## OS related issued, please help us identify the issue by posting the output of this ``` uname -a \ > ; echo "${DISPLAY}" \ > ; echo 1 | sudo tee /sys/module/kvm/parameters/ignore_msrs \ > ; grep NAME /etc/os-release \ df -h > ; df -h . \ > ; qemu-system-x86_64 --version \ > ; libvirtd --version \ > ; free -mh \ nproc \> ; nproc \ > ; egrep -c '(svm|vmx)' /proc/cpuinfo \ /dev/k> ; ls -lha /dev/kvm \ /tmp/> ; ls -lha /tmp/.X11-unix/ \ > ; ps aux | grep dockerd \ > ; docker ps | grep osx \ grep "d> ; grep "docker\|kvm\|virt" /etc/group Linux Citra 5.10.102.1-microsoft-standard-WSL2 #1 SMP Wed Mar 2 00:30:59 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux :0 1 NAME="openSUSE Tumbleweed" PRETTY_NAME="openSUSE Tumbleweed" CPE_NAME="cpe:/o:opensuse:tumbleweed:20220415" Filesystem Size Used Avail Use% Mounted on drvfs 931G 801G 131G 86% /mnt/wsl/docker-desktop-bind-mounts/openSUSE-Tumbleweed/47339e9566e9267e46c034b3e3415ae191e4952ba50ab1b15912a5385d3a376c QEMU emulator version 6.2.0 (openSUSE Tumbleweed) Copyright (c) 2003-2021 Fabrice Bellard and the QEMU Project developers libvirtd (libvirt) 8.4.0 total used free shared buff/cache available Mem: 15Gi 4.1Gi 9.4Gi 22Mi 2.0Gi 11Gi Swap: 4.0Gi 0B 4.0Gi 12 24 crw-rw-rw- 1 root root 10, 232 Jun 6 19:34 /dev/kvm total 0 drwxrwxrwx 2 root root 60 Jun 6 19:34 . drwxrwxrwt 6 root root 260 Jun 6 19:34 .. srwxrwxrwx 1 sakul6499 sakul6499 0 Jun 6 19:34 X0 sakul64+ 642 0.0 0.0 6624 2244 pts/3 S+ 23:00 0:00 grep --color=auto dockerd 6e6c20a7c998 sickcodes/docker-osx:naked "/bin/bash -c 'sudo …" 2 hours ago Up 2 hours 0.0.0.0:50922->10022/tcp focused_wilson kvm:x:36:qemu,sakul6499 docker:x:1001:sakul6499 libvirt:x:108:sakul6499 ``` Thank you very much! I am open for further testing this.
Author
Owner

@EddieV2 commented on GitHub (Jul 31, 2022):

I noticed the same rebooting behavior with the Monterey image. I can't attest to the other images working, but it seemed like it tried to install and then crashed due to a memory issue perhaps?

@EddieV2 commented on GitHub (Jul 31, 2022): I noticed the same rebooting behavior with the Monterey image. I can't attest to the other images working, but it seemed like it tried to install and then crashed due to a memory issue perhaps?
Author
Owner

@SakulFlee commented on GitHub (Aug 3, 2022):

Possibly, I don't know how to further debug this.
Increasing the RAM amount doesn't help.

@SakulFlee commented on GitHub (Aug 3, 2022): Possibly, I don't know how to further debug this. Increasing the RAM amount doesn't help.
Author
Owner

@mateo-m commented on GitHub (Aug 8, 2022):

Same issue here, W11 & WSL2.

@mateo-m commented on GitHub (Aug 8, 2022): Same issue here, W11 & WSL2.
Author
Owner

@LiarOnce commented on GitHub (Aug 21, 2022):

Same issue here, I've tried allocating more memory and CPU, but it doesn't work:

docker run -it \
    --device /dev/kvm \
    -p 60000:10022 \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    -e "DISPLAY=${DISPLAY:-:0.0}" \
    -e GENERATE_UNIQUE=true \
    -e MASTER_PLIST_URL='https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-custom.plist' \
    -e RAM=16 \
    -e EXTRA='-smp 8,sockets=4,cores=2' \
    sickcodes/docker-osx:monterey
@LiarOnce commented on GitHub (Aug 21, 2022): Same issue here, I've tried allocating more memory and CPU, but it doesn't work: ```bash docker run -it \ --device /dev/kvm \ -p 60000:10022 \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -e "DISPLAY=${DISPLAY:-:0.0}" \ -e GENERATE_UNIQUE=true \ -e MASTER_PLIST_URL='https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-custom.plist' \ -e RAM=16 \ -e EXTRA='-smp 8,sockets=4,cores=2' \ sickcodes/docker-osx:monterey ```
Author
Owner

@MikeCoder96 commented on GitHub (Aug 26, 2022):

KVM on WSL is different from KVM on Linux native, in fact, KVM, use a Hyper-V Enlightened VMCS technology, here you will find information about
Said that, I assume that some CPU call are not able to be "translate" from Hyper-V engine and everything fall to break.
Suggest: Swap to Linux or use VMWare/VirtualBox

@MikeCoder96 commented on GitHub (Aug 26, 2022): KVM on WSL is different from KVM on Linux native, in fact, KVM, use a Hyper-V Enlightened VMCS technology, [here](https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/tlfs/nested-virtualization) you will find information about Said that, I assume that some CPU call are not able to be "translate" from Hyper-V engine and everything fall to break. Suggest: Swap to Linux or use VMWare/VirtualBox
Author
Owner

@SakulFlee commented on GitHub (Aug 26, 2022):

If it's some virtualization issue inside WSL, wouldn't that mean QEMU itself shouldn't work?

I can boot up and fully install both macOS versions using QEMU inside WSL.
It just hangs eventually (think it's some sleep power issue). But with Docker-OSX it's not even fully booting up.

@SakulFlee commented on GitHub (Aug 26, 2022): If it's some virtualization issue inside WSL, wouldn't that mean QEMU itself shouldn't work? I can boot up and fully install both macOS versions using QEMU inside WSL. It just hangs eventually (think it's some sleep power issue). But with Docker-OSX it's not even fully booting up.
Author
Owner

@MikeCoder96 commented on GitHub (Aug 26, 2022):

@Sakul6499 Not fully clear how Docker on Windows work but seem to create a layer of communication and a new instance of WSL and this slow down the performace.
Can you write specs of your pc and how the virtualization work with QEMU (not near native I suppose)

@MikeCoder96 commented on GitHub (Aug 26, 2022): @Sakul6499 Not fully clear how Docker on Windows work but seem to create a layer of communication and a new instance of WSL and this slow down the performace. Can you write specs of your pc and how the virtualization work with QEMU (not near native I suppose)
Author
Owner

@SakulFlee commented on GitHub (Aug 26, 2022):

@MikeCoder96
CPU: Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz
RAM: 32GB DDR4
NVMe: 1TB
GPU: NVIDIA GeForce RTX 3060 (6GB)

Windows Version: 22H2 (OS Build 22621.382)
> wsl --version

WSL version: 0.65.3.0
Kernel version: 5.15.57.1
WSLg version: 1.0.41
MSRDC version: 1.2.3213
Direct3D version: 1.601.0
DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows version: 10.0.22621.382

Docker version: 20.10.17, build 100c701


As of how the QEMU part works: Simply follow the instructions of OSX-KVM. Didn't change much, but added a USB Keyboard, Mouse and Touchpad to get all functionality working. If I am not mistaken, this repository is based/is using OSX-KVM, right?
Meaning, it may be an issue with having Docker as an additional layer as it's working fine in WSL.

@SakulFlee commented on GitHub (Aug 26, 2022): @MikeCoder96 CPU: Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz RAM: 32GB DDR4 NVMe: 1TB GPU: NVIDIA GeForce RTX 3060 (6GB) Windows Version: 22H2 (OS Build 22621.382) `> wsl --version` ``` WSL version: 0.65.3.0 Kernel version: 5.15.57.1 WSLg version: 1.0.41 MSRDC version: 1.2.3213 Direct3D version: 1.601.0 DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp Windows version: 10.0.22621.382 ``` Docker version: 20.10.17, build 100c701 --- As of how the QEMU part works: Simply follow the instructions of [OSX-KVM](https://github.com/kholia/OSX-KVM). Didn't change much, but added a USB Keyboard, Mouse and Touchpad to get all functionality working. If I am not mistaken, this repository is based/is using OSX-KVM, right? Meaning, it may be an issue with having Docker as an additional layer as it's working fine in WSL.
Author
Owner

@MikeCoder96 commented on GitHub (Aug 26, 2022):

@MikeCoder96
CPU: Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz
RAM: 32GB DDR4
NVMe: 1TB
GPU: NVIDIA GeForce RTX 3060 (6GB)

Windows Version: 22H2 (OS Build 22621.382)
> wsl --version

WSL version: 0.65.3.0
Kernel version: 5.15.57.1
WSLg version: 1.0.41
MSRDC version: 1.2.3213
Direct3D version: 1.601.0
DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows version: 10.0.22621.382

Docker version: 20.10.17, build 100c701


As of how the QEMU part works: Simply follow the instructions of OSX-KVM. Didn't change much, but added a USB Keyboard, Mouse and Touchpad to get all functionality working. If I am not mistaken, this repository is based/is using OSX-KVM, right?
Meaning, it may be an issue with having Docker as an additional layer as it's working fine in WSL.

Have you changed something in config.plist or in wslconfig? The installer reboot everytime and I can't figure out why...

@MikeCoder96 commented on GitHub (Aug 26, 2022): > @MikeCoder96 > CPU: Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz > RAM: 32GB DDR4 > NVMe: 1TB > GPU: NVIDIA GeForce RTX 3060 (6GB) > > Windows Version: 22H2 (OS Build 22621.382) > `> wsl --version` > ``` > WSL version: 0.65.3.0 > Kernel version: 5.15.57.1 > WSLg version: 1.0.41 > MSRDC version: 1.2.3213 > Direct3D version: 1.601.0 > DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp > Windows version: 10.0.22621.382 > ``` > > Docker version: 20.10.17, build 100c701 > > --- > > As of how the QEMU part works: Simply follow the instructions of [OSX-KVM](https://github.com/kholia/OSX-KVM). Didn't change much, but added a USB Keyboard, Mouse and Touchpad to get all functionality working. If I am not mistaken, this repository is based/is using OSX-KVM, right? > Meaning, it may be an issue with having Docker as an additional layer as it's working fine in WSL. Have you changed something in config.plist or in wslconfig? The installer reboot everytime and I can't figure out why...
Author
Owner

@SakulFlee commented on GitHub (Aug 26, 2022):

@MikeCoder96 all I did was this:
WSL2 Config:

[wsl2]
memory=22G                     # More than 50% of system memory
processors=12                    # Use all available CPU Nodes
nestedVirtualization=true    # Should be default? But just in case.

Docker Engine configuration:
(Not that it matters for running QEMU under WSL2)

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": true,
  "features": {
    "buildkit": true
  }
}

Although sometimes macOS fails to boot in QEMU. Restarting/Resetting help though.
Furthermore, making your own OpenCore boot image seems to help with those lockups during boot completely. ( I followed this guide )

@SakulFlee commented on GitHub (Aug 26, 2022): @MikeCoder96 all I did was this: WSL2 Config: ``` [wsl2] memory=22G # More than 50% of system memory processors=12 # Use all available CPU Nodes nestedVirtualization=true # Should be default? But just in case. ``` Docker Engine configuration: (Not that it matters for running QEMU under WSL2) ``` { "builder": { "gc": { "defaultKeepStorage": "20GB", "enabled": true } }, "experimental": true, "features": { "buildkit": true } } ``` Although _sometimes_ macOS fails to boot in QEMU. Restarting/Resetting help though. Furthermore, making your own OpenCore boot image seems to help with those lockups during boot completely. ( [I followed this guide](https://caizhiyuan.gitee.io/opencore-install-guide/) )
Author
Owner

@MikeCoder96 commented on GitHub (Aug 26, 2022):

@Sakul6499 we have similar hardware "i have only 16gb ram and rtx 2070". Can u give to me the plist file? I've already tried to make one by myself but same problem and probably i miss something

@MikeCoder96 commented on GitHub (Aug 26, 2022): @Sakul6499 we have similar hardware "i have only 16gb ram and rtx 2070". Can u give to me the plist file? I've already tried to make one by myself but same problem and probably i miss something
Author
Owner

@SakulFlee commented on GitHub (Aug 26, 2022):

@MikeCoder96 Pretty sure it's the original config from OSX-KVM, but this one is working with my setup: https://gist.github.com/Sakul6499/a285bad5fbf4cb070521838656937be8.
Can't run a diff right now, so unsure if it's the same or not.

@SakulFlee commented on GitHub (Aug 26, 2022): @MikeCoder96 Pretty sure it's the [original config](https://github.com/kholia/OSX-KVM/blob/master/OpenCore/config.plist) from [OSX-KVM](https://github.com/kholia/OSX-KVM), but this one is working with my setup: [https://gist.github.com/Sakul6499/a285bad5fbf4cb070521838656937be8](https://gist.github.com/Sakul6499/a285bad5fbf4cb070521838656937be8). Can't run a diff right now, so unsure if it's the same or not.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/Docker-OSX#368