KVM no se pueden elegir ISOs fuera de /var/lib/libvirt/images

No tengo claro qué puede estar provocando que en mi reciente instalación de Debian 12 no me deje elegir ficheros ISO de cualquier ruta que no sea /var/lib/libvirt/images

Antes tenía un Debian 8 el cual upgradee a 9 y KVM funcionaba smooth sin ningún problema.

Hace unas semanas me dio por borrar aquella partición para empezar de nuevo con un Debian 12 y me encuentro con este problema.

Cualquier fichero ISO que no esté en la ruta /var/lib/libvirt/images no permite ser elegido.

Es decir, tengo un disco externo y te visualiza las imágenes pero salen en un color "gris" lo cual indica que no pueden ser seleccionadas. Si la ISO se encuentra en /home/USER/Descargas o cualquier otra ruta tampoco. Únicamente visualiza las ISOs cuando las copio a /var/lib/libvirt/images

Imagen

Imagen

Y esto no me pasaba anteriormente cuando estaba en versión anterior de Debian o en otro portátil que tengo con Red Hat.

Googleando me he encontrado con este antiguo hilo https://unix.stackexchange.com/questions/127914/kvm-cant-access-iso-o-raw-images-outside-var-lib-libvirt-images donde al usuario le pasaba lo mismo que a mi, pero tampoco le dan una solución a su problema.

¿Alguien sabe qué puede estar sucediendo y/o como solucionarlo?
Ami me paso algo parecido la semana pasada y era por servicios de systemd, antes tenia openrc

He activado y arrancado: virtstoraged, virtnetworkd, y virtnodedevd y se soluciono

Mira si lo tienes en la ruta de abajo verás

ls /var/run/libvirt
common      storage                  virtnetworkd-sock        virtqemud-sock
hostdevmgr  virtlockd-admin-sock     virtnetworkd-sock-ro     virtqemud-sock-ro
lxc         virtlockd-sock           virtnodedevd-admin-sock  virtstoraged-admin-sock
network     virtlogd-admin-sock      virtnodedevd-sock        virtstoraged-sock
nodedev     virtlogd-sock            virtnodedevd-sock-ro     virtstoraged-sock-ro
qemu        virtnetworkd-admin-sock  virtqemud-admin-sock
@Brutico

Los servicios que tú has activado/arrancado en mi máquina no los veo :-?

En la ruta que indicas veo esto:

common  hostdevmgr  interface  libvirt-admin-sock  libvirt-sock  libvirt-sock-ro  lxc  network  nodedev  nwfilter  nwfilter-binding  qemu  secrets  storage  virtlockd-admin-sock  virtlockd-sock  virtlogd-admin-sock  virtlogd-sock


Los servicios que veo corriendo grepeando por virt actualmente son:

root@debian:/var/run/libvirt# systemctl -l | grep -i virt
  sys-devices-virtual-misc-rfkill.device                                                                                      loaded active plugged   /sys/devices/virtual/misc/rfkill
  libvirt-guests.service                                                                                                      loaded active exited    Suspend/Resume Running libvirt Guests
  systemd-machined.service                                                                                                    loaded active running   Virtual Machine and Container Registration Service
  machine.slice                                                                                                               loaded active active    Virtual Machine and Container Slice
  libvirtd-admin.socket                                                                                                       loaded active listening Libvirt admin socket
  libvirtd-ro.socket                                                                                                          loaded active listening Libvirt local read-only socket
  libvirtd.socket                                                                                                             loaded active listening Libvirt local socket
  virtlockd-admin.socket                                                                                                      loaded active listening Virtual machine lock manager admin socket
  virtlockd.socket                                                                                                            loaded active listening Virtual machine lock manager socket
  virtlogd-admin.socket                                                                                                       loaded active listening Virtual machine log manager socket
  virtlogd.socket                                                                                                             loaded active listening Virtual machine log manager socket
  virt-guest-shutdown.target                                                                                                  loaded active active    Libvirt guests shutdown



