[译]非系统盘下安装Linux子系统的方式

原帖:How-to: Installing WSL manually on a non-system drive

Windows 10提供了一个很优秀的Linux子系统,也被叫做WSLlsxxBash on Ubuntu on Windows等等各种名字。最开始,只提供了被称为为Bash on Ubuntu on Windows的Ubuntu子系统,它被安装到%LOCALAPPDATA%\lxss目录下,这个目录通常是位于系统盘下。后来,Microsoft Store逐渐支持更多版本的Linux版本,这些新的Linux子系统会被安装到%LOCALAPPDATA%\[package name]\rootfs目录下。

使用Linux子系统几个月之后,其间还基于Damsteen Operating System构建了一个简易的系统内核,然后我的系统盘空间就被占满了,于是我不得已卸载了子系统。

其实,子系统是可以被安装到非系统盘下的,虽然不是官方教程,操作步骤如下:

1. 开启子系统功能

如果你过去没有启用子系统功能,需要先启用该功能。使用管理员权限启动PowerShell,然后执行如下命令:

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

很快就会显示如下信息,表示成功

Path          :
Online        : True
RestartNeeded : False

可能会要求重启。因为我已经安装过,所以我不需要重启。

按照我试过的,即使已经启用过子系统功能,如果不执行这个命令,到后面也可能失败
执行还是很快的

2. 创建一个用于安装子系统的文件夹

在其他盘选择自己希望安装子系统的位置,并创建文件夹

New-Item A:\Ubuntu -ItemType Directory # 创建文件夹
Set-Location A:\Ubuntu # 跳转到新创建的文件夹

这一步可以不在命令行进行,任意位置都行,我放在了D:\Subsystem

3. 下载Linux发行版包

官方文档手动下载适用于 Linux 的 Windows 子系统发行版包 中,列出了所有可用的Linux发行版包。我选择了Ubuntu 16.04.

Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile Ubuntu.appx -UseBasicParsing

然后解压:

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

在上面的例子中,会创建A:\Ubuntu\Ubuntu目录

这一步同样可以不在命令行进行,命令行下载太慢而且容易中断,这一步选择自己觉得快的下载方式就行,我是用迅雷下载的,然后手动解压进去就行,不一定需要在命令行操作

4. 安装Linux发行版包

在解压出的目录下,有一个.exe可执行文件,用来安装Linux发行版。对我来说,就是ubuntu1804.exe。直接在之前的命令行中运行这个文件,就会开始安装,Log如下:

Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: sebazzz
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Installation successful!

没必要执行ubuntu1804.exe /?来看使用说明,系统会被直接安装到.exe同级目录下的rootfs目录中。

这里写的是ubuntu 18.04版本,与前文不一致,不过,方法没错,懂就行,所以没做修改

5. 使用

需要启动子系统的时候,直接在命令行中执行ubuntu1804.exe或者ubuntu1804就行。也可以直接执行bash命令,会启动默认的子系统。

想要修改默认的子系统,可以使用wslconfig:

PS A:\Ubuntu\Ubuntu> wslconfig /list /all
Windows Subsystem for Linux Distributions:
Ubuntu-18.04 (Default)
PS A:\Ubuntu\Ubuntu> wslconfig /setdefault Ubuntu-18.04

使用愉快!

P.S.: 如果需要使用基于WSL的界面程序,我的教程using GUI programs on WSL现在依然可用。尽管不是官方支持的,在Windows 10 1803上它依然能正常使用。

using GUI programs on WSL 就不翻译了,正常也不需要,还是命令行好用

目前来说,没有发现任何区别于传统安装方式的问题,迁移到D盘后,就可以在子系统里面安装一些较大的东西了,不需要担心挤压系统盘空间,当然Docker的支持也还是不完整,期待官方解决吧

最后附上标准安装教程的链接:Windows10内置Linux子系统初体验

推荐阅读更多精彩内容