Доступ для чтения / записи для сквозных (9p) файловых систем с помощью libvirt / qemu?

14

Недавно я начал экспериментировать с поддержкой сквозных файловых систем в последних версиях 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, может помочь мне настроить сквозную файловую систему, которая позволит мне предоставить права на запись пользователю в гостевой системе хоста.

larsks
источник
Вы уверены, что смонтировали файловую систему для чтения / записи? Вы можете создавать файлы? Вы создаете файлы как пользователь root или обычный пользователь (да, я вижу ваш #, но вы, возможно, написали это вручную)?
Янус Троелсен
Вам удалось решить это? У меня похожая проблема, связанная с невозможностью записи на путь смонтированного хоста fs в гостевой системе.
Шон
Я никогда не делал никакого прогресса в этом. Это было своего рода нишевое приложение для меня ... Я обычно не запускаю гостей KVM в местах, где доступ к локальной файловой системе был бы полезен. Я запустил VirtualBox на своем рабочем столе, где время от времени хочу эту функцию.
Жаворонки
Вы видите какое-нибудь предупреждение selinux на физическом хосте или на госте?
c4f4t0r
Это может помочь? linux-kvm.org/page/9p_virtio
Данила Ладнер

Ответы:

5

Это кажется мне проблемой разрешения на хосте:

По умолчанию процесс qemu / kvm запускается как непривилегированный пользователь (libvirt-qemu в Debian Wheezy). Таким образом, только файлы, доступные (или доступные для записи) этим пользователем, доступны (доступны для записи) для гостей виртуальной машины.

Вы можете попытаться установить права собственности на каталог для пользователя. Qemu запускается как (см. User = и group = в /etc/libvirt/qemu.conf).

Может быть, это поможет в вашем случае?

matt_gnu
источник
1
Я попробовал это в моём случае, что совпадает с этим вопросом , но я не могу заставить его работать, даже с выключенным apparmor.
Косой
0

при запуске вашего монитора qemu в оболочке следует добавить «sudo» в качестве префикса. Я сделал это, чтобы решить проблему с разрешениями при создании файла или папки. моя среда Ubuntu16.04 + QEMU-2.12.

ianwang
источник