QEMU / KVM:ホストにマウントされたCIFSネットワーク共有であるゲスト用に書き込み可能な共有フォルダを構成する方法は?

QEMU / KVM:ホストにマウントされたCIFSネットワーク共有であるゲスト用に書き込み可能な共有フォルダを構成する方法は?

質問

ゲスト内で書き込み権限を持つ共有フォルダを構成する際に問題があります。私の特別なケースは、共有フォルダがホストシステムにマウントされているCIFSネットワーク共有を参照していることです。

ホスト構成

ネットワーク共有(および共有フォルダ)は次のように/media/nas/tempインストールされます。

sudo mount -t cifs -o username=dave,vers=3.0,uid=dave,gid=libvirt-qemu //nas/temp /media/nas/temp

仮想管理者の構成:

ここに画像の説明を入力してください。

ホスト視点の権限:

dave@host:~$ ll /media/nas/
drwxr-xr-x 2 dave        libvirt-qemu    0 Dez  6 15:36 temp/

ゲスト構成

/temp以下を介して(/media/nas/tempホストシステムに)インストール:

sudo mount -t 9p -o trans=virtio,version=9p2000.L /temp /media/temp

libvirt-qemuゲスト視点の権限(64055はホストグループのuid):

dave@guest:~$ ll /media
drwxr-xr-x  2 dave 64055    0 dec  6 15:36 temp/

質問

新しいファイル生成などの書き込み操作は、次のエラーをトリガします。

dave@guest:~$ touch /media/temp/myfile.log
touch: cannot touch '/media/temp/myfile.log': Permission denied

また、ホストオプションfile_modeからインストールを試みました。dir_mode

sudo mount -t cifs -o username=dave,vers=3.0,uid=dave,gid=libvirt-qemu,\
  file_mode=0777,dir_mode=0777 //nas/temp /media/nas/temp

ホスト視点の新しい権限:

dave@host:~$ ll /media/nas
drwxrwxrwx 2 dave        libvirt-qemu    0 Dez  6 15:36 temp/

奇妙なことに、別のエラーが発生します。

dave@guest:~$ touch /media/temp/myfile.log
touch: cannot touch '/media/temp/myfile.log': Operation not supported

何が起こるのか

  1. ホストは/media/nas/tempuserを使用して書き込むことができますdave

  2. ゲスト内からCIFS(同じ資格情報)を介して直接マウントできますが、現在の環境ではこれは不可能です。

  3. また、localhostフォルダをマウントして(/home/dave/Downloads/qemu-test同じ権限で)、ここに書き込むこともできます。この場合、権限は次のとおりです。

dave@host:~$ ll ~/Downloads/
drwxrwx---+  2 dave libvirt-qemu    4096 Dez  6 17:25 qemu-test/

質問

ネットワークまたはローカルフォルダを共有したい場合はなぜ違いますかmount -t 9p?示されているように、権限は同じでなければならず、ゲスト(?)に対してどのマウントポイントを共有するかは重要ではありません。

ホストシステムでネットワーク共有としてマウントされた共有フォルダをプログラムした人はいますか(もしそうなら)。

関連

ローカルフォルダ共有に関する同様の投稿:

答え1

もっと調査した後、これが私に役立ちました。重要事項:

  1. インストールモードをスカッシュ(通過またはマップされていない)に設定します。
  2. マウントポイントの所有者をlibvirt-qemuに設定し、グループをdave(ゲストで使用されるユーザー/ uid)に設定します。
  3. マウントCIFSオプションで設定しますfile_mode=0755dir_mode=0755

マウント例(ホスト):

sudo mount -t cifs -o username=dave,vers=3.11,uid=libvirt-qemu,gid=dave,file_mode=0775,dir_mode=0775 //nas/temp /media/nas/temp

広告1:他のモードでも同様のエラーが発生しました。

touch: xxx 設定時間: 対応するファイルやディレクトリなし

タッチ: '/media/temp/myfile.log'をタッチできません:操作はサポートされていません。

広告2:libvirt-qemuを不十分なグループに設定すると、「許可拒否」エラーが発生します。この質問ではその逆です。ゲストに正しい UID が選択されていることを確認してください。たとえば、ホストとゲストの dave に同じ UID を設定します。注:QEMU / KVM仮想マシンはlibvirt-qemuユーザーとして実行されます。

広告3:このオプションは、グループが属するグループに設定されているユーザーdaveがマウントポイントを書き込むことを可能にします(標準は読み取り専用)。

関連情報