마운트 된 공유 폴더에 파일을 어떻게 저장합니까?


18

우분투 호스트에서 Fedora Workstation 가상 머신을 실행하고 있습니다. 게스트에
폴더 /home/cl/share를 만들고 linux-kvm/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 desktop 64-bit
  • 게스트 운영 체제 : Fedora 23 워크 스테이션 64 비트
  • 가상화 소프트웨어 : qemu qemu-kvm virt-manager
  • 호스트 시스템 위치 : 첫 번째 내장 SSD-ext4 형식
  • 가상 저장 위치 : 두 번째 내장 HDD-NTFS 형식
  • 공유 폴더 위치 : 두 번째 내장 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를 사용하여 두 개의 Linux 시스템간에 공유하는 이유는 무엇입니까? 더 기본 파일 형식으로 동일한 설정을 시도 했습니까?
— Klaatu von Schlacker

2
@KlaatuvonSchlacker : 두 번째 HDD에는 운영 체제와 관련이 없으며 ntfs로 포맷되어 Windows와 같은 다른 운영 체제로 데이터에 액세스하려는 경우 융통성이 있도록 모든 것이 포함됩니다. 가상화에 VirtualBox를 사용하면 폴더 공유와 관련된 모든 것이 올바르게 작동합니다.
— cl-netbox

파일 시스템에 쓰려고 할 때 발생하는 오류 메시지와 관련하여 : 호스트에서 쓰려고 할 때 또는 게스트에서 쓰려고 할 때만 오류가 발생합니까?
— 와일드 카드

@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 연결이 가능하므로 매력처럼 작동합니다.
— KWubbufetowicz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.