Das Einhängen von libvirt / 9p / kvm in fstab schlägt beim Booten fehl

8578
edA-qa mort-ora-y

Ich versuche, einen freigegebenen Ordner mit qemu-kvm / 9p einzuhängen, und es funktioniert nicht, wenn ich ihn zur fstab-Datei hinzufüge. Ich erhalte beim Booten eine Fehlermeldung, dass das Gerät nicht gemountet werden kann. Wenn ich jedoch "mount -a" starte, wird das Gerät gemountet.

fstab line:

src_mnt /src 9p trans=virtio 0 0 

Von dmesg kann ich sehen:

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

Und ein paar Zeilen später sehe ich die "virtio-pci" -Einträge. Mir ist nicht klar, wie ich die Montage verschieben würde, bis das Gerät verfügbar ist.

16

3 Antworten auf die Frage

23
bhassel

Don't know if it's the ideal solution, but on an Ubuntu 12.04 guest I got it to work by adding the 9p modules to the initramfs.

Added to /etc/initramfs-tools/modules:

9p 9pnet 9pnet_virtio 

Then:

sudo update-initramfs -u 
Vielen Dank - ich denke, es ist vernünftig zu sagen, dass dies die "ideale" Lösung ist. Das Problem ist, dass das Modul während des Dateisystemmount nicht eingehängt ist. Sie können es der Liste der zum Zeitpunkt des Ladens geladenen Module hinzufügen. Greg vor 11 Jahren 0
Warum ist das ideal? lindhe vor 8 Jahren 0
3
Tim N

Unter Ubuntu 14.04 muss nur das 9pnet_virtioModul gemäß der Antwort von bhassel vorgeladen werden .

Das dmesg ein paar Zeilen vor der zitierten Zeile zeigt, dass die anderen beiden bereits geladen sind, aber den erforderlichen Transport nicht finden können.

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

Getestet mit Ubuntu 14.04 guest auf qemu / KVM unter openSUSE 13.2.

Hallo Tim, und willkommen auf der Website. Denken Sie daran, dass sich die Reihenfolge der Antworten sowohl durch das Community-Voting als auch durch die Benutzereinstellungen ändern kann. Versuchen Sie daher, immer explizit zu sagen, auf welche Antwort Sie sich beziehen. Ich habe das jetzt für Sie in Ihrem Beitrag korrigiert. bitte machen sie das in der zukunft. Vielen Dank! a CVn vor 9 Jahren 0
Dies funktioniert auch auf Ubuntu 16.04. stalet vor 8 Jahren 0
1
Fmstrat

Das Problem hierbei ist, wie der virtio-Mount auf dem Host eingerichtet ist. Es gibt zwei Möglichkeiten, dieses Problem zu beheben.

Lösung 1: Verwenden Sie die Zuordnung statt Transport

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

Dies funktioniert, aber alle Dateien gehören dem Benutzer, unter dem libvirt ausgeführt wird. Dies funktioniert nicht gut für TMP- oder Log-Dateisysteme.

Lösung 2: Führen Sie libvirt als root aus und verwenden Sie Passthrough

vi /etc/libvirt/qemu.conf 

Dann unkommentieren oder hinzufügen:

user=root group=root 

Starten Sie den Host neu oder starten Sie alle libvirt- und qemu / kvm-Prozesse neu und verwenden Sie Passthrough:

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

Obwohl es für den Host einige Sicherheitsauswirkungen geben kann, wird die uid: -ID der Dateien auf dem Host genauso wie auf dem Gast, was für Log- und TMP-Dateisysteme gut geeignet ist. Das ist es, was ich in dieser Situation tue.