Nie można uruchomić obrazu KVM z virsh, odmowa dostępu

12

Mój system operacyjny to Ubuntu Server 11.04 (natty)

Po wykonaniu instrukcji szczegółowo opisanych przez pomoc Ubuntu stworzyłem jeden obraz KVM za pomocą

sudo ubuntu-vm-builder kvm hardy --libvirt qemu:///system

Plik obrazu został utworzony jako

-rw-r--r-- 1 root root 438M 2011-06-17 14:39 ubuntu-kvm/tmpK9hbU5.qcow2

Mogę wymienić to z virsh przez sudo virsh -c qemu: /// system "list --all"

Id   Name                 State
----------------------------------
  - ubuntu               shut off  

Ale kiedy dzwonię

sudo virsh -c qemu:///system "start ubuntu"

Błąd został zgłoszony:

error: Failed to start domain ubuntu
error: internal error process exited while connecting to monitor: kvm: -drive file=/home/myuser/vmopt/ubuntu-kvm/tmpK9hbU5.qcow2,if=none,id=drive-ide0-0-0,format=qcow2: could not open disk image /home/myuser/vmopt/ubuntu-kvm/tmpK9hbU5.qcow2: Permission denied

Użytkownik „myuser” został dodany do libvirt grupy.

Poszedłem tak daleko, jak chmod plik obrazu, a także jego katalog do 777, ale błąd nadal występuje.

RedGrittyBrick
źródło

Odpowiedzi:

9

Obrazy KVM są ograniczone przez selinux. Umieszczenie ich w / var / lib / libvirt / images powinno wystarczyć.

http://libvirt.org/drvqemu.html#securityselinux jest bardziej szczegółowy.

Richard Kettlewell
źródło
Mężczyzna!! To zadziałało dla mnie. Dzięki wielkie. Najwyraźniej katalog $ HOME twojego konta jest chroniony, w którym virsh domyślnie lubi instalować różne rzeczy. Po zainstalowaniu vms uruchomiłem mv $ HOME / vmfolder / var / lib / libvirt / images. Następnie uruchomiłem virsh edit vmname i odpowiednio zmieniłem lokalizację pliku obrazu.
Antwan W. A-Dubb
Musiałem także zmienić właściciela jednego z moich vms. Należał do roota, co doprowadziło do odmowy dostępu. sudo chown -R libvirt-qemu: kvm dbos / ubuntu-kvm /. Możesz uruchomić ls -l na / your / vm / dir / i / its / subdirs /, aby sprawdzić uprawnienia na każdym poziomie. Upewnij się, że żaden z nich nie należy do grupy głównej ani użytkownika.
Antwan W. A-Dubb
Przekonałem się, że najłatwiejszym i najbezpieczniejszym sposobem na utworzenie VM-a jest upewnienie się, że wykonałeś cd do tego katalogu / var / lib / libvirt / images i uruchomiłeś instalację. W ten sposób nie będziesz musiał martwić się o uprawnienia na poziomie folderu. Będą domyślnie dla bieżącego użytkownika, w przeciwieństwie do rootowania.
Antwan W. A-Dubb
4

łatwym rozwiązaniem byłoby edytowanie pliku /etc/libvirt/qemu.conf i odkomentowanie następujących wierszy:

User = "root"
group = "root"

Nie zapomnij zrestartować libvirtd

Tman
źródło
4
To może pozwolić ci go uruchomić, ale jakie są konsekwencje dla bezpieczeństwa?
cpast
1
Chyba lepiej dodać się do kvmgrupy, ustawić uprawnienia plików graficznych odpowiednio, a zestaw user="<yourname>"w qemu.conf.
Marc.2377,
1

W Arch Linux:

sudo usermod -a -G kvm username

ustawić uprawnienia dla procesów QEMU w /etc/libvirt/qemu.conf

user = "username"
group = "kvm"

aby odświeżyć członkostwo w grupie w tym samym terminalu:

su - username

Dodaj alias do swojego ~/.bashrc

alias virsh='EDITOR=nano sudo virsh && cd /etc/libvirt/qemu'

Wreszcie

source ~/.bashrc
virsh
list --all
start mydomain
Stuart Cardall
źródło
0

Wygląda na to, że ten błąd uprawnień może być również powiązany z uszkodzoną nakładką / migawkami qcow2!

Miałem tę konfigurację:

Baseimage> Overlay1>Overlay2

Nakładki zostały utworzone za pomocą cmd virsh snapshot-create ...i Overlay1były nowsze (VM nie uruchomiona) przed utworzeniem Overlay2(utworzone do testowania).

Niezbyt prawdopodobny przypadek użycia IRL, ale mimo to dostał ten błąd i doprowadzał mnie do szału, dopóki nie zdałem sobie sprawy, czy jest związany z łańcuchem nakładek, a nie z uprawnieniami dostępu do systemu plików.

MrCalvin
źródło