/var/run/libvirtが存在しないのはなぜですか?

/var/run/libvirtが存在しないのはなぜですか?

というプログラムを使用しようとしています。SecGen任意のハッカーの脆弱性を持つ仮想マシンを作成します。私は使わなかった最新のストレージ関係のない質問があり、ここでは扱いません。を実行すると、次ruby secgen.rb runのエラーが発生します。

Call to virConnectOpen failed: Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory`

さらなる調査の結果、ファイルが存在しないことが判明し、ファイルを/var/run/libvirt実行しようとするとsystemctl start libvirtd(存在するかどうかsudo)、ホストがダウンしているため起動できないというエラーが発生します。

注:利用libvirt可能なほとんどのパッケージapt-getlibvirt-clientsコマンドと、(また)と(Windows 10 Webサイトを介して)もインストールしました。他のほとんどのファイルはファイルに存在します。libvirt-daemon-systemlibvirtdlibvirt-dbusvagrantapt-getVirtualboxapt-getlibvirt

この質問が曖昧に見える場合は謝罪します。たくさんlibvirt-socketあなたのいくつかは私の質問に言いたいのですが、ファイルに見つからない人を除いて、このトピックについては何も見つかりませんが、ファイルがまったく存在しないため、libvirt私の問題は少し異なります。/var/runご要望に応じて必要な情報をお知らせします。また、WSLでWindows用Ubuntuを使用していることにも言及したいと思います。

編集:これはlibvirtdを起動したときにsystemctlで発生するエラーです。System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down

ベストアンサー1

Debian ポリシーによっては、パッケージは必要に応じてディレクトリを作成する必要があります/run/var/runこれは、起動時に削除または作成される可能性があるためです。 (実際、Ubuntuでもこのような場合が多いです。)これは、プログラム自体やプログラムを起動するスクリプトを通じて行うことができます。サービスが実行されていない場合は、ディレクトリが存在しない可能性があります。

WSLでは、initシステムはシステム化されません。ほとんどのディストリビューションでは、systemdは多くのサービスを起動し、多くのファイルシステムをマウントしますが、どちらもほとんどのWSL環境では役に立ちません。代わりに、WSLは独自のカスタム初期化システムを使用していくつかのタスクを実行します。これは、WSLシステムがより迅速に起動できることを意味します。

systemdに付属のツールは、systemdが実行されていないときに実行を拒否することが多いため、使用できません。service libvirtd startパッケージに付属のinitスクリプトを使用するために呼び出すことができます。このコマンドを使用すると、いくつかの利点がありますservice。 systemd が有効な場合は systemd に委任され、それ以外の場合は init スクリプトと連携して動作するため、通常は systemd を使用するかどうかにかかわらず、すべての Linux システムで実行されます。 initスクリプトがない可能性があります。この場合は、サービスファイルの構成を確認して直接起動を処理する必要があります。

おすすめ記事