Umístění storage/iso mimo výchozí adresář
Problém
Pokud se image pro virtualizaci nenacházejí v /var/lib/libvirt/images, start virtuálního stroje skončí s chybou qemu-kvm: could not open disk image ' ': Permission denied.
Je to kvůli tomu, co přesně píše chybová hláška, tedy že nemá oprávnění se k souboru dostat (ale mohl by doplnit jaký disk image). Problémy mohou být dva:
- Uživatel libvirt-qemu nemá oprávnění přístupu k image disku.
- Skrze dementní chybu v konfiguraci a
apparmor. Pokud by měl libvirt-qemu použít jako diskvolumea nemá zde právo k přístupu tak failne.
ℹ️ Tento problém se řešil na GitHubu.
Řešení
Řešení je vícero. Taky záleží co je potřeba vyřešit.
Uživatel libvirt-qemu se nedostane k images
Tady je to docela jednoduché, asi nejlepší rady jsou:
- Připojit storage na image do adresáře
/var/lib/libvirt/images. - Nastavit oprávnění na adresáři pro uživatele libvirt-qemu:
sudo setfacl -m u:libvirt-qemu:rx /srv/iso_images/.
Uživatel libvirt-qemu se dostane k images
I když QEMU spouštíme jako root tak prostě nemá oprávnění. Tohle smrdí jako apparmor. Odepřený přístup jde vidět v jaderném logu sudo dmesg -w.
Čistá metoda je nastavení konfigurace VM tak, aby používala file místo volume pro definici virtuálního disku. Editovat si tedy VM pomocí sudo virsh edit <JMENO-VM>
<disk type='volume' device='disk'> ... </disk>
změnit na:
<disk type='file' device='disk'> ... </disk>
📋 Pro účely testu jde udělat jednu špinavost, a to nastavit v souboru
/etc/libvirt/qemu.conf:security_driver = "none"+ restartovat službu pomocíservice libvirtd restartnebosystemctl restart libvirtd.
No comments to display
No comments to display