Wie kann man in QEMU einen Shared Folder einrichten?

Melden
  1. Einführung in QEMU und Shared Folders
  2. Möglichkeiten der Einrichtung eines Shared Folders in QEMU
  3. Einrichten eines Shared Folders mit virtio-9p
  4. Alternative Methoden für Shared Folders in QEMU
  5. Fazit

Einführung in QEMU und Shared Folders

QEMU ist ein leistungsfähiger Emulator und Virtualisierer, der es ermöglicht, verschiedene Betriebssysteme als virtuelle Maschinen auszuführen. Eine häufige Anforderung beim Arbeiten mit virtuellen Maschinen ist der Austausch von Dateien zwischen dem Host-System und der Gast-VM. Dies wird oft mithilfe eines sogenannten "Shared Folders" oder freigegebenen Ordners realisiert, der es beiden Systemen ermöglicht, auf denselben Ordner zuzugreifen.

Möglichkeiten der Einrichtung eines Shared Folders in QEMU

Im Gegensatz zu anderen Virtualisierungslösungen wie VirtualBox oder VMware besitzt QEMU keine native, integrierte Funktion, um Shared Folders auf einfache Weise einzurichten. Dennoch gibt es mehrere Methoden, um Dateiaustausch zwischen Host und Gast zu ermöglichen. Eine der gebräuchlichsten Methoden ist die Verwendung von virtio-9p, ein Protokoll, das den Dateizugriff zwischen Host und Gast über einen sogenannten 9p-Dateisystemtreiber ermöglicht. Dies setzt voraus, dass der Gast die 9p-Unterstützung hat.

Einrichten eines Shared Folders mit virtio-9p

Um einen Shared Folder mit 9p zu verwenden, muss auf der Host-Seite beim Start der QEMU-VM ein spezieller Parameter hinzugefügt werden. Dabei wird der Ordner, der vom Host freigegeben werden soll, über den Parameter -virtfs eingebunden. Beispielsweise kann folgender Befehl verwendet werden:

qemu-system-x86_64 -virtfs local,path=/pfad/zum/freigegebenen/ordner,mount_tag=sharedfolder,security_model=passthrough,id=sharedfolder

Dabei bezeichnet "path" den Pfad auf dem Host, "mount_tag" einen Namen für die Freigabe, der im Gast zum Mounten verwendet wird, und "security_model=passthrough" sorgt dafür, dass die Zugriffsrechte möglichst unverändert bleiben. Im Gast-Betriebssystem muss dann der 9p-Treiber geladen sein und der Ordner mit dem angegebenen mount_tag eingebunden werden. Ein Beispiel für den Mount-Befehl im Linux-Gastsystem lautet:

mount -t 9p -o trans=virtio,version=9p2000.L sharedfolder /mnt

Nach diesem Vorgang ist der Ordner /mnt im Gast-System mit dem Host-Ordner synchronisiert und kann zum Austausch von Dateien verwendet werden.

Alternative Methoden für Shared Folders in QEMU

Neben 9p gibt es noch andere Möglichkeiten, Dateien zwischen Host und Gast auszutauschen, wobei einige davon allerdings auf Netzwerkfreigaben setzen. So kann man beispielsweise Samba (SMB/CIFS) nutzen, um einen Ordner auf dem Hostnetzwerk zu teilen, den die VM dann per Netzwerkmount einbindet. Dies erfordert mehr Setup auf Host und Gastseite, wird aber unabhängig vom Gastbetriebssystem unterstützt.

Eine weitere Möglichkeit ist das Verwenden von virtIO-Blockgeräten oder eben das einfache Einbinden von ISO-Images, die mit den gewünschten Dateien erstellt werden. Allerdings sind diese Lösungen meist weniger dynamisch und bieten keinen kontinuierlichen Datei-Austausch.

Fazit

Das Einrichten eines Shared Folders in QEMU ist zwar nicht so komfortabel wie bei anderen Virtualisierern, aber insbesondere die Verwendung von virtio-9p bietet eine gute und performante Lösung. Voraussetzung ist, dass der Gast das 9p-Dateisystem unterstützt und die passenden Optionen beim Start von QEMU übergeben werden. Alternative Methoden wie Netzwerkfreigaben bieten mehr Flexibilität, sind aber meist aufwändiger in der Einrichtung.

0