Ubuntu 14.04 KVM - エラー: 内部エラー: モニターへの接続中にプロセスが終了しました: qemu-system-x86_64:

Ubuntu 14.04 KVM - エラー: 内部エラー: モニターへの接続中にプロセスが終了しました: qemu-system-x86_64:

以下の手順に従って、KVMゲストをUbuntu 14.04ホストから別のホストに移行しようとしています。ここで概説する

これで、新しいホスト上の 1 つのフォルダーに「状態」ファイル、xml 構成、qcow2 img ファイルが格納され、xml 構成が qcow2 イメージ ファイルの新しい場所を指すように更新されました。

実行しようとすると、virsh create [guest-id].xml次のエラー メッセージが表示されます。

error: internal error: process exited while connecting to monitor: 
qemu-system-x86_64: -drive file=/media/stuart/storage2/kvm/dns.technostu.com/dns.technostu.com.img,if=none,id=drive-virtio-disk0,format=raw: 
could not open disk image /media/stuart/storage2/kvm/dns.technostu.com/dns.technostu.com.img: 
Could not open '/media/stuart/storage2/kvm/dns.technostu.com/dns.technostu.com.img': Permission denied

デバッグと回避策の試み

  • すでに自分自身を libvirtd グループに追加し、再度ログインしました。

  • ファイルパスが正しいことを確認しました

  • .imgファイルの所有権を自分に変更しましたが、sudoの有無にかかわらずコマンドを実行した後、ファイルの所有権がroot:root権限付きに変更され続けます。-rwxr-xr-x

  • 走ってみた

    sudo apt-get install apparmor-profiles apparmor-utils
    sudo aa-complain /usr/lib/libvirt/virt-aa-helper
    

    からこの郵便受けしかし、それはうまくいきませんでした。

  • 指定されたとおりにxmlファイル内のエミュレータを変更してみましたここ

Ubuntu 14.04 の新しいホストにゲストを「インポート」するには、何をする必要がありますか?

答え1

私も同様の問題を抱えていました。

ユーザーをkvmグループに追加する

sudo usermod -a -G kvm username

/dev/kvm次に、ルートとグループkvmによって所有されていることを確認しました

その後、既存のVM(VirtualBoxから変換)の所有権をユーザー名:kvmに変更しました。

group=kvm user=username最後にqemu.confで設定しました。これで問題は解決しました

答え2

コンピュータの電源をオフにして再度オンにすると ( をインストールしてから再起動していませんでしたkvm)、エラー メッセージが次のように変わりました。

error: internal error: process exited while connecting to monitor: qemu-system-x86_64

そのエラーをグーグルで検索するとこの郵便受け以下の内容を追加することを推奨した。

user = "root"
group = "root"

ファイルに/etc/libvirt/qemu.conf引用符を必ず含めてください。

もう一度再起動したら、正常に実行できましたvirsh create [guest-id].xml

答え3

バージョン 6.0.0 以降では Linux 機能が削除されないため、QEMU を root 権限で実行することはお勧めしません。

私の場合は AppArmor でした。バッテリー用の SSDT ファイルを VM に追加したいと考えていました。AppArmor がアクセスを許可するフォルダーと、/home/something許可されないフォルダー ( など) があります。/var/lib/libvirt/images/は許可されているフォルダーの 1 つです。そこにファイルを配置しましたが、AppArmor ポリシーによって許可されませんでした ( でわかるように)。次のようにsudo cat /var/log/kern.log | grep -C 10 apparmor | grep -C 10 qemu追加するとうまくいきました。/var/lib/libvirt/images/SSDT1.dat rk/etc/apparmor.d/libvirt/TEMPLATE.qemu

#
# This profile is for the domain whose UUID matches this file.
#

#include <tunables/global>

profile LIBVIRT_TEMPLATE flags=(attach_disconnected) {
  #include <abstractions/libvirt-qemu>
  /var/lib/libvirt/images/SSDT1.dat rk,
}

関連情報