Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

B.17. 一般的な XML エラー

libvirt では、XML ドキュメントを使用して構造化データを保存します。XML ドキュメントが API を介して libvirt に渡されると、さまざまな一般的なエラーが発生します。誤った形式の XML、不適切な値、欠落している要素など、一般的な XML エラーの一部を以下に示します。

B.17.1. ドメイン定義の編集

これは推奨されていませんが、ゲスト仮想マシン (またはドメインの XML ファイル) を手動で編集することが必要になる場合があります。ゲストの XML にアクセスして編集するには、次のコマンドを使用します。
# virsh edit name_of_guest.xml
このコマンドは、ゲスト仮想マシンの現在の定義を持つテキストエディターでファイルを開きます。編集を終了して変更を保存したら、libvirt により XML が再読み込みされ、解析されます。XML が正しい場合は、以下のメッセージが表示されます。
# virsh edit name_of_guest.xml

Domain name_of_guest.xml XML configuration edited.
重要
virshedit コマンドを使用して XML ドキュメントを編集する場合は、すべての変更を保存してから、エディターを終了します。
XML ファイルを保存したら、xmllint コマンドを使用して XML の形式が正しいことを確認するか、virt-xml-validate コマンドを使用して使用上の問題を確認します。
# xmllint --noout config.xml
# virt-xml-validate config.xml
エラーが返されない場合、XML 記述は正しく設定され、libvirt スキーマと一致します。スキーマがすべての制約を把握していない場合は、報告されたエラーを修正するとさらにトラブルシューティングが行われます。
libvirt が保存する XML ドキュメント
これらのドキュメントには、ゲストの状態と設定の定義が記載されています。これらのドキュメントは自動的に生成されるため、手動で編集しないでください。これらのドキュメントのエラーには、破損したドキュメントのファイル名が含まれています。ファイル名は、URI で定義されたホストマシンでのみ有効です。これは、コマンドが実行されたマシンを参照する場合があります。
libvirt が作成したファイルでエラーが発生することはまれです。ただし、このエラーの原因の 1 つとして、libvirt のダウングレードが考えられます。新しいバージョンの libvirt では、古いバージョンで生成された XML を読み取ることができるのに対し、古いバージョンの libvirt では、新しいバージョンで追加された XML 要素により混同される可能性があります。