Bagaimana saya bisa menyimpan file di folder bersama yang dipasang?

18

Saya menjalankan mesin virtual Fedora Workstation pada host Ubuntu.
Saya membuat folder /home/cl/sharedi guest dan me-mount folder bersama /media/cl/system/virtual/sharesebagai root mengikuti instruksi dari linux-kvm :

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

Saya dapat mengakses (membaca) file dan folder dari folder bersama, tetapi saya tidak dapat menulis kepada mereka.

Contoh: Saya mencoba menyimpan file mount-share.txtke folder /home/cl/share.

Kedua folder (host dan tamu) memiliki izin baca-tulis, namun saya menerima kesalahan

Error opening file '/home/cl/share/mount-share.txt': Operation not permitted.
  • Sistem operasi host: Ubuntu 15.10 desktop 64-bit
  • Sistem operasi tamu: Fedora 23 workstation 64-bit
  • Perangkat lunak virtualisasi: qemu qemu-kvm virt-manager
  • Lokasi sistem host: SSD internal pertama - format ext4
  • Lokasi penyimpanan virtual: HDD internal ke-2 - format NTFS
  • Lokasi folder bersama: HDD internal 2 - format NTFS

manajer kebajikan

Bagaimana saya bisa berbagi direktori antara tamu dan tuan rumah dan memungkinkan tamu akses baca-tulis?

sudo chmod a+x /media/cldan sudo chmod -R 777 /mediatidak mengubah situasi.

Sistem tamu:

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: -  

Sistem host:

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
cl-netbox
sumber
Mengapa Anda menggunakan NTFS untuk berbagi antara dua sistem linux? sudahkah Anda mencoba pengaturan yang sama dengan format file yang lebih asli?
Klaatu von Schlacker
2
@KlaatuvonSchlacker: HDD kedua berisi segala sesuatu yang tidak terkait sistem operasi dan diformat dengan ntfs agar fleksibel jika saya ingin mengakses data dengan sistem operasi lain, seperti Windows. Ketika saya menggunakan VirtualBox untuk virtualisasi, semuanya berfungsi dengan benar terkait berbagi folder.
cl-netbox
Mengenai pesan kesalahan ketika mencoba menulis ke sistem file: apakah Anda mendapatkan kesalahan itu ketika Anda mencoba menulis dari host, atau hanya ketika Anda mencoba menulis dari tamu?
Wildcard
@ Kartu Memori: Saya menerima pesan kesalahan ketika mencoba menulis (menyimpan) sesuatu dari dalam tamu.
cl-netbox

Jawaban:

14

Saya bisa mereproduksi masalah pada sistem saya.
Masalah utama Anda adalah batasan ACL dari host Anda.
Karena alasan ini, ubah atribut ACL libvirt-qemupengguna:

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

Ubah Modepengaturan Filesystem /host dari dari Passthroughmenjadi Mapped.


Mengapa? Itulah alasannya:

Sistem tamu Anda berjalan sebagai libvirt-qemupengguna dan pengaturan ACL Anda membatasi izin pengguna ini.

user:libvirt-qemu:--x

Output yang benar getfacladalah:

user:libvirt-qemu:rwx
AB
sumber
2

Jika tujuan utama Anda hanya untuk berbagi file bolak-balik, dan Anda terbuka untuk menggunakan TCP, Anda bisa saja berbagi file lebih dari ssh atau serupa.

Misalnya, jika Anda mengarahkan kembali port lokal ke port yang masuk akal pada tamu, Anda harus dapat menggunakan port itu untuk akses. Saya menggunakan SSH / SCP.

Saat meluncurkan VM saya:

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

Dan kemudian untuk mengakses VM, saya menggunakan SSH; Saya membuka terminal di mesin host saya:

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

fishatau sshfsdalam file manager GUI apa pun yang Anda gunakan berfungsi dengan baik, selama Anda mengatur porta.

Klaatu von Schlacker
sumber
1
Apa yang akan saya lakukan: pada host Ubuntu Anda, konfigurasikan server NFS yang melayani dir yang dibagikan (Anda dapat membuatnya baca-tulis ke klien). Dan cukup pasang di klien Fedora VM. Karena Anda memiliki konektivitas IP, ini kemungkinan besar akan berfungsi seperti pesona.
KWubbufetowicz