是否可以在没有互联网连接的情况下安装 WSL?

Shl*_*ton 4 windows-10 windows-subsystem-for-linux

Windows Subsystem for Linux (WSL) 是使用“打开或关闭 Windows 功能”向导安装的。开启此功能后,首次调用 Bash For Windows 时,它声称正在从 Microsoft Store 下载软件。是否可以创建一些包含 WSL 安装所需的所有文件的捆绑包,并让 Windows 在没有 Internet 连接的环境中使用这些文件安装 WSL?如果是这样,怎么办?

Jai*_*ime 5

在没有互联网连接的情况下安装 Linux 发行版

您可以 (1) 从 Windows 应用商店下载安装程序或 (2) 下载分发文件并使用lxRunOffline等工具进行安装。如果您有分发文件,则可以使用 USB 驱动器或其他设备复制文件进行安装。


从 Windows 应用商店下载安装程序

您可以使用 Powershell 从 Windows 应用商店下载安装程序。例如,您可以使用以下命令下载Ubuntu 16版本

PS> Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile Ubuntu.appx -UseBasicParsing
Run Code Online (Sandbox Code Playgroud)

在上面的命令中,输出文件是Ubuntu.appx. 它必须以这种方式命名。您可以运行该应用程序来安装 Ubuntu。

PS> Ubuntu.appx
Run Code Online (Sandbox Code Playgroud)

使用 LxRunOffline

首先,您必须下载一些分发文件。lxRunOffline wiki中有许多可用的分发文件。

例如,要从 Microsoft Windows Store 安装相同的 Ubuntu 16,您可以在以下位置下载该文件:

https://lxrunoffline.apphb.com/download/UbuntuFromMS/16
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用 lxRunOffline 安装 Linux 发行版

# lxrunoffline install -n <name> -d <folder> -f <distribution file>

C:\wsl> lxrunoffline install -n copy -d c:\wsl\copy -f 16.04.2-server-cloudimg-amd64-root.tar.gz
Run Code Online (Sandbox Code Playgroud)

要运行发行版,您可以使用相同的 lxRunOffline

C:\wsl> lxrunoffline run -n copy -w
Run Code Online (Sandbox Code Playgroud)

使用 DistroLauncher

您可以使用一些 DistroLauncher。有许多基于Microsoft 示例的版本来为 WSL 创建自定义 Linux 发行版。例如,您可以使用Yuk7 版本

您必须下载分发文件和launcher.exe. 您必须将分发文件重命名为rootfs.tar.gz所需的分发名称,并将启动器重命名为所需的分发名称。稍后您必须以管理员身份运行启动器(我以普通用户身份运行启动器时出错)

PS> ren launcher.exe mydistro.exe
PS> ren .\16.04.2-server-cloudimg-amd64-root.tar.gz rootfs.tar.gz
PS> .\mydistro
Run Code Online (Sandbox Code Playgroud)

第一次运行启动器时,它会安装并运行发行版。下一次,它运行 Linux 发行版。


安装后,您可以使用wslconfiglxrunoffline命令管理发行版。