libvirt / 9p / kvm mount in fstab non riesce a montare all'avvio


18

Sto cercando di montare una cartella condivisa usando qemu-kvm / 9p e non funziona se lo aggiungo al file fstab. Ricevo un errore all'avvio che il dispositivo non può essere montato, ma dopo l'avvio se eseguo "mount -a" il dispositivo verrà montato.

linea fstab:

src_mnt /src 9p trans=virtio 0 0

Da dmesg posso vedere:

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

E poche righe dopo vedo le voci "virtio-pci". Non sono chiaro su come rimanderei il montaggio fino a quando quel dispositivo non sarà disponibile.

Risposte:


24

Non so se sia la soluzione ideale, ma su un guest Ubuntu 12.04 l'ho fatto funzionare aggiungendo i moduli 9p a initramfs.

Aggiunto a / etc / initramfs-tools / modules:

9p
9pnet
9pnet_virtio

Poi:

sudo update-initramfs -u

Grazie - Penso che sia ragionevole dire che questa è la idealsoluzione. Il problema è che il modulo non è montato durante il montaggio del file system, la soluzione è aggiungerlo all'elenco dei moduli caricati al momento del montaggio.
Greg

Perché questo ideale?
Lindhe

4

Su Ubuntu 14.04 solo il 9pnet_virtiomodulo deve essere precaricato secondo la risposta di bhassel .

Il dmesg poche righe prima di quello citato mostra che gli altri due sono già caricati ma non riescono a trovare il trasporto richiesto.

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

Testato con guest Ubuntu 14.04 su qemu / KVM su openSUSE 13.2.


Ciao Tim, e benvenuto nel sito. Tieni presente che l'ordinamento delle risposte può cambiare sia in base al voto della community sia in base alle preferenze dell'utente, quindi cerca di essere sempre esplicito sulla risposta a cui ti riferisci. Ho risolto questo problema per ora nel tuo post; per favore fallo tu stesso in futuro. Grazie!
un CVn del

Funziona anche su Ubuntu 16.04.
Stalet,

Questo funziona anche su Ubuntu 18.04
jackkamm il

1

Il problema qui è come il virtio mount è impostato sull'host. Esistono due modi per risolvere questo problema.

Soluzione 1: utilizzare mappato anziché trasporto

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

Funziona, ma tutti i file saranno di proprietà dell'utente libvirt come. Questo non funziona bene per i file system tmp o log.

Soluzione 2: esegui libvirt come root e usa il passthrough

vi /etc/libvirt/qemu.conf

Quindi decommenta o aggiungi:

user=root
group=root

Riavvia l'host o riavvia tutti i processi libvirt e qemu / kvm e usa il passthrough:

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

Sebbene possano esserci alcune implicazioni di sicurezza per l'host, ciò rende uid: gid di file sull'host uguale a quello sul guest, che funziona bene con i file system log e tmp. Questo sembra essere quello che faccio in questa situazione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.