Problem with mounting shared folder

How do I mount ZFS dataset into virtual machine ??

┌─[doskanoness@gentoo] - [~] - [2021-11-27 11:06:18]
└─[0] <> lxc start binpkgs-vps                                                                                                                                                ⚡[▶▶▶▶▶▶▶▶▶▷]
Error: Failed to start device "binpkgs": Failed to setup virtfs-proxy-helper for device "binpkgs": Required binary "virtfs-proxy-helper" couldn't be found
Try `lxc info --show-log binpkgs-vps` for more info
┌─[doskanoness@gentoo] - [~] - [2021-11-27 11:17:12]
└─[1] <> lxc info --show-log binpkgs-vps                                                                                                                                      ⚡[▶▶▶▶▶▶▶▶▶▷]
Name: binpkgs-vps
Location: none
Remote: unix://
Architecture: x86_64
Created: 2021/11/27 20:54 UTC
Status: Stopped
Type: virtual-machine
Profiles: default, gentoo
Error: open /var/log/lxd/binpkgs-vps/qemu.log: no such file or directory
┌─[doskanoness@gentoo] - [~] - [2021-11-27 11:17:19]
└─[1] <> which virtfs-proxy-helper                                                                                                                                            ⚡[▶▶▶▶▶▶▶▶▶▷]
virtfs-proxy-helper not found
┌─[doskanoness@gentoo] - [~] - [2021-11-27 11:07:57]
└─[130] <> equery u qemu                                                                                                                                                      ⚡[▶▶▶▶▶▶▶▶▶▷]
[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for app-emulation/qemu-6.0.1-r1:
 U I
 - - accessibility                     : Adds support for braille displays using brltty 
 + - aio                               : Enables support for Linux's Async IO 
 + + alsa                              : Enable alsa output for sound emulation 
 + + bzip2                             : Use the bzlib compression library
 + - caps                              : Use Linux capabilities library to control privilege
 - - capstone                          : Enable disassembly support with dev-libs/capstone
 + - curl                              : Support ISOs / -cdrom directives via HTTP or HTTPS. 
 - - debug                             : Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see
                                         https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
 + - doc                               : Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
 + - fdt                               : Enables firmware device tree support 
 + - filecaps                          : Use Linux file capabilities to control privilege rather than set*id (this is orthogonal to USE=caps which uses capabilities at runtime e.g. libcap)
 - - fuse                              : Enables FUSE block device export 
 - - glusterfs                         : Enables GlusterFS cluster fileystem via sys-cluster/glusterfs
 - - gnutls                            : Enable TLS support for the VNC console server. For 1.4 and newer this also enables WebSocket support. For 2.0 through 2.3 also enables disk quorum
                                         support.
 + + gtk                               : Add support for x11-libs/gtk+ (The GIMP Toolkit)
 - - infiniband                        : Enable Infiniband RDMA transport support
 + - io-uring                          : Enable efficient I/O via sys-libs/liburing.
 - - iscsi                             : Enable direct iSCSI support via net-libs/libiscsi instead of indirectly via the Linux block layer that sys-block/open-iscsi does.
 - - jack                              : Add support for the JACK Audio Connection Kit
 - - jemalloc                          : Enable jemalloc allocator support 
 + + jpeg                              : Enable jpeg image support for the VNC console server 
 - - lzo                               : Enable support for lzo compression
 - - multipath                         : Enable multipath persistent reservation passthrough via sys-fs/multipath-tools.
 + + ncurses                           : Enable the ncurses-based console 
 + - nfs                               : Enable NFS support 
 + + nls                               : Add Native Language Support (using gettext - GNU locale utilities)
 - - numa                              : Enable NUMA support 
 + + opengl                            : Add support for OpenGL (3D graphics)
 + - oss                               : Add support for OSS (Open Sound System)
 + - pin-upstream-blobs                : Pin the versions of BIOS firmware to the version included in the upstream release. This is needed to sanely support
                                         migration/suspend/resume/snapshotting/etc... of instances. When the blobs are different, random corruption/bugs/crashes/etc... may be observed.
 - - plugins                           : Enable qemu plugin API via shared library loading. 
 + + png                               : Enable png image support for the VNC console server 
 + + pulseaudio                        : Enable pulseaudio output for sound emulation 
 - - python                            : Add optional support/bindings for the Python language
 - - python_targets_python3_10         : Build with Python 3.10
 - - python_targets_python3_8          : Build with Python 3.8
 + + python_targets_python3_9          : Build with Python 3.9
 + + qemu_softmmu_targets_aarch64      : ARM64 system emulation target
 - - qemu_softmmu_targets_alpha        : system emulation target
 + + qemu_softmmu_targets_arm          : system emulation target
 - - qemu_softmmu_targets_avr          : system emulation target
 - - qemu_softmmu_targets_cris         : system emulation target
 - - qemu_softmmu_targets_hppa         : system emulation target
 - - qemu_softmmu_targets_i386         : system emulation target
 - - qemu_softmmu_targets_lm32         : LatticeMico32 system emulation target
 - - qemu_softmmu_targets_m68k         : system emulation target
 - - qemu_softmmu_targets_microblaze   : system emulation target
 - - qemu_softmmu_targets_microblazeel : system emulation target
 - - qemu_softmmu_targets_mips         : system emulation target
 - - qemu_softmmu_targets_mips64       : system emulation target
 - - qemu_softmmu_targets_mips64el     : system emulation target
 - - qemu_softmmu_targets_mipsel       : system emulation target
 - - qemu_softmmu_targets_moxie        : moxielogic system emulation target
 - - qemu_softmmu_targets_nios2        : system emulation target
 - - qemu_softmmu_targets_or1k         : OpenRISC system emulation target
 - - qemu_softmmu_targets_ppc          : system emulation target
 - - qemu_softmmu_targets_ppc64        : system emulation target
 - - qemu_softmmu_targets_riscv32      : system emulation target
 - - qemu_softmmu_targets_riscv64      : system emulation target
 - - qemu_softmmu_targets_rx           : Renesas RX system emulation target
 - - qemu_softmmu_targets_s390x        : system emulation target
 - - qemu_softmmu_targets_sh4          : system emulation target
 - - qemu_softmmu_targets_sh4eb        : system emulation target
 - - qemu_softmmu_targets_sparc        : system emulation target
 - - qemu_softmmu_targets_sparc64      : system emulation target
 - - qemu_softmmu_targets_tricore      : system emulation target
 - - qemu_softmmu_targets_unicore32    : system emulation target
 + + qemu_softmmu_targets_x86_64       : system emulation target
 - - qemu_softmmu_targets_xtensa       : system emulation target
 - - qemu_softmmu_targets_xtensaeb     : system emulation target
 + + qemu_user_targets_aarch64         : ARM64 userspace emulation target
 - - qemu_user_targets_aarch64_be      : ARM64 big endian userspace emulation target
 - - qemu_user_targets_alpha           : userspace emulation target
 + + qemu_user_targets_arm             : ARM (little endian) userspace emulation target
 - - qemu_user_targets_armeb           : ARM (big endian) userspace emulation target
 - - qemu_user_targets_cris            : userspace emulation target
 - - qemu_user_targets_hexagon         : Qualcomm hexagon userspace emulation target
 - - qemu_user_targets_hppa            : userspace emulation target
 - - qemu_user_targets_i386            : userspace emulation target
 - - qemu_user_targets_m68k            : userspace emulation target
 - - qemu_user_targets_microblaze      : userspace emulation target
 - - qemu_user_targets_microblazeel    : userspace emulation target
 - - qemu_user_targets_mips            : userspace emulation target
 - - qemu_user_targets_mips64          : userspace emulation target
 - - qemu_user_targets_mips64el        : userspace emulation target
 - - qemu_user_targets_mipsel          : userspace emulation target
 - - qemu_user_targets_mipsn32         : MIPS N32 ABI userspace emulation target
 - - qemu_user_targets_mipsn32el       : MIPS N32 ABI LE userspace emulation target
 - - qemu_user_targets_nios2           : userspace emulation target
 - - qemu_user_targets_or1k            : OpenRISC system emulation target
 - - qemu_user_targets_ppc             : PowerPC 32-bit big endian userspace emulation target
 - - qemu_user_targets_ppc64           : PowerPC 64-bit big endian userspace emulation target
 - - qemu_user_targets_ppc64abi32      : userspace emulation target
 - - qemu_user_targets_ppc64le         : PowerPC 64-bit little endian userspace emulation target
 - - qemu_user_targets_riscv32         : userspace emulation target
 - - qemu_user_targets_riscv64         : userspace emulation target
 - - qemu_user_targets_s390x           : userspace emulation target
 - - qemu_user_targets_sh4             : userspace emulation target
 - - qemu_user_targets_sh4eb           : userspace emulation target
 - - qemu_user_targets_sparc           : userspace emulation target
 - - qemu_user_targets_sparc32plus     : userspace emulation target
 - - qemu_user_targets_sparc64         : userspace emulation target
 + + qemu_user_targets_x86_64          : userspace emulation target
 - - qemu_user_targets_xtensa          : userspace emulation target
 - - qemu_user_targets_xtensaeb        : userspace emulation target
 - - rbd                               : Enable rados block device backend support, see https://docs.ceph.com/en/mimic/rbd/qemu-rbd/ 
 - - sasl                              : Add support for the Simple Authentication and Security Layer
 + + sdl                               : Enable the SDL-based console 
 - - sdl-image                         : SDL Image support for icons 
 + + seccomp                           : Enable seccomp (secure computing mode) to perform system call filtering at runtime to increase security of programs
 + - slirp                             : Enable TCP/IP in hypervisor via net-libs/libslirp
 - - smartcard                         : Enable smartcard support
 - - snappy                            : Enable support for Snappy compression (as implemented in app-arch/snappy)
 + - spice                             : Enable Spice protocol support via app-emulation/spice
 + - ssh                               : Enable SSH based block device support via net-libs/libssh2
 - - static                            : Build the User and Software MMU (system) targets as well as tools as static binaries 
 - - static-user                       : Build the User targets as static binaries 
 - - systemtap                         : Enable SystemTAP/DTrace tracing 
 - - test                              : Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)
 + + udev                              : Enable virtual/udev integration (device discovery, power and storage device support, etc)
 + + usb                               : Enable USB passthrough via dev-libs/libusb
 + - usbredir                          : Use sys-apps/usbredir to redirect USB devices to another machine over TCP
 + - vde                               : Enable VDE-based networking 
 + - vhost-net                         : Enable accelerated networking using vhost-net, see https://www.linux-kvm.org/page/VhostNet 
 + - vhost-user-fs                     : Enable shared file system access using the FUSE protocol carried over virtio. 
 + - virgl                             : Enable experimental Virgil 3d (virtual software GPU) 
 + - virtfs                            : Enable VirtFS via virtio-9p-pci / fsdev. See https://wiki.qemu.org/Documentation/9psetup 
 - - vnc                               : Enable VNC (remote desktop viewer) support
 - - vte                               : Enable terminal support ( x11-libs/vte) in the GTK+ interface
 + + xattr                             : Add support for getting and setting POSIX extended attributes, through sys-apps/attr. Requisite for the virtfs backend.
 - - xen                               : Enables support for Xen backends 
 + - xfs                               : Support xfsctl() notification and syncing for XFS backed virtual disks.
 - - zstd                              : Enable support for ZSTD compression
