まず、サーバーに関するいくつかの背景情報:
ホストOS:Debian Linux Squeeze + qemu-kvmバージョン1.0+ dfsg-8〜bpo60 + 1
ゲストOS:Debian Linux Squeeze
私はlibvirt経由でqemu-kvmを使用しています。ゲストのXML構成で次の9pVirtFSを設定しました。
<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をゲストOSと共有したいと思います。
ゲストから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
を試しました。同じエラーメッセージが表示されました。ただし、マウントタグwww1111
またはwww1
などを使用してVirtFS共有をマウントすることができました。
これに関するいくつかのメモ。 dmesgは、ゲストでもホストでも有用なものを何も表示しません。唯一の兆候は、ゲストdmesgのこのエントリです。
[ 36.054936] Installing v9fs 9p2000 file system support
誰かがこれを正しく機能させる方法を知っていますか? Googleはこの問題に関する有用な情報を提供していません。私はいくつかの検索を試みました。
PCIアドレス情報を上書きする必要がありますか? QEMUドキュメントから:
Libvirtは9pデバイスにPCIアドレスも自動的に割り当てますが、必要に応じてオーバーライドできます。
実際にそのオーバーライドが必要ない場合は、ゲストXML構成を削除してのみにすることを試みましたか?
<filesystem type='mount' accessmode='passthrough'>
<source dir='/srv/www'/>
<target dir='wwwdata'/>
</filesystem>