ユーザーqemuがアクセスできないホームディレクトリにあるisoファイルを使用してvirt-installを実行するきちんとした方法

ユーザーqemuがアクセスできないホームディレクトリにあるisoファイルを使用してvirt-installを実行するきちんとした方法

仮想マシンを自動的に作成して実行するスクリプトがあります。多くの人がこのスクリプトを使用しています。このスクリプトを呼び出して、オペレーティングシステムをインストールするためのPCIまたはUSBデバイス、ISO、およびスクリプトがsudo qemu-system-x86_64適切なパラメータで実行されるかどうかなど、いくつかの情報を提供するだけです。

したがって、分析すると、次のように私のスクリプトを呼び出すことができます。

./create-vm.sh /home/me/os-images/windows10.iso

これは素晴らしい作品です。

sudo virt-install ...しかし、今はもう一歩進んで、代わりに使用したいと思います。これにより、isoファイルにアクセスできなくなるsudo qemu-system-x86_64 ...ため、大きな問題が発生します。おそらくsudoで実行してもroot権限を放棄してuserを利用してvirt-installそうなのに…qemu

今私は難しい決断をしなければなりません。

  • 私はありますか?移動するISOファイルを/var/lib/libvirt/images? (いいえ。ユーザーはファイルが現在位置する正確な場所にある必要があるためです。)
  • 私はありますか?コピーISOを/var/lib/libvirt/images? (いいえ。ユーザーのディスク容量が不足している可能性があるため、リソースの無駄のように見えます。)
  • 設定しますかuser = root、それともuser = me入りますか/etc/libvirt/qemu.conf? (いいえ、これはグローバル設定であり、ユーザーが実行している他のqemu操作を妨げる可能性があるためです。 - 試してみましたが、libvirtd.service競合が発生します。)
  • isoファイルのグループをqemuユーザーに追加しますか? (いいえ、不要な副作用がある可能性があるため、ユーザーが望んでいないときにqemuにさらにアクセスを与えることができます。
  • isoファイルの所有者をに変更しますかqemu? (いいえ、望ましくない副作用がある可能性があるためです。 - しようとすると依然として権限拒否エラーが発生します。おそらくSElinuxによるものです)。
  • isoをマウントし、qemuユーザーがマウントポイントを使用できるようにしますか? (いいえ。isoファイルは非常に複雑になる可能性があり、一部のデータはマウントポイントで使用できないためです。)
  • isoを含むフォルダをマウントしますか? (いいえ。isoファイルにはまだ同じ所有者/グループがあるためです。)

良い解決策が見つからないようです。今どうすればいいですか?本当にvirt-install少し必要ですqemu-system-x86_64

注:実際にはisoイメージだけでなく、フロッピーイメージ、ドライバーを含む他のisoファイル、およびACPIテーブルファイルもあります。これらすべてのファイルに対して権限エラーが発生しますvirt-install

ベストアンサー1

chown qemu:qemu $ISOこれがうまくいかない唯一の理由は、qemu$ HOMEに対する検索権限がないからです。

virt-installはこの状況を検出しようとし、警告を出力します。 virt-managerは、さらに一歩進んでsetfacl --modify user:qemu:x $DIRisoにつながるチェーンのおよそすべてのディレクトリを使用して、試みと修正を提供します。 libvirt chown'ingとselinuxの自動表示ファイル(デフォルトの動作)でVMを起動するのに十分なはずです。はい、この動作には望ましくない副作用がありますが、root以外のユーザーで仮想マシンを実行したい場合は、これを解決する方法はありません。

つまり、1人のユーザーに完全に属する仮想マシンが必要な場合は、デフォルトのqemu:///system libvirt URIと比較してqemu:///sessionを見てください。違いの説明は次のとおりです。。この場合、libvirtdにホスト管理アクセス権が必要なPCIパススルーなどのエントリにアクセスすることはできません。

おすすめ記事