Why macOS 14.2 & 14.2.1 VMs lose shared folders, and how to work around it

As I announced a couple of days ago, if you run a virtual machine (VM) running macOS Sonoma 14.2 or 14.2.1 on an Apple silicon Mac, you’re likely to lose access to any shared folders that you’d expect to have. This appears to be independent of the version of macOS running on the host. I’ve now done more digging, and here explain what has gone wrong, which virtualisers are affected, and what you can do to work around it.

Cause

As with most features in Apple’s lightweight virtualisation for Apple silicon Macs, setting up shared folders is straightforward, and you can read the full details with example code here. Affected virtualisers use automounting shared folders, either singly or, in the case of my own Viable and Vimy, in a group of shares. Indeed, my source code is based on the last example shown there, which automounts two shared folders using the VZVirtioFileSystemDeviceConfiguration.macOSGuestAutomountTag for the group. When the VM starts up, it and the host then automatically mount the shared folders in My Shared Files, accessible in all Finder windows.

When macOS 14.2 or 14.2.1 are installed in that VM, that process fails silently, and no My Shared Items appears.

Not all virtualisers automount shares in this way: VirtualBuddy is an exception, which still uses a single manually mounted share mounted using a script inside the VM. However, both Parallels Desktop and my apps (Viable and Vimy) rely on automounting, thus they lose their shares in 14.2 and 14.2.1.

Effect

This is shown in a sequence of screenshots from Parallels Desktop.

My macOS 14.0 VM running in Parallels shows the expected My Shared Items, which is my Home folder on the host running 14.2.1.

Install the update to 14.2.1, though and …

My Shared Items has vanished. Parallels has documented this behaviour in this note.

Workarounds

I’m extremely grateful to Dan for providing the workaround to manually mount the share. Unfortunately, you need to do this every time that VM is started up, as there’s no straightforward way to make this persist between boots.

In the VM, open Terminal, and type the following two commands; after the first you’ll be prompted to enter your admin password to continue:
sudo mkdir “/Volumes/My Shared Files”
then, after entering your admin password,
sudo mount -t virtiofs com.apple.virtio-fs.automount “/Volumes/My Shared Files”
The first of these creates a non-persistent mountpoint at /Volumes/My Shared Files, and the second mounts the shared folders there, where they should have been automounted in the first place.

Because Terminal normally remembers your previous command line entries, when you need to repeat these commands after starting the VM up, all you need do is press the Up Arrow key twice, to retrieve the first command, press Enter and enter your admin password, then press the Up Arrow key twice to retrieve the second command, and press Enter again. You don’t have to keep typing them in each time the VM is started up.

The alternative is to use network file sharing instead. In the host Mac’s System Settings > Sharing turn the top item, File Sharing, on and share the folder(s) that you want. Then in the VM, enter the Network location in a Finder window and connect to that networked share. It’s not as fast, or as convenient, but is well-proven.

Solution

This bug is fixed in the current beta of Sonoma 14.3, although that will most probably only re-enable shared folders in 14.3 and later, and might be unable to fix them in 14.2 or 14.2.1. Expect that update to be released early in the New Year.

I’m very grateful to Richard for reporting this to me, to Alex for letting me know that Parallels has acknowledged it too, and most of all to Dan for the rapid response and workaround.