Die Bereitstellung von libvirt / 9p / kvm in fstab schlägt beim Start fehl


17

Ich versuche, einen freigegebenen Ordner mit qemu-kvm / 9p bereitzustellen, und es funktioniert nicht, wenn ich es der 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. Ich bin nicht sicher, wie ich die Montage verschieben würde, bis das Gerät jedoch verfügbar ist.

Antworten:


24

Ich weiß nicht, ob es die ideale Lösung ist, aber auf einem Ubuntu 12.04-Gast habe ich es geschafft, indem ich die 9p-Module zu den initramfs hinzugefügt habe.

Hinzugefügt zu / etc / initramfs-tools / modules:

9p
9pnet
9pnet_virtio

Dann:

sudo update-initramfs -u

Vielen Dank - ich denke, es ist vernünftig zu sagen, dass dies die idealLösung ist. Das Problem ist, dass das Modul beim Einhängen des Dateisystems nicht angehängt wird. Sie können es zur Liste der Module hinzufügen, die beim Einhängen geladen werden.
Greg

Warum ist das ideal?
Lindhe

4

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

Das dmesg ein paar Zeilen vor dem zitierten 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 Gast unter qemu / KVM unter openSUSE 13.2.


Hallo Tim, und willkommen auf der Seite. Bedenken Sie, dass sich die Reihenfolge der Antworten sowohl durch Community-Abstimmungen als auch durch Benutzereinstellungen ändern kann. Versuchen Sie daher, immer genau anzugeben, auf welche Antwort Sie sich beziehen. Ich habe das jetzt in deinem Post behoben. Bitte machen Sie dies in Zukunft selbst. Vielen Dank!
ein Lebenslauf vom

Dies funktioniert auch auf Ubuntu 16.04.
Stalet

Dies funktioniert auch auf Ubuntu 18.04
Jackkamm

1

Das Problem hierbei ist, wie das virtio mount auf dem Host eingerichtet ist. Es gibt zwei Möglichkeiten, um dieses Problem zu beheben.

Lösung 1: Verwenden Sie die Karte anstelle des Transports

<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 Protokolldateisysteme.

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

vi /etc/libvirt/qemu.conf

Dann Kommentar entfernen 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>

Während es einige Sicherheitsauswirkungen für den Host geben kann, entspricht dies der UID: GID von Dateien auf dem Host der auf dem Gast, was für Protokoll- und TMP-Dateisysteme gut funktioniert. Dies ist zufällig das, was ich in dieser Situation tue.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.