libvirt / 9p / kvm เมานต์ใน fstab ไม่สามารถเมานต์ได้ในเวลาบูท


17

ฉันกำลังพยายามเมานต์โฟลเดอร์แชร์โดยใช้ qemu-kvm / 9p และไม่สามารถทำงานได้หากฉันเพิ่มลงในไฟล์ fstab ฉันพบข้อผิดพลาดขณะบู๊ตซึ่งไม่สามารถติดตั้งอุปกรณ์ได้ แต่หลังจากเริ่มถ้าฉันเรียกใช้ "mount -a" อุปกรณ์จะถูกเมานต์

สาย fstab:

src_mnt /src 9p trans=virtio 0 0

จาก dmesg ฉันเห็น:

[    7.606258] 9p: Could not find request transport: virtio

และไม่กี่บรรทัดต่อมาฉันเห็นรายการ "virtio-pci" ฉันไม่ชัดเจนเกี่ยวกับวิธีเลื่อนการติดตั้งจนกว่าอุปกรณ์จะพร้อมใช้งาน

คำตอบ:


24

ไม่ทราบว่าเป็นโซลูชันที่เหมาะสมหรือไม่ แต่สำหรับผู้เยี่ยมชม Ubuntu 12.04 ฉันได้รับมันให้ทำงานโดยเพิ่มโมดูล 9p ลงใน initramfs

เพิ่มไปยัง / etc / initramfs-tools / modules:

9p
9pnet
9pnet_virtio

แล้ว:

sudo update-initramfs -u

ขอบคุณ - ฉันคิดว่ามันสมเหตุสมผลที่จะพูดว่านี่คือ ideal สารละลาย. ปัญหาคือโมดูลไม่ได้ถูกเมาต์ระหว่างการเมาท์ระบบไฟล์โซลูชันของคุณคือการเพิ่มลงในรายการโมดูลที่โหลดในเวลาเมานท์
Greg

ทำไมอุดมคตินี้
lindhe

3

บน Ubuntu 14.04 เท่านั้น 9pnet_virtio โมดูลต้องการโหลดล่วงหน้าตาม คำตอบของ bhassel .

dmesg สองสามบรรทัดก่อนหนึ่งบรรทัดที่ยกมาแสดงว่าอีกสองบรรทัดถูกโหลดแล้ว แต่ไม่พบการขนส่งที่ต้องการ

[ 1.370611] 9pnet: Installing 9P2000 support 
[ 1.376384] 9p: Installing v9fs 9p2000 file system support 
[ 1.376754] 9pnet: Could not find request transport: virtio 

ทดสอบกับแขก Ubuntu 14.04 บน qemu / KVM บน openSUSE 13.2


สวัสดีทิมและยินดีต้อนรับสู่เว็บไซต์ โปรดทราบว่าการเรียงลำดับของคำตอบสามารถเปลี่ยนได้ทั้งจากการโหวตของชุมชนและการตั้งค่าของผู้ใช้ดังนั้นให้พยายามอธิบายให้ชัดเจนว่าคำตอบใดที่คุณอ้างถึง ฉันได้แก้ไขสิ่งนี้ในตอนนี้ในโพสต์ของคุณ โปรดทำด้วยตัวเองในอนาคต ขอบคุณ!
a CVn

ใช้งานได้กับ Ubuntu 16.04 เช่นกัน
stalet

1

ปัญหานี่คือวิธีการติดตั้ง virtio บนโฮสต์ มีสองวิธีในการแก้ไขปัญหานี้

โซลูชันที่ 1: ใช้แมปแทนการขนส่ง

<filesystem type='mount' accessmode='mapped'>
  <source dir='/src_dir'/>
  <target dir='src'/>
</filesystem>

ใช้งานได้ แต่ไฟล์ทั้งหมดจะเป็นของผู้ใช้ libvirt กำลังทำงาน สิ่งนี้ใช้งานไม่ได้กับระบบ tmp หรือล็อกไฟล์

โซลูชันที่ 2: เรียกใช้ libvirt เป็น root และใช้ passthrough

vi /etc/libvirt/qemu.conf

จากนั้นไม่แสดงข้อคิดเห็นหรือเพิ่ม:

user=root
group=root

รีบูตโฮสต์หรือรีสตาร์ทกระบวนการ libvirt และ qemu / kvm ทั้งหมดและใช้ passthrough:

<filesystem type='mount' accessmode='passthrough'>
  <source dir='/src_dir'/>
  <target dir='src'/>
</filesystem>

ในขณะที่อาจมีผลกระทบด้านความปลอดภัยสำหรับโฮสต์สิ่งนี้ทำให้ uid: gid ของไฟล์ในโฮสต์เหมือนกับแขกซึ่งทำงานได้ดีสำหรับระบบไฟล์ log และ tmp นี่เป็นสิ่งที่ฉันทำในสถานการณ์นี้

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