문제
시스템이 현재 런레벨을 결정할 수 없기 때문에 많은 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 바이너리 실행 파일을 실행하기 위한 것입니다. 그 이상의 기능은 제공하지 않습니다. 특히 귀하의 경우 지원되지 않는 두 가지 구성 요소/기능이 발생했습니다.
런레벨
WSL은 운영 체제의 별도 인스턴스로 실행되지 않으므로 실제 Linux 시스템에 존재하는 init
부트 스트랩 및 서비스 관리 시스템을 지원하는 간단한 방법이 없습니다 . systemd
결과적으로 현재(2019-02) WSL용 Ubuntu는 여전히 런레벨을 지원하지 않습니다.
리눅스 커널
이것이 귀하의 경우 근본적인 한계입니다. 하이퍼바이저인 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 2 내에서 KVM과 같은 하이퍼바이저 실행)는 WSL 빌드 20175 이후 Intel 및 AMD CPU 모두에서 지원됩니다. 어쩌면 약간만 조정하면 WSL 2 내에서 VirtualBox를 실행할 수도 있습니다. 이 조합은 공식적으로 둘 다 지원되지 않는 것 같습니다. Oracle이나 Microsoft에서 제공합니다.