WSL Linux 子系统安装

1,101 阅读5分钟

WSL安装

以往我们想要在windows上使用Liunx都是通过安装VMware这种占用硬件资源的大块头来实现

今天带大家体验一下 Windows Subsystem for Linux ,Linux版的windows子系统

适用于 Linux 的 Windows 子系统 (WSL) 可让开发人员直接在 Windows 上按原样运行 GNU/Linux 环境(包括大多数命令行工具、实用工具和应用程序),且不会产生传统虚拟机或双启动设置开销。

1.安装WSL

1.1开启WSL支持

需要先启用“适用于 Linux 的 Windows 子系统”可选功能,然后才能在 Windows 上安装 Linux 分发。

方法1.按 Win+X, 找到 Windows PowerShell (管理员),并复制执行命令,然后输入以下命令:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

或者方法2,两者同效

方法2.Win + R,输入 appwiz.cpl,左上角找到“启动或关闭 Windows 功能”

efcd4027a8fc2d397405306df4d82fe4.png

1.2安装 WSL 发行版

应用商店搜索 ubuntu ,选择想要的版本,我这里选的是Ubuntu 20.04 LTS

cb7ca03bbb372a71ff1c0964f3cd1dee.png

8c27b418a74731c263097aa86e3a32da.png

第一次打开会初始化一会。然后设置用户名,密码

8a6ccc1db92a2d5fcbd4a1074c6678a8.png

1.3 检查安装

现在我们win+R运行wsl -l -v,可以看到WSL版本号,这样就安装好了。

cf13d0332063a5f79f1f1b1266eec918.png

1.4 apt 换源

Debian / Ubuntu 的官方源在国内访问很慢,咱们更换为清华大学 TUNA 的软件源镜像

PS:也可以用阿里云的镜像,我体验了没那么快(可能我姿势不对),就不推荐了。

  • 执行下面命令,备份 apt 安装源:
$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
  • vim 编辑 sources.list :
$ sudo vim /etc/apt/sources.list 
  • 将 sources.list 中的内容替换如下

注意:这里是Ubuntu 20.04 LTS的,

如果是其他版本的ubuntu,自行访问[ 清华大学开源软件镜像站]去查找对应版本的镜像配置

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
​
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

更新软件

  • 更新软件源中的所有软件列表
$ sudo apt-get update
  • 更新软件
$ sudo apt-get upgrade
# 更新内容稍多,差不多几分钟

2.升级WSL2

2.1比较 WSL 1 和 WSL 2

WSL2将比第一代的WSL1版本运行速度更快,提升了文件系统的I/O性能和与Linux的兼容性,且可本机直接运行 Docker 容器等

6a7f537c0ba1dbdf4dbd1d9a543dd05d.png

2.2为什么不直接默认安装WSL2呢?

为什么不直接设置成 wsl --set-default-version 2默认安装WSL2呢?

答案是会遇到报错: WslRegisterDistribution failed with error: 0x80370102 这个错误查了很多文档都解决不了,可是先安装WSL1再转换2就不会遇到这个报错。

0a15ea5c04d5756e42662db79b1cc2f9.png

报错内容:
Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x80370102
Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS.
For information please visit https://aka.ms/enablevirtualization
Press any key to continue...

2.3运行 WSL2 的要求

若要更新到 WSL 2,需要检查你本地系统版本能否支持,或者更新运行 Windows 10。

  • 对于 x64 系统:版本 1903 或更高版本,采用内部版本 18362 或更高版本。
  • 对于 ARM64 系统:版本 2004 或更高版本,采用内部版本 19041 或更高版本。
  • 低于 18362 的版本不支持 WSL 2。 使用 Windows Update 助手更新 Windows 版本。

2.3.1检查

检查 Windows 版本及内部版本号,选择 win+R,然后输入“winver”,选择“确定”。

b47ec6e50f803377ecf894bfb7ff1293.png

2.3.2更新

到“设置”菜单中的最新 Windows 版本。

b58624176ec6f5b814504f86d1dcdf11.png

2.4启用虚拟机功能

安装 WSL 2 之前,必须启用“虚拟机平台”可选功能。 计算机需要虚拟化功能才能使用此功能。

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

0bcf24ecb730023b9ebee7d2f734b003.png

310a4c19a0ebc802fcd6c8d00d5c37ed.png

重新启动计算机,以完成 WSL 安装并更新到 WSL 2。

2.5下载 Linux 内核更新包

2.5.1下载最新Linux内核更新包:

适用于 x64 计算机的 WSL2 Linux 内核更新包

2.5.2运行Linux内核更新包

安装内核更新包完成后,根据本文【1.2安装 WSL 发行版】操作,我这里将原本的Ubuntu 20.04 LTS卸载后重新选择安装了,你也可以安装其他版本。

注意:==在安装新的 Linux 分发时,将 WSL 2 设置为默认版本,具体见2.6。== (如果希望将新的 Linux 安装设置为 WSL 1,请跳过此步骤。)

49ed7a803e6f5932e25f071a855cabbf.png

2.6将 WSL 2 设置为默认版本

在安装新的 Linux 分发时, Powershell 中运行以下命令,将 WSL 2 设置为默认版本:

wsl --set-default-version 2

2db4f8b82f8bb204f332ca5e52d92803.png

这个时候我们再去看WSL的版本会发现已经是 2 了,语言可以选择中文(如果后续有疑问可以看这篇帖子

0d3a92a19d2407a76416d008e7c9fa56.png

下面依旧像WSL1安装时配置用户名密码即可

8936062853cef8ca605c7438a19e1330.png

3.配置SSH服务器

WSL 上的 SSH 服务器没有自动配置,需要手动重新安装,首先可以运行以下命令来检查

$ sudo service ssh stop
$ sudo /usr/sbin/sshd -d

5bb9b84f9cadb3b44a78d1b9f938535c.png

如果输出信息包括以上信息,即找不到 key,重新安装 openssh-server 就可以解决问题.

$ sudo apt purge openssh-server
$ sudo apt install openssh-server

然后需要配置 /etc/ssh/sshd_config,用 sudo 权限运行 vim=>sudo vim /etc/ssh/sshd_config 修改如下三个关键字

Port 22
PermitRootLogin yes             #这两行允许了 root 账户和密码登录
PasswordAuthentication yes

fb06deded4930aabba586eef4d54c7f8.png

若没有 vim 编辑器会提示 vim 函数不存在,所以首先

sudo apt-get install vim

打开文件后首先定位到需要更改的位置,按 ==i==(insert)进入编辑模式。 结束后按 esc,输入命令 ==:wq==保存并退出。

命令说明
:w保存编辑后的文件内容,但不退出 vim 编辑器。
:w!强制写文件,强制覆盖原有文件
:wq保存文件内容,退出 vim编辑器
:wq!强制保存文件并退出 vim 编辑器
:q退出

然后记得重启 ssh 服务

#重启SSH服务
$ sudo service ssh restart
#查看SSH服务状态
$ sudo service ssh status

如果需要用密码登录 root 账户,还需要设置密码

$ sudo passwd root

6e27ffb46d96da0253c5bfd8e4138014.png

然后就可以使用 SSH 工具进行连接了

29dbcd1f16be2e1773b4e5fca9d1dcc4.png

参考文章: