Я использую виртуальную машину Fedora Workstation на хосте Ubuntu.
Я создал папку /home/cl/share
в гостевой системе и подключил общую папку /media/cl/system/virtual/share
как root, следуя инструкциям из linux-kvm :
mount -t 9p -o trans=virtio,version=9p2000.L /host /home/cl/share
Я могу получить доступ (читать) файлы и папки из общих папок, но я не могу писать в них.
Пример: я пытаюсь сохранить файл mount-share.txt
в папку /home/cl/share
.
Обе папки (host и guest) имеют права на чтение и запись, но я получаю сообщение об ошибке
Error opening file '/home/cl/share/mount-share.txt': Operation not permitted.
- Операционная система хоста: Ubuntu 15.10, 64-битный рабочий стол
- Гостевая операционная система: 64-битная рабочая станция Fedora 23
- Программное обеспечение для виртуализации:
qemu
qemu-kvm
virt-manager
- Расположение хост-системы: 1-й встроенный SSD - формат ext4
- Расположение виртуального хранилища: 2-й встроенный жесткий диск - формат NTFS
- Расположение общих папок: 2-й встроенный жесткий диск - формат 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
kvm
qemu
virt-manager
сл-NetBox
источник
источник
Ответы:
Я мог воспроизвести проблему в моей системе.
Ваша главная проблема - ограничения ACL вашего хоста.
По этой причине измените атрибуты ACL
libvirt-qemu
пользователя:Измените Modeнастройки для Filesystem /host с
Passthrough
наMapped
.Почему? Вот почему:
Ваша гостевая система работает как
libvirt-qemu
пользователь, и ваши настройки ACL ограничивают разрешения этого пользователя.Правильный вывод
getfacl
должен быть:источник
Если ваша основная цель - просто обмениваться файлами назад и вперед, и вы открыты для использования TCP, вы можете просто обмениваться файлами через ssh или аналогичные.
Например, если вы перенаправите локальный порт на разумный порт гостя, вы сможете использовать этот порт для доступа. Я использую SSH / SCP.
При запуске моей виртуальной машины:
А затем для доступа к ВМ я использую SSH; Я открываю терминал на моей машине:
fish
илиsshfs
в любом файловом менеджере GUI, который вы используете, работает так же хорошо, пока вы устанавливаете порт.источник