การเข้าถึงแบบอ่าน / เขียนสำหรับระบบไฟล์ passthrough (9p) ด้วย libvirt / qemu?


14

ฉันเพิ่งเริ่มการทดลองด้วยการสนับสนุนสำหรับระบบไฟล์ passthrough ในเวอร์ชันล่าสุดของ 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 สามารถช่วยฉันตั้งค่าระบบไฟล์ passthrough ที่จะอนุญาตให้ฉันให้สิทธิ์การเขียนกับผู้ใช้ในเกสต์กับระบบไฟล์โฮสต์


คุณแน่ใจหรือไม่ว่าคุณได้ติดตั้งระบบไฟล์เพื่ออ่าน / เขียน? คุณสร้างไฟล์ได้ไหม คุณกำลังสร้างไฟล์ในฐานะผู้ใช้รูทหรือผู้ใช้ทั่วไป (ใช่ฉันเห็น # ของคุณ แต่คุณอาจเขียนด้วยตนเอง)?
Janus Troelsen

คุณจัดการเพื่อแก้ไขปัญหานี้หรือไม่? ฉันมีปัญหาคล้ายกันที่ไม่สามารถเขียนไปยังโฮสต์ fs พา ธ ในเกสต์ได้
Shoan

ฉันไม่เคยทำอะไรเกี่ยวกับเรื่องนี้เลย มันเป็นแอปพลิเคชันเฉพาะสำหรับฉัน ... โดยทั่วไปฉันไม่ได้ใช้แขกของ KVM ในสถานที่ที่การเข้าถึงระบบไฟล์ในท้องถิ่นจะมีประโยชน์ ฉันใช้เพื่อเรียกใช้ VirtualBox บนเดสก์ท็อปของฉันซึ่งฉันต้องการคุณลักษณะนี้เป็นครั้งคราว
larsks

คุณเห็นการแจ้งเตือน selinux ใด ๆ ในโฮสต์จริงหรือแขก?
c4f4t0r

สิ่งนี้อาจช่วยได้อย่างไร linux-kvm.org/page/9p_virtio
Danila Ladner

คำตอบ:


5

ดูเหมือนว่าฉันจะชอบปัญหาสิทธิ์ในโฮสต์:

โดยค่าเริ่มต้นกระบวนการ qemu / kvm เริ่มต้นในฐานะผู้ใช้ที่ไม่มีสิทธิพิเศษ (libvirt-qemu ใน Debian Wheezy) ดังนั้นไฟล์ที่สามารถเข้าถึงได้ (หรือเขียนได้) โดยผู้ใช้นั้นจะสามารถเข้าถึงได้ (เขียนได้) โดยแขก VM

คุณอาจลองตั้งค่าความเป็นเจ้าของของไดเรกทอรีให้กับผู้ใช้ qemu ถูกเรียกใช้เป็น (ดู user = และ group = ใน /etc/libvirt/qemu.conf)

บางทีนี่อาจช่วยคุณได้


1
ฉันได้ลองในกรณีของฉันซึ่งเป็นเช่นเดียวกับคำถามนี้แต่ฉันไม่สามารถใช้งานได้แม้จะปิดการใช้งาน
Diagon

0

เมื่อเริ่มต้นการตรวจสอบ qemu ของคุณในเปลือกควรเพิ่ม "sudo" เป็นคำนำหน้า ฉันทำเพื่อแก้ไขปัญหาสิทธิ์เมื่อสร้างไฟล์หรือโฟลเดอร์ สภาพแวดล้อมของฉันคือ ubuntu16.04 + qemu-2.12

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.