qemu 支持 host 和 guest 中共享目录
qemu 支持 host 和 guest 中共享目录:
1. qemu
支持和设置 virtfs
qemu
启动参数需要添加 :
-fsdev local,security_model=passthrough,id=fsdev0,path=/tmp/share \
-device virtio-9p-pci,id=fs0,fsdev=fsdev0,mount_tag=hostshare
如果遇到提示:
'virtio-9p-pci' is not a valid device model name
则需要重新编译 qemu
, 编译时添加额外的 configure
参数 --enable-virtfs
./configure --enable-kvm --enable-virtfs --prefix=/opt/software/toolchain/qemu
注意 qemu 支持 virtfs 需要 libcap 和 libattr 等依赖库.
./configure --enable-kvm --enable-virtfs --prefix=/opt/software/toolchain/qemu
ERROR: VirtFS requires libcap devel and libattr devel
CentOS 可以使用如下命令安装
yum install -y libcap-devel
yum install -y libattr-devel
编译安装 qemu
后, 再运行, 可以了.
2. guest
支持和设置 virtfs
1 在 guest 中挂载 host 共享的目录
mkdir /mnt/host_files
mount -t 9p -o trans=virtio,version=9p2000.L hostshare /mnt/host_files
如果提示 : mount: unknown filesystem type '9p'
则说明构建的 guest 内核不支持 9p-virtio.
需要开启对应的内核选项, 并重新编译.
需要在 kernel
中添加 9p
的支持
CONFIG_NET_9P=y
CONFIG_9P_FS=y
CONFIG_VIRTIO_PCI=y
CONFIG_NET_9P_VIRTIO=y
CONFIG_9P_FS_POSIX_ACL=y
CONFIG_NET_9P_DEBUG=y (Optional可选)
最后, 一切就绪之后, 启动 qemu, 就可以看到目录正常挂载了.