你能在 Win10 的“Linux 的 Windows 子系统”中安装任何其他发行版吗?

flo*_*ilo 9 windows-subsystem-for-linux

Windows Server 安装指南”链接Manually download Windows Subsystem for Linux distro packages ”,其中提到了几个官方提供的发行版:Debian、Kali、Ubuntu、OpenSUSE、Fedora 和 SLES

由于我们手头有基于 Debian 和 Slackware 的发行版:

  • 是否可以使用除 Arch 之外的任何发行版/树?
  • 不使用官方发行版有什么缺点吗?

我对避免使用 Windows 应用商店的方式特别感兴趣,因为它可以被组策略阻止

Bis*_*iyo 12

这在 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);
    }
    
    Run Code Online (Sandbox Code Playgroud) 与任何C编译器(如编译这个gcc),让可执行文件名Wslnstall.exe(需要的步骤#3),和我在GitHub上有这个编译版本

  2. 下载.tar.gzRootFS:
    有很多方法可以获取发行版的 RootFS(例如从 ISO 文件、从 docker 映像、使用debootstrap命令等),并且根据我的个人经验,该.tar.gz文件中存在一些条件,例如.tar.gz文件应使用gzip压缩,包含有效/bin/bash/bin/sh二进制/etc/passwd文件和文件(像往常一样)。
    • 这些只是用户可以跳过的指南,在这里我省略了这些步骤,并提供了一个直接链接到预先构建 .tar.gz的 Alpine(仅下载.tar.gz

  3. 安装:
    将编译后的可执行文件(第 1 步)和.tar.gz(第 2 步)放在要安装的同一文件夹中,从该文件夹中运行:
    # WslInstall.exe <distro_name> <file_name.tar.gz>
      WslInstall.exe Alpine alpine-minirootfs-xxx.tar.gz
    
    Run Code Online (Sandbox Code Playgroud)

现在应该安装 Alpine 发行版。


归档时间:

查看次数:

3452 次

最近记录:

4 年,2 月 前