Недавно я начал экспериментировать с поддержкой сквозных файловых систем в последних версиях KVM / QEMU / libvirt. Сделать файловые системы доступными для чтения только что сработало, но я немного озадачен тем, как должен работать доступ на запись. После монтирования файловой системы в гостевой системе:
# mount -t 9p -o trans=virtio /fs/data /mnt
Я могу изменить существующий файл, если у него есть режим o+w
:
# cd /mnt/work
# ls -l foo
-rw-rw-rw-. 1 root root 17 Dec 20 11:16 foo
# cat foo
this is line one
# echo this is line two >> foo
# cat foo
this is line one
this is line two
Но независимо от прав доступа к каталогу я не могу создать новый файл или каталог:
# ls -ld /mnt/work
drwxrwxrwx. 2 root root 4096 Dec 20 11:16 /mnt/work
# cd /mnt/work
# touch bar
touch: setting times of `bar': No such file or directory
# mkdir bar
# mkdir: cannot create directory `bar': Operation not permitted
Документация, которую я смог найти (например, это ), явно не решает эту проблему. Я надеюсь, что кто-то здесь, в Serverfault, может помочь мне настроить сквозную файловую систему, которая позволит мне предоставить права на запись пользователю в гостевой системе хоста.
virtualization
filesystems
libvirt
qemu
9p
larsks
источник
источник
Ответы:
Это кажется мне проблемой разрешения на хосте:
По умолчанию процесс qemu / kvm запускается как непривилегированный пользователь (libvirt-qemu в Debian Wheezy). Таким образом, только файлы, доступные (или доступные для записи) этим пользователем, доступны (доступны для записи) для гостей виртуальной машины.
Вы можете попытаться установить права собственности на каталог для пользователя. Qemu запускается как (см. User = и group = в /etc/libvirt/qemu.conf).
Может быть, это поможет в вашем случае?
источник
при запуске вашего монитора qemu в оболочке следует добавить «sudo» в качестве префикса. Я сделал это, чтобы решить проблему с разрешениями при создании файла или папки. моя среда Ubuntu16.04 + QEMU-2.12.
источник