Subject: Re: bug#39815: Sharing the store between a host and a guest

From: Ludovic Courtès <[email-masked]>
Date: Sun, 08 Mar 2020 23:16:17 +0100

Hi!

Leo Famulari <[email-masked]> skribis:

> As you found, what you get with `guix system vm` is read-only. Even
> though you copied build-vm.sh out of /gnu/store, it is just a shell
> script that refers to immutable data in the host /gnu/store.
>
> In order to share the store with a VM, you would need to also share the
> store database — at least /var/guix/db if not all of /var/guix — and
> also use the host's guix-daemon.
>
> It would be great to support your use case but I don't think anyone has
> worked on it yet.

Unfortunately, the Unix-domain socket in /var/guix/daemon-socket cannot
be shared over 9p AFAICS (with ‘guix system vm --expose’).

However, one thing that could work is to:

  1. in the guest, set GUIX_DAEMON_SOCKET=guix://localhost:1234;

  2. set up QEMU port forwarding such that the guest’s port 1234 is
     somehow redirected to a port the host guix-daemon listens to (with
     ‘--listen’);

  3. share /var/guix with the guest.

It would be easier if Unix-domain sockets could be forwarded between the
host and the guest, but that doesn’t seem to be the case.  :-/

Ludo’.