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 功能”
1.2安装 WSL 发行版
应用商店搜索 ubuntu ,选择想要的版本,我这里选的是Ubuntu 20.04 LTS
第一次打开会初始化一会。然后设置用户名,密码
1.3 检查安装
现在我们win+R运行wsl -l -v,可以看到WSL版本号,这样就安装好了。
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 容器等
2.2为什么不直接默认安装WSL2呢?
为什么不直接设置成 wsl --set-default-version 2默认安装WSL2呢?
答案是会遇到报错: WslRegisterDistribution failed with error: 0x80370102 这个错误查了很多文档都解决不了,可是先安装WSL1再转换2就不会遇到这个报错。
报错内容:
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”,选择“确定”。
2.3.2更新
到“设置”菜单中的最新 Windows 版本。
2.4启用虚拟机功能
安装 WSL 2 之前,必须启用“虚拟机平台”可选功能。 计算机需要虚拟化功能才能使用此功能。
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重新启动计算机,以完成 WSL 安装并更新到 WSL 2。
2.5下载 Linux 内核更新包
2.5.1下载最新Linux内核更新包:
2.5.2运行Linux内核更新包
安装内核更新包完成后,根据本文【1.2安装 WSL 发行版】操作,我这里将原本的Ubuntu 20.04 LTS卸载后重新选择安装了,你也可以安装其他版本。
注意:==在安装新的 Linux 分发时,将 WSL 2 设置为默认版本,具体见2.6。== (如果希望将新的 Linux 安装设置为 WSL 1,请跳过此步骤。)
2.6将 WSL 2 设置为默认版本
在安装新的 Linux 分发时, Powershell 中运行以下命令,将 WSL 2 设置为默认版本:
wsl --set-default-version 2
这个时候我们再去看WSL的版本会发现已经是 2 了,语言可以选择中文(如果后续有疑问可以看这篇帖子)
下面依旧像WSL1安装时配置用户名密码即可
3.配置SSH服务器
WSL 上的 SSH 服务器没有自动配置,需要手动重新安装,首先可以运行以下命令来检查
$ sudo service ssh stop
$ sudo /usr/sbin/sshd -d
如果输出信息包括以上信息,即找不到 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
若没有 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
然后就可以使用 SSH 工具进行连接了
参考文章: