マウントされた共有フォルダーにファイルを保存するにはどうすればよいですか?


18

UbuntuホストでFedoraワークステーション仮想マシンを実行しています。ゲストに
フォルダーを作成し、linux-kvmの指示に従って/home/cl/share共有フォルダー/media/cl/system/virtual/shareをルートとしてマウントしました。

mount -t 9p -o trans=virtio,version=9p2000.L /host /home/cl/share

共有フォルダーからファイルやフォルダーにアクセス(読み取り)できますが、書き込みはできません。

例:ファイルmount-share.txtをフォルダーに保存しようとしています/home/cl/share

両方のフォルダー(ホストとゲスト)に読み取り/書き込み権限がありますが、エラーが表示されます

Error opening file '/home/cl/share/mount-share.txt': Operation not permitted.
  • ホストオペレーティングシステム:Ubuntu 15.10デスクトップ64ビット
  • ゲストオペレーティングシステム:Fedora 23ワークステーション64ビット
  • 仮想化ソフトウェア: qemu qemu-kvm virt-manager
  • ホストシステムの場所:最初の組み込みSSD-ext4形式
  • 仮想ストレージの場所:2番目の内蔵HDD-NTFS形式
  • 共有フォルダーの場所:2番目の内蔵HDD-NTFS形式

virt-manager

ゲストとホスト間でディレクトリを共有し、ゲストに読み書きアクセスを許可するにはどうすればよいですか?

sudo chmod a+x /media/cl そして sudo chmod -R 777 /media、状況は変化しませんでした。

ゲストシステム:

ls -la /home/cl/share  
total 16  
drwxrwxrwx.  1 cl cl 4096 20. Jan 14:41 .  
drwx------. 18 cl cl 4096 24. Jan 19:11 ..  
drwxrwxrwx.  1 cl cl 4096 17. Dez 09:49 fedora  
drwxrwxrwx.  1 cl cl    0  5. Jan 11:43 solus  
drwxrwxrwx.  1 cl cl    0  6. Jan 12:10 ubuntu  
drwxrwxrwx.  1 cl cl 4096 24. Jan 16:58 various    

stat /home/cl/share  
  File: ‘/home/cl/share’  
  Size: 4096         Blocks: 8          IO Block: 4096   directory  
Device: 25h/37d    Inode: 135       Links: 1  
Access: (0777/drwxrwxrwx)  Uid: ( 1000/     cl)   Gid: ( 1000/      cl)  
Access: 2016-01-27 10:11:12.566303000 +0100  
Modify: 2016-01-26 21:34:48.647707300 +0100  
Change: 2016-01-26 21:34:48.647707300 +0100  
 Birth: -  

ホストシステム:

ls -ld /media /media/cl/ /media/cl/system /media/cl/system/virtual/ /media/cl/system/virtual/share  
drwxr-xr-x  3 root root 4096 Okt 22 16:06 /media  
drwxr-x---+ 6 root root 4096 Jan 24 10:49 /media/cl/  
drwxrwxrwx  1 cl   cl   4096 Jan 19 15:28 /media/cl/system  
drwxrwxrwx  1 cl   cl   4096 Jan 22 13:43 /media/cl/system/virtual/  
drwxrwxrwx  1 cl   cl   4096 Jan 20 14:41 /media/cl/system/virtual/share  

getfacl /media/cl/  
getfacl: Removing leading '/' from absolute path names  
# file: media/cl/  
# owner: root  
# group: root  
user::rwx  
user:libvirt-qemu:--x  
user:cl:r-x  
group::---  
mask::r-x  
other::---

ps aux | grep virt
root       988  0.0  0.2 1207024 39888 ?       Ssl  12:48   0:01 /usr/sbin/libvirtd  
libvirt+  1204  0.0  0.0  45268  2720 ?        S    12:48   0:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper  
root      1207  0.0  0.0  45240   368 ?        S    12:48   0:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper  
cl        4204  0.0  0.0  15184  2532 pts/2    S+   14:06   0:00 grep --color=auto virt

NTFSを使用して2つのLinuxシステム間で共有するのはなぜですか?よりネイティブなファイル形式でこの同じ設定を試しましたか?
クラトゥフォンシュラッカー

2
@KlaatuvonSchlacker:2番目のHDDには、オペレーティングシステムに関連しないものがすべて含まれており、Windowsなどの他のオペレーティングシステムでデータにアクセスする場合に備えて、ntfsでフォーマットされています。仮想化にVirtualBoxを使用すると、フォルダー共有に関してすべてが正しく機能します。
cl-netbox 16年

ファイルシステムに書き込もうとするときのエラーメッセージについて:ホストから書き込もうとしたとき、またはゲストから書き込もうとしたときにのみエラーが発生しますか?
ワイルドカード

@Wildcard:ゲスト内から何かを書き込み(保存)しようとすると、エラーメッセージが表示されます。
cl-netbox

回答:


14

システムで問題を再現できました。
主な問題は、ホストのACL制限です。
このため、libvirt-qemuユーザーのACL属性を変更します。

sudo setfacl -R -m u:libvirt-qemu:rwx /media/cl

Mode設定をFilesystem /host からPassthroughに変更しますMapped


どうして?それが理由です:

ゲストシステムはlibvirt-qemuユーザーとして実行され、ACL設定はこのユーザーの権限を制限します。

user:libvirt-qemu:--x

の正しい出力はgetfacl次のとおりです。

user:libvirt-qemu:rwx

2

主な目的が単にファイルを前後に共有することであり、TCPを使用することに開放している場合は、sshなどでファイルを共有できます。

たとえば、ローカルポートをゲストの適切なポートにリダイレクトすると、そのポートを使用してアクセスできるようになります。SSH / SCPを使用します。

VMを起動するとき:

qemu-kvm [all your usual qemu options] -net nic -net user -redir tcp:22122::22

そして、VMにアクセスするには、SSHを使用します。ホストマシンでターミナルを開きます。

scp -P22122 myfile.txt klaatu@localhost:~/ssh-share-dir

fishまたはsshfs、ポートを設定する限り、使用するGUIファイルマネージャーで同様に機能します。


1
私がすること:Ubuntuホストで、共有ディレクトリを提供するNFSサーバーを構成します(クライアントに読み書き可能にすることができます)。そして、単にFedora VMクライアントにマウントします。IP接続を持っているので、これはおそらく魅力のように機能します。
クブフェトウィトツ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.