Ausgabe

Ausgabe

Ausgabe

Viele apt-get-Installationen schlagen fehl, weil das System den aktuellen Runlevel nicht bestimmen kann

Hintergrundinformationen:

$ 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

Erläuterung

Ich versuche, Virtualbox auf WSL zu installieren und erhalte die folgende Fehlermeldung:

$ 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.

Ich habe das Problem gelöst, indem ichBefolgen Sie diese Schritte. Zu dpkg-reconfigure virtualbox-dkms.

Aber dann bekam ich Folgendes:

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

Wie kann ich erreichen, dass invoke-rc.d den richtigen Runlevel zurückgibt?

Antwort1

Windows Subsystem for Linux 1 (WSL 1) ist nur eine Kompatibilitätsschichtzum Ausführen von Linux-Binärdateien unter Windows. Darüber hinaus bietet es nicht viel mehr Funktionalität. Insbesondere in Ihrem Fall sind Sie auf zwei nicht unterstützte Komponenten/Funktionen gestoßen:

Runlevel

WSL läuft nicht als separate Instanz eines Betriebssystems, daher gibt es keine einfache Möglichkeit, Bootstrap- und Service-Management-Systeme zu unterstützen, wie initsie systemdauf echten Linux-Systemen vorhanden sind. Folglich unterstützt Ubuntu für WSL heute (2019-02) noch immer keine Runlevels.

Linux Kernel

Dies ist die grundlegende Einschränkung in Ihrem Fall. VirtualBox muss als Hypervisor in den Kernel des Betriebssystems integriert werden (mithilfe von Kernelmodulen). WSL ist nur eine Kompatibilitätsschicht. Es läuft kein echtes Linux (kein Linux-Kernel). Daher kann VirtualBox seine Kernelmodule nicht für WSL kompilieren.

Wenn Sie VirtualBox auf einem Windows-Computer ausführen möchten, installieren Sie die Windows-Version. Sie können die Linux-Version nicht innerhalb von WSL 1 ausführen.

Update für WSL 2

Seit dem Verfassen der ursprünglichen Antwort ist WSL 2 entstanden. Die Architektur von WSL 2 ist sehr unterschiedlich. Es führt den vollständigen Linux-Kernel in einer virtuellen Hyper-V-Maschine aus. Leider werden Runlevels bis heute (2022-01) im Standard-WSL Ubuntu 20.04 immer noch nicht unterstützt.

Unter Windows 11 wird verschachtelte Virtualisierung (Ausführen eines Hypervisors wie KVM innerhalb von WSL 2) seit WSL Build 20175 sowohl auf Intel- als auch auf AMD-CPUs unterstützt. Vielleicht wäre es mit einigen Optimierungen möglich, VirtualBox innerhalb von WSL 2 auszuführen. Es scheint, dass diese Kombination weder von Oracle noch von Microsoft offiziell unterstützt wird.

verwandte Informationen