Windows 10安装WSL 2并使用VSCode进行开发

参考链接:

https://learn.microsoft.com/en-us/windows/wsl/about

https://zhuanlan.zhihu.com/p/386590591

https://learn.microsoft.com/zh-cn/windows/wsl/tutorials/wsl-vscode

https://zhuanlan.zhihu.com/p/394535900

Windows 10安装WSL并使用VSCode进行开发

WSL可以使开发人员直接在Windows上运行GNU/Linux环境(包括大多数命令行工具,实用程序和应用程序),未修改,没有传统的虚拟机或Dualboot设置的开销。

WSL 2是Linux体系结构的Windows子系统的新版本,它为Linux的Windows子系统提供动力,以便在Windows上运行ELF64 Linux二进制文件。它的主要目标是提高文件系统性能,并添加完整的系统调用兼容性。

这种新的体系结构改变了这些Linux二进制文件与Windows和您的计算机硬件相互作用的方式,但仍然提供与WSL 1(当前可用版本)相同的用户体验。

单个Linux分布可以使用WSL 1或WSL 2架构运行。每个分布都可以随时升级或降级,您可以并排运行WSL 1和WSL 2分布。WSL 2使用了一个全新的体系结构,该体系结构受益于运行真正的Linux内核。

1 安装WSL 2

1.1 Windows配置

1 启用适用于 Linux 的 Windows 子系统:打开powershell并输入:

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

2 检查WSL2的要求:win+R打开运行,然后输入winver检查windows版本

3 此版本需要大于1903,并且应该最好是专业版。

1

4 启用虚拟化:以管理员打开powershell输入下列命令

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

5 下载X64的WSL2 Linux内核升级包并安装

6 设置WSL默认版本

1
wsl --set-default-version 2

1.2 安装Ubuntu

打开Microsoft Store,搜索ubuntu然后安装。

如果没有Microsoft Store,参照3.1。

ubuntu终端打开后设置初始的用户名和密码即可。

设置root密码:

1
sudo passwd

1.3 配置SSH

修改配置文件/etc/ssh/ssh_config,开启下列选项

1
2
3
4
PermitRootLogin yes #允许root认证登录
PasswordAuthentication yes #允许密码认证
RSAAuthentication yes #秘钥认证
PubkeyAuthentication yes

由于自带的openssh-server没有生成密钥所以需要生成密钥文件,否则会出现sshd: no hostkeys available – exiting。

1
2
sudo ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
sudo ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key

启动ssh

1
service ssh start

如果出现“ssh: unrecognized service”,参照3.2

开机启动ssh:win+R打开运行,输入shell::startup进入开机启动项,创建wsl_ssh_start.bat,其内容为

1
2
C:\Users\用户名\AppData\Local\Microsoft\WindowsApps\ubuntu2004.exe run "sudo service ssh restart"
# 用户名为自己的用户名

设置默认root登录:以管理员打开powshell,输入以下命令。注意:用户名需要替换掉,版本页需要替换掉,如果wsl的路径不在这里可以去C:\Program Files\WindowsApps\XXX.UbuntuXXX\ubuntu版本.exe

1
C:\Users\用户名\AppData\Local\Microsoft\WindowsApps\ubuntu版本.exe config --default-user root

1.4 移动WSL

http://www.xfy-learning.com/2020/05/30/WSL备份与还原/

win10系统中Linux子系统默认安装在C盘,在使用过程中,其体量会越来越大,挤占C盘原本就不大的磁盘空间,影响系统运转。因此,很有必要将子系统从C盘迁移到别的磁盘。本文介绍如何利用wsl export/import来迁移Linux子系统,以及迁移过程中遇到的问题。

1.4.1 wsl命令介绍

wsl --help查看命令介绍:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
用于运行 Linux 二进制文件的参数:
如果未提供任何命令行,wsl.exe 将启动默认 shell
--exec, -e <CommandLine>
在不使用默认 Linux shell 的情况下执行指定的命令。
--
按原样传递剩余的命令行。

选项:
--distribution, -d <DistributionName>
运行指定的分发。
--user, -u <UserName>
以指定用户身份运行。
用于管理 Windows Subsystem for Linux 的参数:
--export <DistributionName> <FileName>
将分发导出到 tar 文件。 文件名可为 - 以便标准输出。
--import <DistributionName> <InstallLocation> <FileName>
将指定的 tar 文件作为新分发导入。 文件名可为 - 以便标准输入。
--list, -l [选项]
列出分发。
选项:
--all
列出所有分发,包括当前 正在安装或卸载的分发。
--running
仅列出当前正在运行的分发。
-setdefault, -s <DistributionName>
将分发设置为默认值。
--terminate, -t <DistributionName>
终止分发。
--unregister <DistributionName>
注销分发。
--upgrade <DistributionName>
将分发升级为 WslFs 文件系统格式。
--help
显示用法信息。

1.4.2 子系统备份与还原

Step1: 通过wsl --list --running查看正在运行的子系统

Step2: 若有正在运行的子系统,则通过wsl -t <DistributionName>来终止其运行

Step3: 利用wsl --export <DistributionName> <FileName>来备份子系统,结果会得到一个tar归档文件。
假设有名为Ubuntu-18.04的子系统, 想要将结果文件保存为Ubuntu1804.tar
(同时指定其路径即为D:\wsl\Ubuntu1804.tar),则调用的命令为
wsl --export Ubuntu-18.04 D:\wsl\Ubuntu1804.tar

Step4: 然后利用wsl --import <DistributionName> <InstallLocation> <FileName>来恢复子系统。
例如wsl --import Ubuntu D:\wsl\Ubuntu1804\ D:\wsl\Ubuntu1804.tar(将新恢复的子系统命名为Ubuntu)

Step5(可选):使用wsl --unregister Ubuntu-18.04注销原始子系统。

2 连接VS Code

安装VS Code,安装WSL插件。然后在搜索行或者左下角都能够连接我们的WSL。

2

打开命令行的方式:上方工具栏——查看——终端。

3 问题总结

3.1 找不到Windows Store

https://blog.csdn.net/qq_36769966/article/details/107896614

以管理员身份运行powershell。

输入 Get-AppxPackage -allusers | Select Name, PackageFullName 按回车。

找到 Microsoft.WindowsStore ,将后面的一串字母复制。然后执行下述命令:

1
2
add-appxpackage -register “C:\Program Files\WindowsApps\复制内容\appxmanifest.xml” -disabledevelopmentmode
# 这里使用刚才复制的内容替换“复制内容”

等待命令完成,接下来就可以使用Windows Store了

3.2 [Ubuntu]ssh: unrecognized service

https://blog.csdn.net/Balmunc/article/details/125615498

1
2
apt install ssh
service ssh start

Windows 10安装WSL 2并使用VSCode进行开发
https://fulequn.github.io/2022/11/Article202211252/
作者
Fulequn
发布于
2022年11月25日
许可协议