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

2 ответа

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

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

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

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

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

Другие вопросы по тегам