Saya baru-baru ini mulai bereksperimen dengan dukungan untuk passthrough filesystems dalam versi terbaru KVM / QEMU / libvirt. Membuat filesystem yang tersedia untuk akses baca "baru saja berfungsi", tapi saya agak bingung bagaimana seharusnya akses tulis berfungsi. Setelah memasang sistem file di tamu:
# mount -t 9p -o trans=virtio /fs/data /mnt
Saya dapat memodifikasi file yang ada jika memiliki mode 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
Tetapi terlepas dari izin direktori, saya tidak dapat membuat file atau direktori baru:
# 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
Dokumentasi yang saya dapat temukan (misalnya, ini ) tidak secara eksplisit membahas masalah ini. Saya berharap seseorang di sini di Serverfault dapat membantu saya mengatur filesystem passthrough yang akan memungkinkan saya memberikan akses tulis ke pengguna di guest ke host filesystem.
virtualization
filesystems
libvirt
qemu
9p
larsks
sumber
sumber
Jawaban:
Bagi saya ini sepertinya masalah izin pada host:
Secara default, proses qemu / kvm dimulai sebagai pengguna yang tidak memiliki hak istimewa (libvirt-qemu di Debian Wheezy). Jadi hanya file yang dapat diakses (atau dapat ditulisi) oleh pengguna tersebut yang dapat diakses (dapat ditulis) oleh tamu VM.
Anda dapat mencoba mengatur kepemilikan direktori untuk menjalankan qemu pengguna sebagai (lihat pengguna = dan grup = di /etc/libvirt/qemu.conf)
Mungkin ini membantu dalam kasus Anda?
sumber
saat memulai monitor qemu Anda di shell, seharusnya menambahkan "sudo" sebagai awalan. Saya melakukannya untuk menyelesaikan masalah izin saat membuat file atau folder. lingkungan saya adalah ubuntu16.04 + qemu-2.12.
sumber