mount libvirt / 9p / kvm trong fstab không thể mount khi khởi động


17

Tôi đang cố gắn một thư mục dùng chung bằng qemu-kvm / 9p và nó không hoạt động nếu tôi thêm nó vào tệp fstab. Tôi gặp lỗi khi khởi động thiết bị không thể được gắn, nhưng sau khi khởi động nếu tôi chạy "mount -a" thì thiết bị sẽ được gắn.

dòng fstab:

src_mnt /src 9p trans=virtio 0 0

Từ dmesg tôi có thể thấy:

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

Và một vài dòng sau tôi thấy các mục "virtio-pci". Tôi không rõ làm thế nào tôi sẽ trì hoãn việc gắn cho đến khi thiết bị đó có sẵn.

Câu trả lời:


24

Không biết đó có phải là giải pháp lý tưởng không, nhưng trên một khách Ubuntu 12.04 tôi đã làm cho nó hoạt động bằng cách thêm các mô-đun 9p vào initramfs.

Đã thêm vào / etc / initramfs-tools / module:

9p
9pnet
9pnet_virtio

Sau đó:

sudo update-initramfs -u

Cảm ơn bạn - Tôi nghĩ rằng hợp lý của nó để nói đây là idealgiải pháp. Vấn đề là mô-đun không được gắn kết trong quá trình gắn kết hệ thống tệp, giải pháp của bạn là thêm nó vào danh sách các mô-đun được tải tại thời điểm gắn kết.
Greg

Tại sao điều này là lý tưởng?
lindhe

4

Trên Ubuntu 14.04, chỉ có 9pnet_virtiomô-đun cần tải trước theo câu trả lời của bhassel .

Các dmesg một vài dòng trước khi trích dẫn cho thấy hai dòng kia đã được tải nhưng không thể tìm thấy vận chuyển cần thiết.

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

Đã thử nghiệm với khách Ubuntu 14.04 trên qemu / KVM trên openSUSE 13.2.


Xin chào Tim, và chào mừng đến với trang web. Hãy nhớ rằng thứ tự của các câu trả lời có thể thay đổi cả bằng cách bỏ phiếu của cộng đồng cũng như tùy chọn của người dùng, vì vậy hãy cố gắng luôn luôn rõ ràng về câu trả lời mà bạn đang đề cập đến. Tôi đã sửa lỗi này ngay bây giờ trong bài viết của bạn; xin vui lòng làm như vậy trong tương lai. Cảm ơn!
một CVn

Điều này cũng hoạt động trên Ubuntu 16.04.
gỗ

Điều này cũng hoạt động trên Ubuntu 18.04
jackkamm

1

Vấn đề ở đây là làm thế nào gắn kết virtio được thiết lập trên máy chủ. Có hai cách để khắc phục vấn đề này.

Giải pháp 1: Sử dụng bản đồ thay vì vận chuyển

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

Điều này hoạt động, nhưng tất cả các tệp sẽ được sở hữu bởi người dùng libvirt đang chạy như. Điều này không hoạt động tốt cho các hệ thống tập tin tmp hoặc nhật ký.

Giải pháp 2: Chạy libvirt với quyền root và sử dụng thông qua

vi /etc/libvirt/qemu.conf

Sau đó bỏ ghi chú hoặc thêm:

user=root
group=root

Khởi động lại máy chủ hoặc khởi động lại tất cả các quy trình libvirt và qemu / kvm và sử dụng thông qua:

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

Mặc dù có thể có một số ý nghĩa bảo mật cho máy chủ lưu trữ, nhưng điều này làm cho uid: gid của các tệp trên máy chủ giống như trên máy khách, hoạt động tốt cho các hệ thống tệp nhật ký và tmp. Điều này xảy ra là những gì tôi làm trong tình huống này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.