fstabのlibvirt / 9p / kvmマウントがブート時にマウントに失敗する


17

qemu-kvm / 9pを使用して共有フォルダーをマウントしようとしていますが、fstabファイルに追加すると動作しません。起動時にデバイスをマウントできないというエラーが表示されますが、開始後に「mount -a」を実行するとデバイスがマウントされます。

fstab行:

src_mnt /src 9p trans=virtio 0 0

dmesgから私は見ることができます:

[    7.606258] 9p: Could not find request transport: virtio

数行後に「virtio-pci」エントリが表示されます。ただし、そのデバイスが使用可能になるまでマウントを延期する方法については明確ではありません。

回答:


24

それが理想的なソリューションであるかどうかはわかりませんが、Ubuntu 12.04ゲストでは、9pモジュールをinitramfsに追加することで動作するようになりました。

/ etc / initramfs-tools / modulesに追加されました:

9p
9pnet
9pnet_virtio

次に:

sudo update-initramfs -u

ありがとう-これがideal解決策だと言ってもいいと思います。問題は、ファイルシステムのマウント中にモジュールがマウントされないことです。解決策は、マウント時にロードされるモジュールのリストに追加することです。
グレッグ

なぜこれが理想ですか?
リンデ

4

Ubuntu 14.04では、bhasselの回答9pnet_virtioに従ってモジュールのみをプリロードする必要があります

引用されたものの数行前のdmesgは、他の2つがすでにロードされているが、必要なトランスポートが見つからないことを示しています。

[ 1.370611] 9pnet: Installing 9P2000 support 
[ 1.376384] 9p: Installing v9fs 9p2000 file system support 
[ 1.376754] 9pnet: Could not find request transport: virtio 

openSUSE 13.2上のqemu / KVM上のUbuntu 14.04ゲストでテスト済み。


こんにちはティム、そしてサイトへようこそ。回答の順序は、コミュニティの投票とユーザーの好みの両方によって変化する可能性があるため、どの回答を参照しているかを常に明確にしてください。私はあなたの投稿で今のところこれを修正しました。将来自分でそうしてください。ありがとう!
CVn

これは、ubuntu 16.04でも機能します。
-stalet

これは、Ubuntu 18.04
jackkamm

1

ここでの問題は、ホストでのvirtioマウントの設定方法です。この問題を解決するには、2つの方法があります。

解決策1:トランスポートの代わりにマップを使用する

<filesystem type='mount' accessmode='mapped'>
  <source dir='/src_dir'/>
  <target dir='src'/>
</filesystem>

これは機能しますが、すべてのファイルはlibvirtを実行しているユーザーが所有します。これは、tmpまたはログファイルシステムではうまく機能しません。

解決策2:libvirtをルートとして実行し、パススルーを使用する

vi /etc/libvirt/qemu.conf

次に、コメント解除または追加します。

user=root
group=root

ホストを再起動するか、すべてのlibvirtおよびqemu / kvmプロセスを再起動し、パススルーを使用します。

<filesystem type='mount' accessmode='passthrough'>
  <source dir='/src_dir'/>
  <target dir='src'/>
</filesystem>

ホストにはセキュリティ上の影響があるかもしれませんが、これにより、ホスト上のファイルのuid:gidはゲスト上のファイルと同じになり、ログおよびtmpファイルシステムに適しています。これはたまたま私がこの状況でやっていることです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.