mirror of
https://github.com/PhyllomeOS/wiki.git
synced 2024-12-22 05:35:22 +00:00
2.8 KiB
2.8 KiB
title | description | published | date | tags | editor | dateCreated |
---|---|---|---|---|---|---|
Share a host directory with a guest using virtiofs | true | 2023-05-29T09:20:05.658Z | markdown | 2022-08-13T00:16:17.437Z |
Sharing a directory between the host and the guest
Virtio-fs in a nutshell
Virtio-fs, shorts for Virtio shared FileSystem, allows for a directory located on the host to be shared with a guest.
It is designed to be fast and optimized for local usage, when the host and the guest are located on the same physical machine. It is therefore a perfect fit for Phyllome OS.
Just as with other virtio
devices, virtio-fs
requires specialized drivers to be written for the host and the guest operating system.
Guest configuration
For KVM/QEMU, as of January 2023, virtio-fs is only available for virtual machines managed by the system libvirt instance (
qemu:///system
) {.is-warning}
As of January 2023,
virtio-fs
does not support read-only mode, meaning a guest will be able to write to the host's folder. {.is-warning}
Edit XML configuration
- Memory backing needs to be added to the XML definition:
<domain type="kvm">
[...]
<memoryBacking>
<source type="memfb"/>
<access mode="shared/>"
</memoryBacking>
[...]
</domain>
- Add the filesystem device to the guest. In this the following case, the directory
/opt/share/
will be shared with the guest:
<domain type="kvm">
[...]
<devices>
[...]
<filesystem type="mount" accessmode="passthrough">
<driver type="virtiofs"/>
<source dir="/opt/share"> # The host directory to be shared with the guest
<target dir="share"> # The target dir value refers to the mount tag used inside the guest, not the target dir inside the guest
</filesystem>
[...]
</devices>
[...]
</domain>
Mount the folder inside the guest
- Inside the guest VM, mount the folder using the following command to mount the
/opt/share
host directory to the guest, using also the/mnt
point:
# mount -t virtiofs share /mnt/
- To make it permanent, add the following line to
/etc/fstab
:
share /mnt/ virtiofs rw,noatime,_netdev 0 2
- Make sure it works before rebooting the guest virtual machine, by unmounting the share and reloading the
systemd
daemon`
# umount /mnt/ && systemctl daemon-reload
- and then mounting all share available in
fstab
:
# mount -all
Resources
- Official website: https://virtio-fs.gitlab.io/index.html#status
- In the context of a Windows guest: https://github.com/virtio-win/kvm-guest-drivers-windows/wiki/VirtIO-FS:-Shared-file-system
- https://wiki.archlinux.org/title/Libvirt#Sharing_data_between_host_and_guest