Emitir

Emitir

Emitir

Muitas instalações do apt-get estão falhando porque o sistema não consegue determinar o nível de execução atual

Especificações de fundo:

$ 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

Explicação

Estou tentando instalar o virtualbox no WSL e recebo o seguinte erro:

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

Eu resolvi isso porseguindo estes passos. Para dpkg-reconfigure virtualbox-dkms.

Mas então recebi o seguinte:

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

Como fazer com que o invoke-rc.d retorne o nível de execução correto?

Responder1

O subsistema Windows para Linux 1 (WSL 1) é apenas uma camada de compatibilidadepara executar executáveis ​​binários do Linux no Windows. Ele não oferece muito mais funcionalidades além disso. Especialmente no seu caso, você encontrou dois componentes/funções não suportados:

Níveis de execução

O WSL não é executado como uma instância separada de um sistema operacional, portanto, não há uma maneira simples de oferecer suporte a sistemas de inicialização e gerenciamento de serviços como initou systemdcomo estão presentes em sistemas Linux reais. Conseqüentemente, hoje (2019-02) o Ubuntu para WSL ainda não oferece suporte a níveis de execução.

Kernel Linux

Esta é a limitação fundamental no seu caso. O VirtualBox como hipervisor precisa ser integrado ao kernel do sistema operacional (usando módulos do kernel). WSL é apenas uma camada de compatibilidade. Não há Linux real em execução (nenhum kernel Linux). Conseqüentemente, o VirtualBox não pode compilar seus módulos de kernel para WSL.

Se você deseja executar o VirtualBox em uma máquina Windows, instale a versão Windows. Você não pode executar a versão Linux dentro do WSL 1.

Atualização para WSL 2

Desde o momento em que a resposta original foi escrita, o WSL 2 passou a existir. A arquitetura do WSL 2 é muito diferente. Ele executa o kernel Linux completo dentro de uma máquina virtual Hyper-V. Infelizmente, até hoje (2022-01), os níveis de execução ainda não são suportados no WSL Ubuntu 20.04 padrão.

No Windows 11, a virtualização aninhada (executando hipervisor como KVM dentro do WSL 2) é suportada em CPUs Intel e AMD desde a versão 20175 do WSL. Talvez com alguns ajustes seja possível executar o VirtualBox dentro do WSL 2. Parece que esta combinação também não é oficialmente suportada. pela Oracle nem pela Microsoft.

informação relacionada