¿Debería crear manualmente los servicios que has indicado?
Te lo dejo
# cat /usr/lib/systemd/system/virtstoraged.socket
[Unit]
Description=libvirt storage daemon socket
Conflicts=libvirtd.socket
After=libvirtd.socket

[Socket]
ListenStream=/run/libvirt/virtstoraged-sock
Service=virtstoraged.service
SocketMode=0666
RemoveOnStop=yes

[Install]
WantedBy=sockets.target
Also=virtstoraged-ro.socket
Also=virtstoraged-admin.socket
Gracias @Brutico

Pero no parece ser suficiente.

He creado el fichero y sigo sin poder escoger las ISOs que no están en la ruta predefinida.

¿Puede ser que haga falta alguno de los otros 2 que indicaste?
Voy a pasártelos
[cat /usr/lib/systemd/system/virtnodedevd.service
[Unit]
Description=libvirt nodedev daemon
Documentation=man:virtnodedevd(8)
Documentation=https://libvirt.org/
BindsTo=virtnodedevd.socket
Wants=virtnodedevd-ro.socket
Wants=virtnodedevd-admin.socket
After=virtnodedevd.socket
After=virtnodedevd-ro.socket
After=virtnodedevd-admin.socket
Conflicts=libvirtd.service
After=libvirtd.service
After=network.target
After=dbus.service
After=apparmor.service

[Service]
Type=notify
Environment=VIRTNODEDEVD_ARGS="--timeout 120"
ExecStart=/usr/sbin/virtnodedevd $VIRTNODEDEVD_ARGS
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target
Also=virtnodedevd.socket
Also=virtnodedevd-ro.socket
Also=virtnodedevd-admin.socket


cat /usr/lib/systemd/system/virtnodedevd-ro.socket
[Unit]
Description=libvirt nodedev daemon read-only socket
BindsTo=virtnodedevd.socket
After=virtnodedevd.socket
Conflicts=libvirtd-ro.socket
After=libvirtd-ro.socket

[Socket]
ListenStream=/run/libvirt/virtnodedevd-sock-ro
Service=virtnodedevd.service
SocketMode=0666
RemoveOnStop=yes

[Install]
WantedBy=sockets.target
Also=virtnodedevd.socket
Also=virtnodedevd-admin.socket


cat /usr/lib/systemd/system/virtinterfaced.service
[Unit]
Description=libvirt interface daemon
Documentation=man:virtinterfaced(8)
Documentation=https://libvirt.org/
BindsTo=virtinterfaced.socket
Wants=virtinterfaced-ro.socket
Wants=virtinterfaced-admin.socket
After=virtinterfaced.socket
After=virtinterfaced-ro.socket
After=virtinterfaced-admin.socket
Conflicts=libvirtd.service
After=libvirtd.service
After=network.target
After=dbus.service
After=apparmor.service

[Service]
Type=notify
Environment=VIRTINTERFACED_ARGS="--timeout 120"
ExecStart=/usr/sbin/virtinterfaced $VIRTINTERFACED_ARGS
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target
Also=virtinterfaced.socket
Also=virtinterfaced-ro.socket
Also=virtinterfaced-admin.socket


cat /usr/lib/systemd/system/virtnodedevd.service
[Unit]
Description=libvirt nodedev daemon
Documentation=man:virtnodedevd(8)
Documentation=https://libvirt.org/
BindsTo=virtnodedevd.socket
Wants=virtnodedevd-ro.socket
Wants=virtnodedevd-admin.socket
After=virtnodedevd.socket
After=virtnodedevd-ro.socket
After=virtnodedevd-admin.socket
Conflicts=libvirtd.service
After=libvirtd.service
After=network.target
After=dbus.service
After=apparmor.service

[Service]
Type=notify
Environment=VIRTNODEDEVD_ARGS="--timeout 120"
ExecStart=/usr/sbin/virtnodedevd $VIRTNODEDEVD_ARGS
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target
Also=virtnodedevd.socket
Also=virtnodedevd-ro.socket
Also=virtnodedevd-admin.socket


Si te falta un .socket me lo dices y te los paso, los tienes abajo en otro mensaje
@Brutico

Muchas gracias, pero esto sigue sin funcionar...

Los ficheros .socket que ahora mismo tengo en /usr/lib/systemd/system son:

oot@debian:/usr/lib/systemd/system# ls *.socket
avahi-daemon.socket  libvirtd-admin.socket  libvirtd-tls.socket   syslog.socket            systemd-journald-audit.socket    systemd-journald-varlink@.socket  systemd-udevd-kernel.socket  virtlogd-admin.socket
cups.socket          libvirtd-ro.socket     lvm2-lvmpolld.socket  systemd-coredump.socket  systemd-journald-dev-log.socket  systemd-networkd.socket           uuidd.socket                 virtlogd.socket
dbus.socket          libvirtd.socket        saned.socket          systemd-fsckd.socket     systemd-journald.socket          systemd-rfkill.socket             virtlockd-admin.socket       virtnodedevd-ro.socket
dm-event.socket      libvirtd-tcp.socket    ssh.socket            systemd-initctl.socket   systemd-journald@.socket         systemd-udevd-control.socket      virtlockd.socket             virtstoraged.socket


De los que has indicado antes que tú tienes en /var/run/libvirt y yo no tengo son los siguientes:

virtnetworkd-sock        virtqemud-sock
virtnetworkd-sock-ro     virtqemud-sock-ro
virtnodedevd-admin-sock  virtstoraged-admin-sock
virtnodedevd-sock        virtstoraged-sock
virtnodedevd-sock-ro     virtstoraged-sock-ro
virtnetworkd-admin-sock  virtqemud-admin-sock
¿Tu usuario está en el grupo libvirt?
Brutico escribió:¿Tu usuario está en el grupo libvirt?

Lo he mirado y no estaba.

He aprovechado y lo he metido en los grupos libvirt y libvirt-qemu.

Con esto lo único que he conseguido es que no me pida la contraseña de root al iniciar VMM, pero sigo sin ver las imágenes ISO [buuuaaaa]
@neofonta Compañero tienes que añadir un silo nuevo donde tengas esas isos.

Seleccionas la maquina virtual y después te vas a la pestaña "Editar-->Detalles de conexión" te vas a "Almacenamiento" después abajo a la izquierda esta el símbolo de "+" que es el de añadir silo. Le das un nombre. Tipo "dir: Directorio de sistema de archivos" y la ruta de destino donde tengas las isos y le das a "Finalizar"

Yo por ejemplo tengo la ruta "/home/Backups/Maquinas.Virtuales/Isos" y hay meto todas las isos.
@DeVlL

No me funciona como tu indicas.

Si le indico "dir:Directorio del Sistema de Archivos" voy hasta la ruta pero no me deja seleccionarla y sigo viendo las ISOs en gris sin poderlas seleccionar.

En cambio si en tipo le indico "disk: Dispositivo de Disco Físico" me deja llegar hasta la ruta y escoger una ISO, pero no me deja dejar indicada la ruta.

Incluso si dejo indicada la /disco/dir1/dir2 y dentro de dir2 están otras carpetas ordenadas por nombre de distribución, no me deja entrar en las carpetas, únicamente visualiza el contenido de dir2 pero no me deja navegar por las carpetas que están en ella.

También comentar que estos pasos que indicas nunca antes tuve necesidad de hacerlos cuando me funcionaba correctamente en Debian 9 o en el portátil que tengo con Red Hat.
@neofonta Lo que te comento que hagas no es para seleccionar las isos directamente, porque como bien dices te salen en gris y no te deja seleccionarlas. Es para seleccionar las carpeta donde están las isos y el solo te agrega todo lo que este dentro de esa carpeta. Ya te puse el ejemplo de mi ruta donde puse todas las isos que necesito. A mi me funciona a la perfectamente.
Cuando voy a instalar una maquina virtual. Simplemente selecciono una iso en cdrom y listo.
12 respuestas