Ubuntu 호스트에서 Fedora Workstation 가상 머신을 실행하고 있습니다. 게스트에 폴더를 생성하고
아래 지침에 따라 공유 폴더를 루트로 마운트했습니다./home/cl/share
/media/cl/system/virtual/share
리눅스-kvm:
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비트
- 게스트 운영 체제: Fedora 23 Workstation 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
답변1
내 시스템에서 문제를 재현할 수 있습니다.
주요 문제는 호스트의 ACL 제한 사항입니다.
이렇게 하려면 사용자의 ACL 속성을 변경하십시오 libvirt-qemu
.
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를 사용합니다.
가상 머신을 시작할 때:
qemu-kvm [all your usual qemu options] -net nic -net user -redir tcp:22122::22
그런 다음 가상 머신에 액세스하기 위해 SSH를 사용하여 호스트 머신에서 터미널을 엽니다.
scp -P22122 myfile.txt klaatu@localhost:~/ssh-share-dir
fish
또는 sshfs
포트를 설정하는 한 어떤 GUI 파일 관리자를 사용하든지 가능합니다.