昨日から、virt-manager
GUIで実行中のVM(QEMU/KVM)を表示できなくなりました。ビルトインビューアーでVMの画面を表示しようとすると、代わりに次のエラーメッセージが表示されます。
グラフィカルコンソールへの接続エラー:
内部エラー:QEMUコマンド 'getfd'を実行できません:
SCM_RIGHTSを介してファイル記述子が提供されていません
これはすべてのVMに適用されます。
virt-viewer
でVMを正しく表示および操作できますが、virt-manager
ビルトインビューアーのみが死んでいます。
ここで何が間違っていますか、どうすれば修正できますか?
編集: archive.getdeb.netリポジトリのvirt-manager
バージョン1:1.4.0-1~getdeb1
を使用していることがわかりました。
最新のvirt-manager 1.4.0をUbuntuにマージしようとしたときに、同じ問題に遭遇しました。これは、virt-managerのバグではなく、表示データをVMに送信する方法を変更しただけのようです。
必要な許可をlibvirtに追加するバグをオープンしました。これは、apparmorプロファイルが定義されている場所です- https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1668681
セキュリティを無効にせずにこの問題を修正するには、次を追加します。
# allow connect with openGraphicsFD to work
unix (send, receive) type=stream addr=none peer=(label=/usr/sbin/libvirtd),
ファイル/etc/apparmor.d/abstractions/libvirt-qemu
に追加されますが、qemu-bridge-helperセクションにはありません。 (「所有者@ {PROC}/0-9 */fd/r」の直後)
次に、Sudo systemctl reload apparmor
を使用してプロファイルをリロードします。
そうは言っても、最高のサポートを得るためにアーカイブのパッケージを使用することを常にお勧めします。
私の場合、それはアクセスを妨げる防具でした。アパモアマジックプロファイルジェネレーターは、正常に機能していないようです。私の回避策は次のとおりです。
KVMインスタンスを開始してエラーを受け取った後、次のことを行いました。
$Sudo apparmour_status
問題の原因となっているプロファイルをリストしました。
libvirt-<some long key>
次に、次のように強制するのではなく文句を言うように、服装プロファイルを設定します。
$Sudo aa-complain /etc/apparmor.d/libvirt/libvirt-<some long key>
これでエラーは表示されなくなりました。この競合が修正されることを願っています。
問題を再現できませんでしたが、10月5日にlibvirt
の更新がありました。
libvirt-bin-1.3.1-1ubuntu10.2
はlibvirt-bin-1.3.1-1ubuntu10.3
にアップグレードされましたlibvirt0-1.3.1-1ubuntu10.2
はlibvirt01.3.1-1ubuntu10.3
にアップグレードされました
設定などを変更しなかった場合、アップグレードプロセス中に問題が発生した可能性があります。すべてのvirt-manager
関連パッケージを完全に削除して再インストールします。
Sudo apt purge libvirt-bin libvirt-glib libvirt0 virt-manager virt-viewer virtinst
Sudo apt install libvirt-bin libvirt-glib libvirt0 virt-manager virt-viewer virtinst
ホストオペレーティングシステムを再起動します。これで、以前と同じようにすべてが正常に動作するようになります。
http://getdeb.net からのvirt-manager
バージョン1:1.4.0-1~getdeb1
のバグのようです。
パッケージを公式リポジトリ(1:1.3.2-3ubuntu1.16.04.2
from xenial-updates
)から入手可能な最新バージョンに再度ダウングレードすると、これが修正されます。
更新:バージョン1:1.4.0-1~getdeb2
はこの問題をまだ修正していません。