Ubuntu 12.04.2 32ビットを実行しています。
gksudo virt-manager
。を起動するとエラーは表示されません
libvirt-bin
がインストールされています。libvirtd
のメンバーです。ps ax | grep libvirt
の出力:
9225 ? Sl 0:04 /usr/sbin/libvirtd -d
9302 ? S 0:00 /usr/sbin/dnsmasq -u libvirt-dnsmasq --strict-order --bind-interfaces --pid-file=/var/run/libvirt/network/default.pid --conf-file= --except-interface lo --listen-address 192.168.122.1 --dhcp-range 192.168.122.2,192.168.122.254 --dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases --dhcp-lease-max=253 --dhcp-no-override`
ls -l /var/run/libvirt/libvirt-sock
の出力:
srwxrwx --- 1ルートlibvirtd 0セット13 15:04/var/run/libvirt/libvirt-sock
getent group libvirtd
の出力:
libvirtd:x:130:OTHERUSER,MYUSER
Unable to connect to libvirt.
Failed to connect socket to '/var/run/libvirt/libvirt-sock': Permission denied
Verify that:
- The 'libvirt-bin' package is installed
- The 'libvirtd' daemon has been started
- You are member of the 'libvirtd' group
Libvirt URI is: qemu:///system
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/connection.py", line 1185, in _open_thread
self.vmm = self._try_open()
File "/usr/share/virt-manager/virtManager/connection.py", line 1167, in _try_open
flags)
File "/usr/lib/python2.7/dist-packages/libvirt.py", line 102, in openAuth
if ret is None:raise libvirtError('virConnectOpenAuth() failed')
libvirtError: Failed to connect socket to '/var/run/libvirt/libvirt-sock': Permission denied
virt-manager
がインストールされているシステムを再起動すると、問題が解決しました。
KVMをインストールした後、このコマンドを実行すると、そのエラーは再び発生しません。
Sudo virt-manager
Ubuntu 16.04.3 LTSの場合
systemctl start virtlogd.socket
唯一の答えでした。ソケットには独自のデーモンがあります。それは異常です。
Ubuntu 14.02マシンでQemuとVirtualboxの両方を管理していますが、Virtualboxのインストール後にlibvirt-binが自動起動に失敗しました。そのため、libvirt-binが実行されているかどうかを確認します。
ps faux | grep libvirt-bin
psの出力に表示されない場合は、手動で開始してからvirt-managerを実行します。
Sudo service libvirt-bin start
私にとっては、ログアウトログイン(または再起動)なしではグループメンバーシップの変更が適用されないため、エラーが発生しました。 KVMとlibvirt-binをインストールしました。インストーラーは自動的にユーザーをlibvirtdグループに追加し、libvirt-binサービスを再起動しましたが、それでもエラーが発生していました。
ログアウトして再度ログインするだけで、新しいグループメンバーシップを適用して問題を解決できました。
Libvirt-binをインストールしたばかりで、エラーメッセージが示すように、現在のユーザーがlibvirtdグループのメンバーであることを既に確認している場合、新しいグループメンバーシップを適用するにはログアウトして再度ログインする必要があります。
ファイルのアクセス権を777に変更しないでください何が間違っているのか理解するのを避けるために、すべてをrootまたはSudoとして実行しないでください。
これが誰かの助けになることを願っています。
Opで指定されたすべてのパッケージをインストールしたら、ログアウトしてから再度ログインできます。ユーザーグループに追加するものはすべて、ログアウトしてから再度ログインして新しいグループに追加する必要があります。ちょっとした不便さですが、再起動するよりも1つ少ないです。
これは未完了としてフラグが立てられましたが、これはユーザーをグループに追加するための一般的なルールとして行われます。再ログが必要です。これは、ここでは見られなかった欠落部分です。
この問題は Launchpad で説明されており、この問題の原因はxen-utils
パッケージ(Ubuntu 14.04ではxen-utils-4.4
)をインストールすることで解決できます。以前、コマンドラインでvirt-manager
からSudo
でこの問題を回避していました。
再起動/ログアウトの代替方法は、ターミナルから次のコマンドを実行することです。
newgrp libvirt
virt-manager
newgrp
コマンドを使用すると、ユーザーはlibvirt
の後に同じシェルで開始されたプロセスに対して、ログアウトせずにnewgrp
グループに参加できます。もちろん、これはlibvirtインストーラーがlibvirtグループに入れた場合にのみ機能します。
getent group libvirt
私にとっては、service libvirt-bin status
を使用すると、次のように接続できませんでしたが、すべてが正常に動作していることがわかりました。
● libvirt-bin.service - Virtualization daemon
Loaded: loaded (/lib/systemd/system/libvirt-bin.service; enabled; vendor preset: enabled)
Active: active (running) since Do 2016-09-22 13:22:16 CEST; 6min ago
[...]
/var/run/libvirt/
には、次の2つのファイルがあります。
srwxrwxrwx 1 root libvirtd 0 Sep 22 13:22 libvirt-sock=
srwxrwxrwx 1 root libvirtd 0 Sep 22 13:22 libvirt-sock-ro=
ソケットが表示されない場合は、service libvirt-bin stop; service libvirt-bin start
を使用してプロセスを完全に再起動してください。 service libvirt-bin restart
を使用するだけでは不十分であり、ソケットを再作成しません。
libvirt-bin
サービス安全に停止でき、ゲストの電源を切らない。
Ubuntu 17.10の時点で、グループlibvirtにも自分を追加する必要がありました。私はすでにlibvirtdに自分を追加しており、そのグループから自分自身を削除しませんでした。両方が必要かどうかはわかりません。
/ var/run/libvirtの内容がlibvirtdではなくlibvirtによって所有されていることに気付いたので、これを行いました。