macOS M1: "Configure where Multipass stores external data" not working

Hello everyone,

I installed Multipass using Brew and want to move it to my external SSD volume. I followed the ‘Configure where Multipass stores external data’ steps from the documentation:

  1. Open a terminal as a superuser: sudo su
  2. Unload the Multipass launch daemon:
    launchctl unload /Library/LaunchDaemons/com.canonical.multipassd.plist.
  3. Move the Multipass data directory to the external SSD:
    mv /var/root/Library/Application\ Support/multipassd/ /Volumes/T72TB/
  4. Create a symbolic link to the external SSD location:
    ln -s /Volumes/T72TB/multipassd/ /var/root/Library/Application\ Support/multipassd
  5. Load the Multipass launch daemon:
    launchctl load /Library/LaunchDaemons/com.canonical.multipassd.plist

However, when I attempt to use Multipass, I encounter the following error: ‘Cannot connect to the Multipass socket.’

Running ‘multipass version’ shows that Multipassd is not running:

  • Multipass 1.12.2+mac

My system specifications:

  • MacBook Air M1, 2020
  • macOS Ventura 13.4.1 (22F82)

When doing the steps in reverse, Multipass again works as expected.

:confused: Any help will be greatly appreciated :wink:

Hi @pkruger

Sorry that you encountered this.

launchctl load should start the multipassd process. Did you see any error after running that command? Can you check the activity monitor and search multipassd to see if the multipassd process is present?

Thank you @georgeliaojia for the reply.

After issuing the launchctl load command, no errors are displayed and multipassd is not started.

Update: even after restarting, multipassd is not started, and launchctl load command completes without errors, but still multipassd is not started :confused:

Hello,
I have exactly the same problem.
Did you solve it ?

Hi @cloud27 , sorry that you have encountered this. I assume you did not see multipassd in activity monitor as well after running sudo launchctl load /Library/LaunchDaemons/com.canonical.multipassd.plist. Can you share the multipass log of yours by running sudo tail /Library/Logs/Multipass/multipassd.log?

Greetings!

I encountered the same issue on an M3 iMac installing Multipass with homebrew. Interestingly, when I move my multipassd directory to an external volume (one starting with /Volumes/...), and symlink it per the instructions on the Canonical site, then Multipass cannot connect to the socket. However, if I then move multipassd to a different directory on the boot volume (same one where Multipass is installed), and symlink it per the instructions on the Canonical site, then all is well.

It seems to be an issue when moving multipassd to an external volume. At least now I can exclude the multipassd files/VMs from my Time Machine backups.

Version:

multipass   1.13.1+mac
multipassd  1.13.1+Mac

Hi @geozeke, thanks for reporting. I think the problem is that the operating system does not allow us to access some folders. The same should happen with personal folders like /Users/yourname/Download and so.

However, one can exclude folders from Time Machine backups IIRC. Did you try to do so?

Thanks very much, @luisp! In my previous example I created a folder in my personal (home) directory as follows: /Users/myname/Multipass. I then moved my multipassd directory there, so now this is what I have: Users/myname/Multipass/multipassd. When change to root and symlink it as follows:

ln -s /Users/myname/Multipass/multipassd /var/root/Library/Application\ Support/multipassd

It works fine. I can then exclude Users/myname/Multipass/multipassd from Time Machine with no issues. Not sure why symlinking to a personal directory would work, but external volume would not. Here are the permissions on my home directory:

drwxr-x---+

and here are the permissions on my external volume:

drwxrwxr-x@

It seems like my home directory is actually more restrictive than the external volume.

@geozeke yes, you’re right. macOS protects user data at system level, and Multipass can’t do much about that. Anyway, I’m glad you were able to exclude the Multipass data from the Time Machine backup.

Actually, you gave me an idea and I found this:

https://askubuntu.com/questions/1281224/multipass-mount-source-is-not-readable

It’s a simple setting in macOS, now Multipass can access external volumes.

1 Like