Der Ordner mit den VMs liegt auf einer zweiten Festplatte und aus irgendeinem Grund mag das der virt-manager so gar nicht. Ich habe noch einen alten Backup-Rechner auf dem auch Manjaro installiert ist und hier gibt es keinerleit Probleme, hier liegen die VMs aber auf der Systemplatte.
Ich habe schon im Netz nachgeschaut und bin auf folgenden Post gestoßen, kann damit aber nicht wirklich was anfangen und bräuchte hier etwas Unterstützung was und wo genau hier etwas zu machen ist.
Vielleicht kennt ja auch jemand von euch eine bessere Lösung.
Lass die Finger von temporären Mounts in /run/media, das ist gut für USB-Sticks aber nicht für interne Datenträger.
Mounte die Partition mit einem Systemd-Mount oder traditionell mit der fstab.
Es versteht sich von selbst, aber zur Sicherheit, Libvirt benötigt ein natives Linux Dateisystem für die Images. Wenn deine zweite Festplatte mit NTFS oder ähnlichem formatiert ist, klappt das auch nicht, fast egal was du macht.
Ich dachte er wollte die VM nur importieren - das hat fĂĽr mich impliziert, daĂź die .qcow2 Datei an die richtige Stelle verfrachtet wird.
Ist wohl nicht so.
Ich hab auf jeden Fall schon VM’s importiert, deren Dateien in meinem $HOME lagen - oder auf einem kurzfristig angesteckten Datenträger (Backup).
The issue is with the location of your virtual harddisk the .qcow2 file.
When creating a virtual machine by importing a .qcow2 the virtual disk is used as-is, it is not moved or copied anywhere - you need to manually place it in the virtual machine image storage pool.
Because your /run tree is volatile - it on exist in RAM - it is recreated on every run.
Virtual disks is default stored in /var/lib/libvirt/images so I suggest you copy the file to that location (use sudo cp <name>.qcow2 /var/lib/libvirt/images).
It is possible to maintain libraries - custom storage locations - maintained by accessing the properties of QEMU/KVM entry in Virtual Machine Manager. Rightclick → Details or double-click the entry → Storage tab.
Maschinelle Ăśbersetzung
Das Problem liegt am Speicherort Ihrer virtuellen Festplatte, der Datei „.qcow2“.
Beim Erstellen einer virtuellen Maschine durch Importieren einer „.qcow2“ wird die virtuelle Festplatte so wie sie ist verwendet, sie wird nirgendwo verschoben oder kopiert – Sie müssen sie manuell im Bildspeicherpool der virtuellen Maschine platzieren.
Da Ihr „/run“-Baum volatil ist – er existiert im RAM – wird er bei jedem Lauf neu erstellt.
Virtuelle Datenträger werden standardmäßig in „/var/lib/libvirt/images“ gespeichert, daher schlage ich vor, dass Sie die Datei an diesen Speicherort kopieren (verwenden Sie „sudo cp .qcow2/var/lib/libvirt/images“).
Es ist möglich, Bibliotheken – benutzerdefinierte Speicherorte – zu verwalten, indem Sie auf die Eigenschaften des QEMU/KVM-Eintrags im Virtual Machine Manager zugreifen. Klicken Sie mit der rechten Maustaste auf → Details oder doppelklicken Sie auf den Eintrag → Registerkarte „Speicher“.
Danke, ich werde das erstmal in einer VM nachstellen da meine SSD mit LUKS verschlüsselt ist, nicht dass ich mir da noch was total vermurkse. Wen es noch interessiert, in diesem Video hier wird sehr gut erklärt, wie man eine zweite Festplatte die verschlüsselt ist, in die fstab einträgt und autom. beim Booten freitschaltet und einhängt.
Es sei denn, Du willst jedesmal die externe Platte anstecken, um die VM nutzen zu können.
Man kann auch (problemlos) weitere storage pools definieren und die VM’s dann dort “lagern”.
Ich hatte z.B. ein Verzeichnis in $HOME angelegt und das als weiteren storage pool in den Einstellungen von virt-manager definiert.
Warum?
Weil ich eine separate $HOME Partition hatte auf der fast der gesamte Platz war -
der Rest des Systems (einschlieĂźlich des Standard-Speicherortes /var/lib/libvirt/images)
war einfach nicht groĂź genug (nur etwa 20 GB),
um dort mehrere je 20 GB bis 50 GB große Virtuelle Maschinen ablegen zu können.
Die .qcow2 Datei einmal an einen Ort kopieren, der als storage pool in virt-manager definiert ist und wo genug Platz ist - fertig.
So hatte ich das auch gemacht, also einen zweiten Storage Pool angelegt, da meine zweite interne SSD einfach viel größer ist als meine relativ kleine NVME mit 240GB. Hierbei sind dann halt die Probleme mit der Berechtigung (ISO und .qcow2 Dateien) aufgetreten.
Installation konnte nicht fertiggestellt werden: «Cannot access storage file '/run/media/test/DATEN/VMs_und_ISOs/VMs/Win11Light_SSD.qcow2' (as uid:955, gid:955): Keine Berechtigung»
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 67, in cb_wrapper
callback(asyncjob, *args, **kwargs)
~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/virt-manager/virtManager/createvm.py", line 1969, in _do_async_install
installer.start_install(guest, meter=meter)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/usr/share/virt-manager/virtinst/install/installer.py", line 722, in start_install
domain = self._create_guest(guest, meter, initial_xml, final_xml, doboot, transient)
File "/usr/share/virt-manager/virtinst/install/installer.py", line 664, in _create_guest
domain = self.conn.createXML(initial_xml or final_xml, 0)
File "/usr/lib/python3.13/site-packages/libvirt.py", line 4594, in createXML
raise libvirtError('virDomainCreateXML() failed')
libvirt.libvirtError: Cannot access storage file '/run/media/test/DATEN/VMs_und_ISOs/VMs/Win11Light_SSD.qcow2' (as uid:955, gid:955): Keine Berechtigung
Ich habe jetzt erstmal meine beiden virtuellen Testmaschinen unter /home/test/VMs_und_ISOs/VMs auf der kleinen NVME erstellt, dort gibt es keine Probleme mit fehlenden Berechtigungen.
It appears you have a need to store your virtual machine images on a removable disk, am I correct in the assumption?
If yes, then - to avoid the error message about the volatile path /run/.... - I recommend creating two systemd mount units to handle mounting the device on a static mount file system folder.
The units will serve the function of defining the folder to use for mounting and mount only when accessing the folder.
Es scheint, dass Sie die Bilder Ihrer virtuellen Maschine auf einer Wechseldiskette speichern mĂĽssen. Liege ich mit meiner Annahme richtig?
Wenn ja, dann - um die Fehlermeldung über den flüchtigen Pfad /run/... zu vermeiden - Ich empfehle die Erstellung von zwei systemd-Mount-Einheiten, um die Montage des Geräts in einem Systemordner mit statischer Mount-Datei zu übernehmen.
Die Einheiten dienen dazu, den fĂĽr die Montage zu verwendenden Ordner zu definieren und nur beim Zugriff auf den Ordner zu mounten.
Das habe ich übersehen – als Däne sollte ich besser Deutsch können, bin es aber nicht – Sie verwenden keine externe Festplatte, sondern eine interne.
Das macht es einfacher - erstellen Sie einen Eintrag in fstab, der auf einen festen Ordner verweist.
Wenn der Ordner `/var/lib/libvirt/images` leer ist
Attach your removable disk to the system, locate the device and set a file system label. Using a unique label will help when writing the mount unit targeting the partition, as it is easier when you have a name instead of the UUID.
In the example the device is /dev/sdc1 and the disk is already labelled.
Schließen Sie Ihre Wechseldatenträger an das System an, lokalisieren Sie das Gerät und legen Sie eine Dateisystembezeichnung fest. Die Verwendung einer eindeutigen Beschriftung ist beim Schreiben der Mount-Einheit hilfreich, die auf die Partition abzielt, da es einfacher ist, wenn Sie einen Namen anstelle der UUID haben.
Im Beispiel ist das Gerät /dev/sdc1 und die Festplatte ist bereits beschriftet.
Then proceed to create the units controlling (continue with the example, using the qemu-libvirt label) the device
Erstellen Sie dann die Einheiten, die das Gerät steuern (fahren Sie mit dem Beispiel fort und verwenden Sie das Label „qemu-libvirt“)
Mount-Einheit
Create a new file at /etc/systemd/system with the name a-qemu_libvirt.mount and paste the following content and save the file.
Erstellen Sie unter /etc/systemd/system eine neue Datei mit dem Namen a-qemu_libvirt.mount, fĂĽgen Sie den folgenden Inhalt ein und speichern Sie die Datei.
Automount-Einheit
Create a new file at /etc/systemd/system with the name a-qemy_libvirt.automount and past the following content and save the file
Erstellen Sie eine neue Datei unter /etc/systemd/system mit dem Namen a-qemy_libvirt.automount und fĂĽgen Sie den folgenden Inhalt ein und speichern Sie die Datei
Attach your disk and use the file manager to navigate to the folder, if you did it right, you should see the content of your removable disk.
With this in place, keep the disk attached and open the Virtual Machine Manager application, and navigate to the QEMU/KVM Storage tab as described above
Hängen Sie Ihre Festplatte an und navigieren Sie mit dem Dateimanager zum Ordner. Wenn Sie es richtig gemacht haben, sollten Sie den Inhalt Ihrer Wechselfestplatte sehen.
Halten Sie die Festplatte angeschlossen, öffnen Sie die Anwendung Virtual Machine Manager und navigieren Sie wie oben beschrieben zur Registerkarte QEMU/KVM Storage
Registerkarte „Speicher“ – klicken Sie auf die Schaltfläche „Pool hinzufügen“
- Name the pool **removable pool** or **qemu libvirt pool** something memorable
- Set the type to be **dir: Filesystem Directory**
- Set the target path to your mount folder **`/a/qemu_libvirt`**
Then click the Finish button
Nennen Sie den Pool entfernbarer Pool oder qemu libvirt Pool etwas Einprägsames
Legen Sie den Typ auf dir: Dateisystemverzeichnis fest
Legen Sie den Zielpfad zu Ihrem Mount-Ordner fest /a/qemu_libvirt
Klicken Sie dann auf die Schaltfläche Fertigstellen
Create a new virtual machine by import and point the process to use the newly created pool and select the relevant qcow2 image from that pool.
Erstellen Sie eine neue virtuelle Maschine, indem Sie importieren und den Prozess so ausrichten, dass er den neu erstellten Pool verwendet und das entsprechende „qcow2“-Bild aus diesem Pool auswählt.
Warum kopierst Du nicht die .qcow2 Datei von der externen Platte
in Deinen Storage Pool?
Dahin, wo sie hingehört.
Von wo aus Du sie ja wohl auch später benutzen willst.
Wo es keine Probleme mit Berechtigungen geben wird …