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 init
ou systemd
como 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.