[译]非系统盘下安装Linux子系统的方式
原帖:How-to: Installing WSL manually on a non-system drive
Windows 10提供了一个很优秀的Linux子系统,也被叫做WSL
,lsxx
,Bash 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子系统初体验