Windows 10引入了出色的Linux Windows子系统,也称为WSL。通俗的说它就是Windows上的Ubuntu Bash。如果在Windows Store下载安装Linux的Windows子系统时,它通常安装到%LOCALAPPDATA%\[package name]\rootfs系统驱动器上的文件夹中。

在使用Linux几个月后,安装了很多工具,以适应我的编程的需求,随着我的安装的Node,python,dart等等依赖越来越多,我的系统驱动器已装满,被迫卸载WSL。因此我需要一种方式可以将WSL安装在非系统驱动器上。

本文将让安装WSL Windows Linux 子系统到其它文件夹或其它非系统的驱动器位置(即C盘或者本地磁盘C)上。

在非系统驱动器上手动安装WSL

启用WSL子系统。

如果尚未完成,请启用Windows子系统。打开提升的Powershell命令提示符并运行:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

随即会显示安装结果:

Path          :
Online        : True
RestartNeeded : False

如有指示,请重新启动。就我而言,我已经安装了它,因此不需要重新启动。

创建一个安装目录

选择并创建一个目录,用于在其中安装Linux发行版。

New-Item D:\Ubuntu -ItemType Directory
Set-Location D:\Ubuntu

下载Linux发行版

可以在Microsoft Windows文档找到您可以下载的Linux发行版列表。就我而言,我选择Ubuntu。

Invoke-WebRequest -Uri https://aka.ms/wslubuntu2004 -OutFile Ubuntu.appx -UseBasicParsing

Ubuntu 20.04 - https://aka.ms/wslubuntu2004

Ubuntu 20.04 ARM - https://aka.ms/wslubuntu2004arm

Ubuntu 18.04 - https://aka.ms/wsl-ubuntu-1804

Ubuntu 18.04 ARM - https://aka.ms/wsl-ubuntu-1804-arm

Ubuntu 16.04 - https://aka.ms/wsl-ubuntu-1604

Debian GNU/Linux - https://aka.ms/wsl-debian-gnulinux

Kali Linux - https://aka.ms/wsl-kali-linux-new

OpenSUSE Leap 42 - https://aka.ms/wsl-opensuse-42

SLES - https://aka.ms/wsl-sles-12

下载完成后,我们将文件名的格式改为zip并进行解压:

Rename-Item .\Ubuntu.appx Ubuntu.zip
Expand-Archive .\Ubuntu.zip -Verbose

在上面的示例中,创建了一个目录:D:\Ubuntu\Ubuntu

安装WSL Windows的Linux子系统

在解压缩后的文件夹中,有一个EXE文件(根据发行版本的名称)

根据您使用的Linux发行版的版本,可执行文件名称可以不同

现在,运行可执行文件以初始化安装,并提取文件到rootfs并注册WSL。你也可以使用不同的名称进行手动注册WSL

wsl.exe --import <DistributionName> <InstallLocation> <FileName>

比如:

wsl.exe --import Debian1 D:\Deb1 .\install.tar.gz

请等待该过程完成,然后系统将提示您创建一个新的用户帐户

安装完成后,您会发现创建了“ rootfs”文件夹,其中包含所有库,可执行文件等。

验证安装

要验证安装可以使用以下命令

wsl --list --all

或者

wsl -l --all

列出已安装或导入的WSL发行版的名称

结论

现在你已经了解如何安装wsl到其它驱动器上,并且学会怎么以不同的名称将Linux发行版注册到WSL。如有任何疑问,请随时发表评论。