┌─[doskanoness@gentoo] - [~] - [2021-11-27 11:20:22]
└─[126] <> qemu-system-x86_64 --version                                                                                                                                       ⚡[▶▶▶▶▶▶▶▶▶▷]
QEMU emulator version 6.1.0
Copyright (c) 2003-2021 Fabrice Bellard and the QEMU Project developers

You mount the dataset on the host and then add a disk device to the VM using:

lxc config device add <instance> <device name> disk source=/path/to/mounted/dataset/on/host target=/mount/path/inside/vm
┌─[doskanoness@gentoo] - [~] - [2021-11-29 05:41:08]
└─[0] <> lxc config show binpkgs-vps                                                                                                                                          ⚡[▶▶▶▶▶▶▶▶▶▶]
architecture: x86_64
config:
  image.architecture: amd64
  image.description: Gentoo current amd64 hardened selinux nomultilib
  image.name: gentoo-amd64-hardened-selinux-nomultilib
  image.os: gentoo
  image.variant: default
  volatile.base_image: bc976a7135b31c3902b10a2491e708514f7ba0dceb0255b2ee7353d18a023999
  volatile.eth0.hwaddr: 00:16:3e:c0:30:bb
  volatile.last_state.power: STOPPED
  volatile.uuid: 8a61ab4e-0311-43f7-8ce8-58a15c84fd3f
  volatile.vsock_id: "185"
devices:
  binpkgs:
    path: /var/cache/binpkgs/
    source: /var/cache/binpkgs/vps/
    type: disk
  root:
    path: /
    pool: lxd
    size: 120GB
    type: disk
ephemeral: false
profiles:
- default
- gentoo
stateful: false
description: ""

When I start VM I’m getting error:

┌─[doskanoness@gentoo] - [~] - [2021-11-29 05:41:28]
└─[0] <> lxc start binpkgs-vps                                                                                                                                                ⚡[▶▶▶▶▶▶▶▶▶▶]
Error: Failed to start device "binpkgs": remove /var/lib/lxd/devices/binpkgs-vps/disk.binpkgs.var-cache-binpkgs-: device or resource busy
Try `lxc info --show-log binpkgs-vps` for more info

You didn’t solve it?