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, 就可以看到目錄正常掛載了.