仮想マシンの起動に失敗しました。 libvirt/qemu 権限が拒否されました。

仮想マシンの起動に失敗しました。 libvirt/qemu 権限が拒否されました。

初めて質問するので、もっとうまくできたら教えてください。

私はLinuxの面でうまくいかず、これまでのガイドに従い、いくつかの検索で簡単に解決できる問題に遭遇する可能性がありますが、今は詰まっています。私はDebian Busterを実行している小さなホームサーバーを持っています。 libvirt/qemu を使用して複数の仮想マシンを実行しています。私の問題はnextcloudインスタンスです。

昨日はシステムに電力が供給されませんでした。再起動後、これまですべてがうまく機能しています。その後、仮想マシンを起動したかったのですが、1つを除いてすべてうまく起動しました。次のエラーが発生します。

sudo virsh start mydomain 
error: Failed to start domain mydomain 
error: internal error: process exited while connecting to monitor: 
qemu-system-x86_64: -realtime mlock=off: warning: '-realtime mlock=...' is deprecated, please use '-overcommit mem-lock=...' instead 
2022-10-01T13:31:17.160445Z qemu-system-x86_64: -drive file=/path/to/mydomain.snapshot1.snapshot2,format=qcow2,if=none,id=drive-virtio-disk0: 
Could not open backing file: Could not open '/path/to/mydomain.snapshot1': Permission denied

このガイドに従って外部スナップショットを作成しました。https://fabianlee.org/2021/01/10/kvm-creating-and-reverting-libvirt-external-snapshots/

最初は、VMに問題があると思い、以前のスナップショットに戻りました。 (停電は数時間しかありませんでした。)

ガイドに従って、次の手順を使用して復元しました。

# edit hda path back to original qcow2 disk
virt-xml $thedomain --edit target=$targetdisk --disk path=$backingfile --update

# validate that we are now pointing back at original qcow2 disk
virsh domblklist $thedomain

# delete snapshot metadata
virsh snapshot-delete --metadata $thedomain $snapshotname

# delete snapshot qcow2 file
sudo rm $pooldir/$thedomain.$snapshotname

# start guest domain
virsh start $thedomain

ただし、スナップショットファイルを指すだけで、同じエラーが発生します。また、仮想マシンを起動しようとすると、スナップショットファイルの所有者とグループが「libvirt-qemu」から「root」に変わります。

問題を見つけようとしましたが、多くは見つかりませんでした。私が見つけた最も近いものKVMがバックアップファイルチェーンを使用してゲストを起動できるようにAppArmorを設定する方法

だからそれは衣類に関連しているかもしれません。しかし、停電後に何が変わったのかわかりません。しかし、とにかく私はこの記事の提案を試してみましたが、うまくいきませんでした。

ただし、更新によって一部の変更が適用され、再起動後にのみ適用される場合があります。これまでのところ、サーバーはうまく実行されており、頻繁にシャットダウンしません。

テキストが長くてすみません。

助けてくれてありがとう。

ベストアンサー1

修正/解決方法が見つかりました。

仮想マシンイメージのストレージパスを追加しました。

/etc/apparmor.d/abstractions/libvirt-qemu

このように

/path/to/my/files/* rwk,
/path/to/my/files/ rwk,

これで仮想マシンが再起動します。しかし、当初、この問題の原因が何であるかはまだわかりません。

機能しない古いスナップショットに戻すことは、スナップショットの命名とlibvirt-aa-helperによる誤った解釈 - >誤った衣類設定ファイルおよび/または仮想マシンの.xmlファイルでの誤った解釈に関連しています。

時間が経つともっと深く掘り下げます。でも、もう仕事ができて嬉しいですね。

おすすめ記事