KVM/Qemu - Wie Dateien zwischen Gast und Host austauschen
Hi, ich mache gerade die ersten Test mit KVM/Qemu. Installiert ist opensuse 15.3, sowohl als Gast als auch der Host. Mein aktuelles Problem ist der Dateiaustausch zwischen den Systemen. Das 'Reinkopieren in den Gast funktioniert noch via Drag&Drop, also auf beiden Systemen ein Dateimanager (Dolphin) öffnen und man kann per Maus einfach 'reinziehen. Das Rauskopieren funktioniert aber so nicht mehr, auch nicht per Tastatur C&P (dann wird nur der Dateipfad kopiert). Suche im Internet bringt diverse Anleitungen zu Tage, wo man über ein spezielles Dateisystem den Austausch bewerkstelligen kann, zB, die --> "https://www.admin-magazin.de/News/Tipps/ADMIN-Tipp-Verzeichnis-zwischen-VM-u..." (inhaltlich findet sich das mehrfach in leicht verschiedenen Varianten im Netz). Funktioniert aber nicht (oder ich mache was falsch). Das Einrichten innerhalb von KVM funktioniert noch problemlos, aber der letzte Schritt des Mountens in dem Gast schlägt fehl, Meldung "Spezialgerät nicht vorhanden" In beiden Fällen habe ich das "virtshare"-Verzeichnis im home-Verzeichnis des Benutzers angegeben und versuche dann mit mount -t 9p -o trans=virtio,version=9p2000.L 127.0.0.1:/home/user/virtshare /home/user/virtshare zu mounten. letzter Versuch war einfaches mount (nach Installation des nfs-servers auf dem Host und Einrichtung einer Freigabe - zu einem anderen physischen Rechner funktioniert die auch), gelingt aber nicht zu dem Gast, Meldung "requested nfs transport protocol version is not supported", bei dem Befehl mount -t nfs mount -t 9p -o trans=virtio,version=9p2000.L /virtshare /virtshare Problem könnten hier die unterschiedlichen IP-Adressen (Subnetz) sein, der Host hat (zB) 192.128.111.111 und der Gast hat 192.168.222.222. Beim Gast ist im Network-Manager auf "auto" eingestellt. Möglicherweise ändert sich die Ip auch mit jedem Neustart. Hat jemand eine Idee, wie man das hinkriegt? Mir würde es reichen, wenn das per D&D oder C&P funktionieren würde (wie das Reinkopieren) Jürgen
Am Sonntag, 20. Februar 2022, 18:30:30 CET schrieb Jürgen Hochwald:
Hi,
ich mache gerade die ersten Test mit KVM/Qemu. Installiert ist opensuse 15.3, sowohl als Gast als auch der Host.
Mein aktuelles Problem ist der Dateiaustausch zwischen den Systemen.
Das 'Reinkopieren in den Gast funktioniert noch via Drag&Drop, also auf beiden Systemen ein Dateimanager (Dolphin) öffnen und man kann per Maus einfach 'reinziehen. Das Rauskopieren funktioniert aber so nicht mehr, auch nicht per Tastatur C&P (dann wird nur der Dateipfad kopiert).
Suche im Internet bringt diverse Anleitungen zu Tage, wo man über ein spezielles Dateisystem den Austausch bewerkstelligen kann, zB, die --> "https://www.admin-magazin.de/News/Tipps/ADMIN-Tipp-Verzeichnis-zwischen-VM-> und-Host-teilen" (inhaltlich findet sich das mehrfach in leicht verschiedenen Varianten im Netz). Funktioniert aber nicht (oder ich mache was falsch). Das Einrichten innerhalb von KVM funktioniert noch problemlos, aber der letzte Schritt des Mountens in dem Gast schlägt fehl, Meldung "Spezialgerät nicht vorhanden" In beiden Fällen habe ich das "virtshare"-Verzeichnis im home-Verzeichnis des Benutzers angegeben und versuche dann mit
mount -t 9p -o trans=virtio,version=9p2000.L 127.0.0.1:/home/user/virtshare /home/user/virtshare
zu mounten.
letzter Versuch war einfaches mount (nach Installation des nfs-servers auf dem Host und Einrichtung einer Freigabe - zu einem anderen physischen Rechner funktioniert die auch), gelingt aber nicht zu dem Gast, Meldung "requested nfs transport protocol version is not supported", bei dem Befehl
mount -t nfs mount -t 9p -o trans=virtio,version=9p2000.L /virtshare /virtshare
Problem könnten hier die unterschiedlichen IP-Adressen (Subnetz) sein, der Host hat (zB) 192.128.111.111 und der Gast hat 192.168.222.222. Beim Gast ist im Network-Manager auf "auto" eingestellt. Möglicherweise ändert sich die Ip auch mit jedem Neustart.
Hat jemand eine Idee, wie man das hinkriegt? Mir würde es reichen, wenn das per D&D oder C&P funktionieren würde (wie das Reinkopieren)
Jürgen
Hallo, es benötigt keine IP Adresse in der mount Zeile. Im VirtManager muss der Quellpfad angegeben werden, wo die Daten am Host liegen. Bspw. "/home/user" Als Zielpfad wird ein fiktiver Name angegeben. Dieser wird an die VM als "Spezialgerät", wie es die Fehlermeldung nennt, übergeben. Also bspw. "/meinshare". Dann die VM starten und das FS mounten: Dazu muss, wie üblich ein leeres Target-Verzeichnis angelegt werden. Bspw. "/ home/user/virtshare" Damit lautet der mount-Befehl: mount -t 9p -o trans=virtio,version=9p2000.L,rw /meinshare /home/user/ virtshare Grüße Richard
Am 22.02.22 um 10:34 schrieb Richard Hafenscher:
Hallo,
es benötigt keine IP Adresse in der mount Zeile.
... Hallo, Habe mich jetzt nocheinmal damit beschäftigt und es hinbekommen, das Verzeichnis zu mounten. Allerdings ist das auch Sicht des Gastes nur lesbar, selbst als root kann ich nicht schreiben. Auf dem Host habe ich das Verzeichnis unter /home/user/virtshare angelegt (mit dem user als owner, damit der schreiben kann). Auf dem Gast genau das gleiche. Dann mit
mount -t 9p -o trans=virtio,version=9p2000.L -o rw /home/user/virtshare /home/user/virtshare
gemountet. Noch eine Idee, warum das nur lesbar ist ? Jürgen
Am Sonntag, 27. Februar 2022, 16:57:26 CET schrieb Jürgen Hochwald:
Habe mich jetzt nocheinmal damit beschäftigt und es hinbekommen, das Verzeichnis zu mounten. Allerdings ist das auch Sicht des Gastes nur lesbar, selbst als root kann ich nicht schreiben.
Auf dem Host habe ich das Verzeichnis unter /home/user/virtshare angelegt (mit dem user als owner, damit der schreiben kann). Auf dem Gast genau das gleiche. Dann mit
mount -t 9p -o trans=virtio,version=9p2000.L -o rw
/home/user/virtshare /home/user/virtshare
gemountet.
Noch eine Idee, warum das nur lesbar ist ?
Du musst wohl noch innerhalb der VM dem User die Rechte auf das Verzeichnis geben. Das Verzeichnis kannst du übrigens auch über die fstab statisch einbinden. Richard
Am 27.02.22 um 21:32 schrieb Richard Hafenscher:
Am Sonntag, 27. Februar 2022, 16:57:26 CET schrieb Jürgen Hochwald: ....
Noch eine Idee, warum das nur lesbar ist ?
Du musst wohl noch innerhalb der VM dem User die Rechte auf das Verzeichnis geben. Was muß ich da genau machen? Wie gesagt, ist das Verz. selbst als root (im Gastsystem) nicht schreibbar.
Das Verzeichnis kannst du übrigens auch über die fstab statisch einbinden.
Richard
Ich habe das Ganze jetzt noch einmal von Grund auf neu mit einem anderen Verzeichnis gemacht: (als root) cd /mnt mkdir virtshare chown user virtshare Das beim Host und Gast identisch gemacht (auch der Username ist auf beiden Systemen gleich). Anschließend im KVM-Manager das neue Verzeichnis konfiguriert ("nur schreibbar" ist da NICHT angehakt), Gast neu gestartet und das Verzeichnis gemoutet. *leider ist es wieder nur lesbar :-(((* Jürgen
Am Montag, 28. Februar 2022, 21:22:33 CET schrieb Jürgen Hochwald:
Am 27.02.22 um 21:32 schrieb Richard Hafenscher:
Am Sonntag, 27. Februar 2022, 16:57:26 CET schrieb Jürgen Hochwald:
....
Noch eine Idee, warum das nur lesbar ist ?
Du musst wohl noch innerhalb der VM dem User die Rechte auf das Verzeichnis geben.
Was muß ich da genau machen? Wie gesagt, ist das Verz. selbst als root (im Gastsystem) nicht schreibbar.
Das Verzeichnis kannst du übrigens auch über die fstab statisch einbinden.
Richard
Ich habe das Ganze jetzt noch einmal von Grund auf neu mit einem anderen Verzeichnis gemacht:
(als root) cd /mnt mkdir virtshare chown user virtshare
Das beim Host und Gast identisch gemacht (auch der Username ist auf beiden Systemen gleich). Anschließend im KVM-Manager das neue Verzeichnis konfiguriert ("nur schreibbar" ist da NICHT angehakt), Gast neu gestartet und das Verzeichnis gemoutet. *leider ist es wieder nur lesbar :-(((*
Jürgen
Hi, ich habe das hier zum Test auf einer OS 15.1 VM nun wiederholt gemacht. Host ist 15.3. Sonst habe ich das nur in einem LXC Container in Verwendung, wo das Verzeichnis fix eingebunden ist und im Container ohnehin nur gelesen werden muss. Ich habe auch mit root das Verzeichnis zum mounten erstellt, aber kein chown gemacht. Das Verzeichnis gehört also bis zum Mounten root. Im VirtManager den Typ "mount" und Modus "mapped". Ich habe hier zum Test ein Quellverzeichnis erwischt, welches mir gehört, allerdings auch ein Unterverzeichnis enthält, das root gehört. Wenn ich dann das Verzeichnis in der VM als root mounte, ist der Besitzer anschließend der User der am Desktop angemeldet ist, Gruppe ist root. Auf allen Unterverzeichnissen mit Ausnahme des von root ist der User Besitzer. Der User am Host und in der VM haben verschiedene Namen. Daher nehme ich an, dass die Rechte einfach gemäß der User ID gesetzt werden, die ist ident. Der User am Host ist Mitglied von den Gruppen libvirt und kvm, sollte vielleicht noch erwähnt werden. Einen Unterschied könnte der Modus in libvirt machen. Falls du es nicht zur Hand hast, hier ein Auszug dazu aus dem Handbuch: ------- Passthrough (Default): Files on the file system are directly created with the client-user's credentials. This is very similar to what NFSv3 is using. Squash: Same as Passthrough, but failure of privileged operations like chown are ignored. This is required when KVM is not run with root privileges. Mapped: Files are created with the file server's credentials ( qemu.qemu ). The user credentials and the client-user's credentials are saved in extended attributes. This model is recommended when host and guest domains should be kept completely isolated. ------- Also vielleicht einen anderen Modus versuchen. Und ich würde auch versuchen, die das Verzeichnis nach dem Mounten nochmals rekursive dem User zuzuweisen und Schreibrechte zu geben. Also chmod -R 775 ... chown -R user ... Grüße Richard
Am 28.02.22 um 22:25 schrieb Richard Hafenscher: .... Hi inzwischen habe ich es hinbekommen, daß Daten zwischen Host und Gast ausgetauscht werden können. Die Lösung ist, eine ganz normale NFS-Freigabe auf dem Host (da ich auf den Host auch von anderen Rechnern aus zugreifen muß, was da schon immer eine NFS-Freigabe eingerichtet). Diese Freigabe konnte ich auch in den KVM-Gast mounten.
mount -t nfs <IP des Host>:/<freigegebenes Verzeichnis>
Einen mount mit den KVM-Mitteln habe ich nicht hinbekommen (zumindest nicht schreib-bar), Habe alle hier vorgeschlagenen Varianten durchprobiert. Trotzdem noch einmal vielen Dank an alle, die hier Tips gegeben haben. Jürgen
participants (2)
-
Jürgen Hochwald
-
Richard Hafenscher