質問

質問

質問

システムが現在ランレベルを決定できないため、多くのapt-getインストールが失敗します。

背景仕様:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.1 LTS
Release:        16.04
Codename:       xenial
$ uname -a
Linux systemName 4.4.0-43-Microsoft #1-Microsoft Wed Dec 31 14:42:53 PST 2014 x86_64 x86_64 x86_64 GNU/Linux

説明する

WSLにvirtualboxをインストールしようとしていますが、次のエラーが発生します。

$ VBoxManage --version
WARNING: The character device /dev/vboxdrv does not exist.
         Please install the virtualbox-dkms package and the appropriate
         headers, most likely linux-headers-Microsoft.

この問題を解決しました。次のようにしてください。到着するdpkg-reconfigure virtualbox-dkms

ところで、次のようなメッセージを受け取りました。

dpkg: warning: version '*-*' has bad syntax: version number does not start with digit
It is likely that 4.4.0-43-Microsoft belongs to a chroot's host
Module build for the currently running kernel was skipped since the
kernel source for this kernel does not seem to be installed.
invoke-rc.d: could not determine current runlevel

Invoke-rc.dが正しいランレベルを返すようにするにはどうすればよいですか?

答え1

WSL 1(Linux用のWindowsサブシステム1)は、互換性層にすぎません。WindowsでLinuxバイナリ実行可能ファイルを実行するために使用されます。それ以外は多くの機能を提供しません。特に、お客様の場合、サポートされていない2つのコンポーネント/機能があります。

ランレベル

initWSLはオペレーティングシステムの別々のインスタンスとして実行されないため、ブートローダおよびサービス管理システム(たとえば、実際のLinuxシステムのシステム)をサポートする簡単な方法はありませんsystemd。したがって、現在(2019年2月)、WSL用Ubuntuはまだランレベルをサポートしていません。

Linuxカーネル

これがあなたのケースの基本的な制限です。ハイパーバイザーとしてのVirtualBoxは、オペレーティングシステムカーネルとの統合が必要です(カーネルモジュールを使用)。 WSLは単なる互換性層です。実際のLinuxが実行されていません(Linuxカーネルなし)。したがって、VirtualBoxはWSL用のカーネルモジュールをコンパイルできません。

Windows コンピュータで VirtualBox を実行するには、Windows バージョンをインストールします。 WSL 1 では Linux バージョンを実行できません。

WSL 2アップデート

WSL 2はもともと回答が書かれて以来使用されていました。 WSL 2のアーキテクチャは非常に異なります。 Hyper-V仮想マシン内で完全なLinuxカーネルを実行します。残念ながら、今日(2022年1月)現在、デフォルトのWSL Ubuntu 20.04はまだランレベルをサポートしていません。

Windows 11では、WSLビルド20175以降、IntelとAMD CPUの両方がネストされた仮想化(WSL 2でKVMなどのハイパーバイザーを実行)をサポートしています。おそらく、いくつかの調整でWSL 2でVirtualBoxを実行できます。 OracleやMicrosoftではこの組み合わせを正式にサポートしていないようです。

関連情報