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


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.