admin 管理员组

文章数量: 887021

本文详细介绍了 WSL 的安装步骤和基本配置,以及与 Windows 的集成。希望这篇文章能够帮助大家顺利安装和使用 WSL,并在 Windows 上进行 Linux 开发和实践。

微软官方文档:https://learn.microsoft/zh-cn/windows/wsl/

0 前提条件

Windows机器需要支持虚拟化,并且需要在BIOS中开启虚拟化技术,因为WSL2基于hyper-V。
查看是否开启虚拟化
按住Windows+R输入cmd打开命令行,输入

systeminfo

可以看到如下字样,代表电脑已经支持虚拟化,可继续安装

Hyper-V 要求:     
虚拟机监视器模式扩展: 是
固件中已启用虚拟化: 是
二级地址转换: 是
数据执行保护可用: 是

或者如下图所示:

启用Windows10子系统功能,再打开的powershell窗口中输入如下命令:

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

启用虚拟机平台功能,再打开的powershell窗口中输入如下命令:

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

1 安装

对于windows10版本2004版本及更新版本或者windows11,可以直接一行命令符安装

wsl --install

若出现无法解析服务器的名称或地址的问题,如下图:

可以通过一下方法解决:
方法一:使用科学上网。
方法二:修改hosts文件
1.首先,在这个进入这个网站 https://site.ip138/raw.Githubusercontent/ 对 raw.githubusercontent 这个网址的解析IP进行查询。并获取一个能够在本地ping通的ip。

我本地使用了第一个:185.199.110.133 ,并测试ping 的结果。

2.用记事本打开hosts文件,文件地址在:C:\Windows\System32\drivers\etc,并在文件后面添加下面内容,并保存(如果这里没有保存hosts的权限,先将hosts文件拖到桌面,更改完成后再拖回去)。
将以下代码添加到hosts文件最后一行

185.199.110.133 raw.githubusercontent

3.重新执行安装指令。

注意:可以通过以下命令完成Linux 分发版的安装

wsl --install ubuntu22.04

或者通过下一节,在微软应用商店安装,推荐使用上述方法,系统启动速度快。

2 安装 Linux 分发版

打开Microsoft Store,选择你喜欢的Linux分发版并下载,
这里选择ubuntu 20.04,点击获取自动安装。

3 Linux设置

3.1 愉快的使用Linux

通过Windows Terminal下拉选项可以进入安装的Linux系统。

3.2 设置root密码

打开安装的Linux分发版,并在命令行输入:

sudo passwd root

接着输入想设置的root密码,完成设置。

3.3 设置默认root用户登入

进入C:\Users\xxxx\AppData\Local\Microsoft\WindowsApps\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc目录下,找到ubuntu2204.exe程序,
cmd到此目录下,执行以下命令

ubuntu.exe config --default-user root

重启WSL子系统即可看到效果,默认登入的就是root账户了

3.4 Windows和WSL2互传文件

示例:将window系统下的D:software/mongodb-linux-x86_64-rhel70-4.4.13.tgz上传到WSL2(子系统)的/usr/local目录下
在WSL2(子系统)中执行如下命令,即可

cp /mnt/d/software/nmongodb-linux-x86_64-rhel70-4.4.13.tgz /usr/local

3.5 WSL2的镜像网络模式

即WSL与Windows使用同一网络和IP。
1.在Windows用户目录下,新建.wslconfig的配置文件,写入如下信息(按需修改无关配置):

[wsl2]
memory=16G  # 配置虚拟机最大使用内存,按需,默认Windows主机内存的1/2
[experimental]
autoMemoryReclaim=gradual # 检测到空闲CPU使用率后自动释放缓存内存。设置gradual为缓慢释放,设置dropcache为立即释放缓存内存。
sparseVhd=true
networkingMode=mirrored # 如果值为mirrored则这将打开镜像网络模式。默认或无法识别的配置会设置为NAT。
dnsTunneling=true
firewall=true
autoProxy=true # 强制WSL使用Windows的HTTP代理信息

2.重启WSL,重要!!!,不是直接关掉terminal,而是应该执行

wsl —shutdown

然后启动WSL。
3.[可选]:如果在WSL中使用Docker,从本机访问不了Docker中启动的服务的话,给Docker添加下面配置( sudo vim /etc/docker/daemon.json),

{
  "iptables": false
}

然后重启Docker:

sudo service docker restart

WSL 的网络

Windows的网络

4 WSL 1 和 WSL 2

WSL 1 和 WSL 2 功能比较

4.1 将分发版本设置为 WSL 1 或 WSL 2

windows下以管理员身份打开PowerShell。
设置Ubuntu-20.04为WSL 2

wsl.exe --set-version Ubuntu-20.04 2

如果要设置为WSL 1,执行如下命令:

wsl.exe --set-version Ubuntu-20.04 1

可以打开 PowerShell 命令行并输入以下命令检查分配给每个已安装的 Linux 分发版的 WSL 版本:

wsl -l -v或者wsl --list --verbose

4.2 将 WSL 2 设置为默认版本

打开 PowerShell,然后在安装新的 Linux 发行版时运行以下命令,将 WSL 2 设置为默认版本:

wsl --set-default-version 2

5 卸载

可通过以下指令卸载

wsl --unregister Legacy

本文标签: 教程 Windows WSL