首先介绍一些有关服务器的背景信息:
主机操作系统:Debian Linux Squeeze + qemu-kvm 版本 1.0+dfsg-8~bpo60+1
客户操作系统:Debian Linux Squeeze
我通过 libvirt 使用 qemu-kvm。我在 Guest 的 XML 配置中设置了 9p VirtFS,内容如下:
<filesystem type='mount' accessmode='passthrough'>
<source dir='/srv/www'/>
<target dir='wwwdata'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</filesystem>
也就是说,我想使用挂载标签 wwwdata 将 /srv/www 共享给客户操作系统。
当我尝试从客户机挂载 VirtFS 共享时,收到一条错误消息:
root@server:~# mount -t 9p -o trans=virtio,version=9p2000.L2 wwwdata /srv/www/
mount: wwwdata: can't read superblock
我也首先尝试了 virtfs target dir/mount_tag www
。我收到了相同的错误消息。但是,我能够使用 mount tagwww1111
或www1
类似命令挂载 VirtFS 共享。
关于这一点还有更多注意事项。dmesg 在客户机或主机中均未显示任何有用的信息。唯一的迹象是客户机 dmesg 中的此条目:
[ 36.054936] Installing v9fs 9p2000 file system support
有人知道如何让它正常工作吗?Google 没有提供有关此问题的有用信息;我尝试了几次搜索。
答案1
您需要覆盖 PCI 地址信息吗?摘自 QEMU 文档:
Libvirt 还将自动为 9p 设备分配一个 PCI 地址,但如果需要也可以覆盖该地址。
如果你实际上不需要该覆盖,你是否尝试过剥离你的客户 XML 配置,使其仅
<filesystem type='mount' accessmode='passthrough'>
<source dir='/srv/www'/>
<target dir='wwwdata'/>
</filesystem>