Pagine: 1
salve a tutti, ho un problema nel creare una macchina con virt-manager.
L'errore è il seguente:
Impossibile completare l'installazione: 'Cannot access storage file '/run/media/matthew/archivio/VM/opensuse.img' (as uid:107, gid:107): Permission denied'
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 89, in cb_wrapper
callback(asyncjob, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/create.py", line 2553, in _do_async_install
guest.start_install(meter=meter)
File "/usr/share/virt-manager/virtinst/guest.py", line 498, in start_install
doboot, transient)
File "/usr/share/virt-manager/virtinst/guest.py", line 434, in _create_guest
domain = self.conn.createXML(install_xml or final_xml, 0)
File "/usr/lib64/python2.7/site-packages/libvirt.py", line 3659, in createXML
if ret is None:raise libvirtError('virDomainCreateXML() failed', conn=self)
libvirtError: Cannot access storage file '/run/media/matthew/archivio/VM/opensuse.img' (as uid:107, gid:107): Permission denied
Come potrei risolvere grazie
Ciao Fedorez,
vedo che l'immagine la prendi da un dispositivo esterno... Probabilmente si tratta di una posizione alla quale libvirt non può accedere; se si tratta di un filesystem che supporta i permessi (come ext4/btrfs/...) devi cambiare i permessi (abilita la lettura/scrittura per tutti), altrimenti (fat32/ntfs/...) o monti il dispositivo in maniera diversa, o ti conviene copiarlo (anche per migliorare le performance).
L'utente credo sia libvirt, non qemu; non serve impostarlo come eseguibile comunque. Potresti avere eventualmente anche un blocco da parte di SELinux (nel caso, guarda se ci sono avvisi e/o disabilitalo temporaneamente per escludere sia un problema di labeling/policy).
$ ll /run/media/matthew/archivio/VM/opensuse.img
Ultima modifica di marcomotta (16-06-2018 11:28:21)
La filosofia è una disciplina con obiettivi, ma senza regole. La matematica è una disciplina con regole, ma senza obiettivi.
Un giorno ho incontrato un uomo che non aveva né obiettivi né regole. Studiava filosofia della matematica.
ecco gli output
ll archivio
drwxr-xr-x+ 12 matthew matthew 4096 16 giu 11.43 archivio
getfacl -e archivio
# file: archivio/
# owner: matthew
# group: matthew
user::rwx
user:qemu:r-x #effective:r-x
group::--- #effective:---
group:libvirt:r-x #effective:r-x
mask::r-x
other::r-x
ll archivio/opensuse.img
-rwxrw-rw-+ 1 matthew matthew 327680 16 giu 11.43 archivio/opensuse.img
getfacl -e opensuse.img
# file: opensuse.img
# owner: matthew
# group: matthew
user::rwx
user:qemu:rw- #effective:rw-
group::r-- #effective:r--
group:libvirt:rw- #effective:rw-
mask::rw-
other::rw-
vorrei precisare alcune cose, il volume dove e contenuto l'immagine è cifrato con LUKS, non ho modificato il file /etc/libvirt/qemu.conf e virt-manager lo faccio partire come utente non root
dopo vari tentativi sono riuscito a risolvere con la seguente linea
sudo setfacl -R -mu:qemu:rwx /run/media/$USERNAME
solo che al successivo riavvio perdo le impostazioni.
Come posso eseguire quel comando automaticamente al montaggio del disco?
Dunque, non mi è chiaro se il tuo problema derivi dai permessi del file opensuse.img (ipotesi 1), o da quelli, preesistenti, della cartella dove viene montato il dispositivo (ipotesi 2).
Ipotesi 1
Stai montando un dispositivo esterno dove è presente il file opensuse.img, giusto?
Di che filesystem si tratta?
$ mount | grep "run/media"
Se si tratta di fat o ntfs, la gestione dei permessi può essere gestita da /etc/fstab, aggiungendo una riga come la seguente (da modificare se non è ntfs, ovviamente):
UUID=metti_qui_l_uuid /cartella/gia/esistente/dove/montare ntfs-3g uid=1000,nofail,x-gvfs-show,rw,user,umask=111,dmask=000 0 0
Al posto di 1000 bisogna mettere l'uid di qemu. Nel mio caso è 107, ma verifica:
$ id -u qemu
107
Ipotesi 2
Mi viene in mente di creare una regola di udev (che deve partire quando inserisci quel device) e un servizio di systemd per eseguire il comando che ti risolve il problema quando la regola viene eseguita. Dai un'occhiata a questo messaggio (punti 7 e 8, il resto non serve qui). In questo momento non sono sicuro dei dettagli; vedi tu se ti può essere utile per lavorarci su.
Al mondo ci sono 10 tipi di persone: quelle che conoscono la numerazione binaria e quelle che non la capiscono.
ciao quark,
Il secondo caso mi riguarda perchè bastava semplicemente cambiare i permessi alla directory subito dopo /run/media/ anche senza cambiarli al file opensuse.
Mi servirebbe un aiuto su COME e DOVE creare la regola inserendo la riga RUN+="/usr/bin/setfacl -R -mu:qemu:rwx /run/media/$USERNAME/", se metterla in /etc/udev/rules.d o editare un apposito file in /usr/lib/udev/rules.d/.
Dai un'occhiata a questa discussione.
Al mondo ci sono 10 tipi di persone: quelle che conoscono la numerazione binaria e quelle che non la capiscono.
Pagine: 1