Win10의 "Linux용 Windows 하위 시스템"에 다른 배포판을 설치할 수 있습니까?

Win10의 "Linux용 Windows 하위 시스템"에 다른 배포판을 설치할 수 있습니까?

"윈도우 서버 설치가이드" 연결에게"Linux 배포판 패키지용 Windows 하위 시스템을 수동으로 다운로드"에는 공식적으로 제공되는 여러 배포판(Debian, Kali, Ubuntu, OpenSUSE, Fedora 및 SLES)이 언급되어 있습니다.

Debian 및 Slackware 기반 배포판이 있으므로:

  • Arch와 같은 배포판/트리 이외의 다른 배포판/트리를 사용할 수 있습니까?
  • 공식 배포판을 사용하지 않으면 단점이 있나요?

저는 특히 Windows 스토어를 사용하지 않는 방법에 관심이 있습니다.막힌그룹 정책별.

답변1

이는 Windows 10 v1709에서 테스트되었으며 향후 Windows 10 빌드에서 절차가 변경될 수 있습니다.

  1. 컴파일 설치 프로그램:
    호출하려면 실행 파일을 컴파일해야 합니다.WslRegisterDistribution()기능:
    (이 문서화된 기능은 변경되지 않을 것으로 예상됩니다)
    #include <Windows.h>
    #include <stdio.h>
    
    typedef HRESULT (WINAPI* RegisterDistro)(PCWSTR distroName, PCWSTR tarGzFilename);
    
    int main() {
      int wargc;
      wchar_t** wargv;
      wargv = CommandLineToArgvW(GetCommandLineW(), &wargc);
      HMODULE dll = LoadLibraryExW(L"wslapi.dll", NULL, LOAD_LIBRARY_SEARCH_SYSTEM32);
      RegisterDistro func = (RegisterDistro)GetProcAddress(dll, "WslRegisterDistribution");
      HRESULT result = func(wargv[1], wargv[2]);
      (result == S_OK) ? printf("%ls installed\n", wargv[1]) : printf("Error: 0x%x\n", result);
    }
    
    이것을 임의의 C 컴파일러(예: gcc)로 컴파일하여 실행 파일 이름 Wslnstall.exe(3단계에 필요함)을 지정하고 내 GitHub에 이 컴파일된 버전이 있습니다.저장소

  2. RootFS 다운로드 .tar.gz:
    배포판의 RootFS를 가져오는 방법은 여러 가지가 있습니다(예: ISO 파일, docker 이미지, 명령 사용 등). 제 개인적인 경험으로는 파일이 다음 과 같이 해당 파일 에 debootstrap있어야 하는 몇 가지 조건이 있습니다. 으로 압축.tar.gz.tar.gzgzip 전용, 유효한 바이너리 또는 /bin/bash파일 을 포함합니다 (평소와 같이). /bin/sh/etc/passwd
    • 이것은 단지 지침일 뿐입니다.사용자는 건너뛸 수 있습니다., 여기에서는 다음 단계에 대한 직접 링크를 생략하고사전 구축된 .tar.gzAlpine용(만 다운로드 .tar.gz)

  3. 설치하다:
    컴파일된 실행 파일(1단계)과 .tar.gz(2단계)을같은 폴더해당 폴더 내에서 실행하여 설치하고 싶습니다.
    # WslInstall.exe <distro_name> <file_name.tar.gz>
      WslInstall.exe Alpine alpine-minirootfs-xxx.tar.gz
    

이제 Alpine 배포판이 설치되어야 합니다.

관련 정보