Korzystam z maszyny wirtualnej Fedora Workstation na hoście Ubuntu.
Utworzyłem folder /home/cl/share
w gościu i zamontowałem folder współdzielony /media/cl/system/virtual/share
jako root, postępując zgodnie z instrukcjami z linux-kvm :
mount -t 9p -o trans=virtio,version=9p2000.L /host /home/cl/share
Jestem w stanie uzyskać dostęp (odczyt) plików i folderów z folderów współdzielonych, ale nie mogę do nich pisać.
Przykład: próbuję zapisać plik mount-share.txt
w folderze /home/cl/share
.
Oba foldery (host i gość) mają uprawnienia do odczytu i zapisu, jednak pojawia się błąd
Error opening file '/home/cl/share/mount-share.txt': Operation not permitted.
- System operacyjny hosta: Ubuntu 15.10 desktop 64-bit
- System operacyjny gościa: stacja robocza Fedora 23 64-bitowa
- Oprogramowanie do wirtualizacji:
qemu
qemu-kvm
virt-manager
- Lokalizacja systemu hosta: 1. wbudowany dysk SSD - format ext4
- Lokalizacja wirtualnego miejsca przechowywania: 2. wbudowany dysk twardy - format NTFS
- Lokalizacja folderów współdzielonych: 2. wbudowany dysk twardy - format NTFS
Jak mogę udostępnić katalog pomiędzy gościem a gospodarzem i pozwolić gościowi na dostęp do odczytu i zapisu?
sudo chmod a+x /media/cl
i sudo chmod -R 777 /media
nie zmieniłem sytuacji.
System gościa:
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: -
System hosta:
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
kvm
qemu
virt-manager
cl-netbox
źródło
źródło
Odpowiedzi:
Mógłbym odtworzyć problem w moim systemie.
Twoim głównym problemem są ograniczenia ACL twojego hosta.
Z tego powodu zmień atrybuty ACL
libvirt-qemu
użytkownika:Zmień Modeustawienia dla Filesystem /host z
Passthrough
naMapped
.Dlaczego? To jest powód, dlaczego:
System gościa działa jako
libvirt-qemu
użytkownik, a ustawienia ACL ograniczają uprawnienia tego użytkownika.Prawidłowe wyjście
getfacl
powinno być:źródło
Jeśli twoim głównym celem jest po prostu udostępnianie plików tam iz powrotem, a ty jesteś otwarty na korzystanie z TCP, możesz po prostu udostępniać pliki przez ssh lub podobny.
Na przykład, jeśli przekierujesz port lokalny do sensownego portu gościa, powinieneś mieć możliwość korzystania z tego portu w celu uzyskania dostępu. Używam SSH / SCP.
Podczas uruchamiania mojej maszyny wirtualnej:
A następnie, aby uzyskać dostęp do VM, używam SSH; Otwieram terminal na moim hoście:
fish
lubsshfs
w dowolnym menedżerze plików GUI, którego używasz, działa równie dobrze, o ile ustawisz port.źródło