問題

問題

問題

システムが現在のランレベルを判別できないため、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

Windows Subsystem for Linux 1 (WSL 1) は単なる互換性レイヤーですWindows 上で Linux バイナリ実行ファイルを実行するためのものです。それ以上の機能は提供されません。特に、あなたのケースでは、サポートされていない 2 つのコンポーネント/関数が発生しました。

ランレベル

initWSL はオペレーティング システムの個別のインスタンスとして実行されないため、実際の Linux システムに存在するようなブートストラップおよびサービス管理システムをサポートする簡単な方法はありませんsystemd。その結果、今日 (2019-02)、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-01) 時点では、デフォルトの WSL Ubuntu 20.04 ではランレベルはまだサポートされていません。

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

関連情報