Blursed WSL: use WSL on Mac via Parallels Desktop---
date: Feb 14, 2020
I recently switched to Mac because of something requires me to use MacOS. I got a 2019 16 inch model of MacBook Pro, and I am pretty satisfied with it[^1].
[^1]: A review is coming ;)
As I am still developing for WSL (and also UWP), I used Parallels Desktop for running Windows on Mac, because I hate Boot Camp. After setting up Windows 10 on Parallels Desktop with come tweaks, successfully set up WSL/WSL2 with Mac.
Use Parallels feature wisely
Two important feature in Parallels Desktop is used: Coherence Mode and Nested Virtualization.
Using Coherence mode, you can use Windows applications and UWPs such as Windows Terminal just like native apps:
Using Nested Virtualization is essential to use WSL2 and the brand new Windows Docker for WSL2. Some people might afraid that enabling it has little impact on my laptop. You can enable the feature here in Parallels Desktop:
Auto-mounting Mac partition on WSL
WSL has been providing drive mounting feature using DrvFs for some times[^2]. Mounting with DrvFs is super easy; Without mounting your Windows drive, you can just:
[^2]: Good place to start with DrvFs: https://docs.microsoft.com/en-gb/archive/blogs/wsl/file-system-improvements-to-the-windows-subsystem-for-linux
sudo mkdir /mnt/d && sudo mount -t drvfs D: /mnt/d/to mount your D drive;
sudo mount -t drvfs '\\server\share' /mnt/shareto mount netowork location
You can even auto-mount using
However, auto-mounting with Mac partition requires something more than documentation provided, otherwise you might have trouble accessing the files.
Before mounting, the file-sharing should be enabled in Parallels Configuration:
It is suggested to use just the network location as drives can be unmounted automatically by Parallels and thus unpredictable.
Now, check the folder you want to mount. In my case, I tried to mount
\\Mac\Home\. So I created a folder
/mnt/mac and in my
/etc/fstab, I input the following:
\\Mac\Home\ /mnt/mac drvfs metadata,uid=1000,gid=1000,umask=0022,fmask=11,case=off 0 0
Restart the distribution by using
wsl -t, and drive will automatically be mounted:
Opening website/file from WSL to Mac browser
This one is pretty easy to configure. If you used my WSL Utilities, you can already open website using
wslview. Then setup Web pages to Open in Mac in the Parallels Configuration:
Then everything is now ready. When you launch a website using
wslview, it will open in the default Mac web browser.
Here is a little demo:
WSL Desktop Shortcut On Mac
wslusc in my WSL Utilities allows you to create shortcuts on Windows Desktop. Combining with Parallels Desktop’s feature, you can launch WSL GUI application right from your Mac Desktop.
Here is how it looks:
To achieve this, We should enable Desktop Mapping in the Parallels Desktop with the following steps:
Afterward, the desktop should show the shortcut created on the Windows 10 Desktop. However, they won’t look good; But we can do some small modification to make it better like the following:
Here is how to modify it:
The experience is not perfect, but this allows me to use Ubuntu without creating extra Virtual Machine on my MBP, which means a save on system memory when I need to run Windows and Ubuntu at the same time.
This sure is a great experience using WSL on Mac.
I am also going to present a session on WSLConf ;)