Kvm
如何將文件儲存在已掛載的共享文件夾中?
我在 Ubuntu 主機上執行 Fedora Workstation 虛擬機。
我
/home/cl/share
在來賓中創建了一個文件夾,並按照linux-kvm/media/cl/system/virtual/share
的說明將共享文件夾安裝為 root :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 格式
- 虛擬儲存位置:第二個內置硬碟 - NTFS 格式
- 共享文件夾位置:第二個內置硬碟 - NTFS 格式
如何在來賓和主機之間共享目錄並允許來賓讀寫訪問?
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
我可以在我的系統上重現該問題。
您的主要問題是主機的 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