Назад | Перейти на главную страницу

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

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

Мне кажется, что это проблема с разрешением на хосте:

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

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

Может это поможет в твоем случае?

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