Windows安装WSL教程
Windows安装WSL教程
Windows Subsystem for Linux(WSL)是微软在Windows 10中引入的一项功能,允许用户直接在Windows系统上运行Linux环境,无需虚拟机或双启动。这对于需要在Windows环境下使用Linux工具和环境的开发者来说非常实用。本文将详细介绍WSL的安装步骤和基本配置,帮助大家在Windows上进行Linux开发和实践。
前提条件
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
安装
对于Windows 10版本2004版本及更新版本或者Windows 11,可以直接一行命令符安装:
wsl --install
若出现无法解析服务器的名称或地址的问题,如下图:
可以通过一下方法解决:
方法一:使用科学上网
方法二:修改hosts文件
- 首先,在这个进入这个网站 https://site.ip138.com/raw.Githubusercontent.com/ 对 raw.githubusercontent.com 这个网址的解析IP进行查询。并获取一个能够在本地ping通的ip。
我本地使用了第一个:185.199.110.133 ,并测试ping 的结果。
- 用记事本打开hosts文件,文件地址在:C:\Windows\System32\drivers\etc,并在文件后面添加下面内容,并保存(如果这里没有保存hosts的权限,先将hosts文件拖到桌面,更改完成后再拖回去)。
将以下代码添加到hosts文件最后一行:
185.199.110.133 raw.githubusercontent.com
- 重新执行安装指令。
注意:可以通过以下命令完成Linux 分发版的安装:
wsl --install ubuntu22.04
或者通过下一节,在微软应用商店安装,推荐使用上述方法,系统启动速度快。
安装 Linux 分发版
打开Microsoft Store,选择你喜欢的Linux分发版并下载,
这里选择ubuntu 20.04,点击获取自动安装。
Linux设置
愉快的使用Linux
通过Windows Terminal下拉选项可以进入安装的Linux系统。
设置root密码
打开安装的Linux分发版,并在命令行输入:
sudo passwd root
接着输入想设置的root密码,完成设置。
设置默认root用户登入
进入C:\Users\xxxx\AppData\Local\Microsoft\WindowsApps\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc目录下,找到ubuntu2204.exe程序,
cmd到此目录下,执行以下命令:
ubuntu.exe config --default-user root
重启WSL子系统即可看到效果,默认登入的就是root账户了
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
WSL2的镜像网络模式
即WSL与Windows使用同一网络和IP。
- 在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代理信息
- 重启WSL,重要!!!,不是直接关掉terminal,而是应该执行:
wsl --shutdown
然后启动WSL。
- [可选]:如果在WSL中使用Docker,从本机访问不了Docker中启动的服务的话,给Docker添加下面配置( sudo vim /etc/docker/daemon.json),
{
"iptables": false
}
然后重启Docker:
sudo service docker restart
WSL 的网络
Windows的网络
WSL 1 和 WSL 2
WSL 1 和 WSL 2 功能比较
将分发版本设置为 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
将 WSL 2 设置为默认版本
打开 PowerShell,然后在安装新的 Linux 发行版时运行以下命令,将 WSL 2 设置为默认版本:
wsl --set-default-version 2
卸载
可通过以下指令卸载:
wsl --unregister Legacy