CentOS6.0やScientific Linux6.0以降で、virt-managerが正常に動作しない時の解決法
表題の通りなのですが、
CentOS6.0やScientific Linux6.0以降(Fedora13以降でも同様?)で、
qemu-kvm, virt-managerをインストールして、
さあ、virt-managerからVMを作ろう!(^^)とした際に、
virt-managerが、
Unable to open connection to hypervisor URI 'qemu:///system':
という警告で開かない場合の対処法です。
まず、前提として、libvirtdのサービスが起動しているかを確認。
root# service libvirtd status起動していない場合は、
libvirtd is stopped
root# service libvirtd startで起動。
Starting libvirtd daemon: [ OK ]
root# chkconfig libvirtd on (再起動時、サービスとして自動的に起動するように)
これで、正常にvirt-managerからlibvirt経由でsocketが接続されるようになる可能性があります。(僕はまだエラーが出ました。)しかし、これでも無理な場合があります。(^^;)
具体的には、
libvirtError: authentication failed という認証のエラーが出る場合。
この場合は、一般ユーザに対して、
virt-manager経由で、kvm(libvirt)に接続してやるように設定しなければなりません。
以下のファイルをviなどで開く。
root# vi /usr/share/polkit-1/actions/org.libvirt.unix.policy以下の部分の
<defaults>
<!-- Only a program in the active host session can use libvirt in read-write mode for management, and we require user password -->
<allow_any>no</allow_any>
<allow_inactive>no</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
<allow_any>no</allow_any>を
<allow_inactive>no</allow_inactive>
<allow_any>auth_admin</allow_any>に変えてやる。
<allow_inactive>auth_admin</allow_inactive>
これで、正常に一般ユーザからvirt-managerを開くと、
rootのパスワードを入力する認証ポップウィンドウが出て、
パスワードを入力してやれば動作します。
下記の参考ページで議論されておりまして、バグだっって書いる人もいます。
僕は、一般ユーザが容易に仮想マシン操作をしてしまわないように、こういう仕様にしたのかなぁと思っているのですが。
やっぱりバグなんでしょうか?笑
Cent5.X系ではうまく動いてましたからね。
参考ページ
https://bugzilla.redhat.com/show_bug.cgi?id=579579
vim形式に編集するために利用させていただいたページ
http://vimcolor.spiritloose.net/