1 概述
Windows Subsystem for Linux(简称WSL)是一个在Windows 10\11上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,开发人员可以在 Windows 计算机上同时访问 Windows 和 Linux 的强大功能。 通过适用于 Linux 的 Windows 子系统 (WSL),开发人员可以安装 Linux 发行版(例如 Ubuntu、OpenSUSE、Kali、Debian、Arch Linux 等),并直接在 Windows 上使用 Linux 应用程序、实用程序和 Bash 命令行工具,不用进行任何修改,也无需承担传统虚拟机或双启动设置的费用。【引用百度百科】
适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双引导。 WSL 旨在为希望同时使用 Windows 和 Linux 的开发人员提供无缝高效的体验。【引用wsl】
2 WSL版本
WSL分为WSL1和WSL2,WSL 1 和 WSL 2 之间的主要区别在于,在托管 VM 内使用实际的 Linux 内核、支持完整的系统调用兼容性以及跨 Linux 和 Windows 操作系统的性能。 WSL 2 是安装 Linux 发行版时的当前默认版本,它使用最新最好的虚拟化技术在轻量级实用工具虚拟机 (VM) 内运行 Linux 内核。 WSL2 将 Linux 发行版作为托管 VM 内的隔离容器运行。
功能比较:
参考官网【https://learn.microsoft.com/zh-cn/windows/wsl/compare-versions】
3 启用虚拟化
可通过任务管理器(Ctrl+Shift+Esc)中的性能确认CPU虚拟化,默认开启
4 开启虚拟任务
1、通过快捷键WIN+R打开运行窗口,输入control,点击确定,打开控制面板
2、点击“程序”,打开程序面板
3、点击“启用或关闭Windows功能”
4、点击确定后,可正常应用WSL
5 安装WSL
5.1 检验安装情况
1、通过WIN+R快捷键打开运行窗口,输入cmd,打开命令提示符窗口
2、输入wsl
如果提示子系统没有已安装的分发版,说明还没有安装。
如果提示子系统没有已安装的分发版,说明还没有安装。
5.2 查看支持的 Linux 发行版
使用wsl –list –online 可查看支持的Linux发行版
5.3 无法解析服务器的名称或地址
在使用wsl –list –online 可查看支持的Linux发行版时,可能会提示“无法解析服务器的名称或地址”
这个错误通常表示Windows Subsystem for Linux(WSL)无法解析指定的服务器名称或IP地址。可能的原因包括网络配置问题、DNS服务器不可用、或者服务器名称不正确。
5.3.1 解决方法
1、检查服务器名称:确保输入的服务器名称正确无误。
2、网络配置:确保WSL的网络配置正确。可以尝试重启WSL服务:在命令提示符或PowerShell中运行wsl --shutdown。
3、DNS问题:确认Windows系统的DNS设置是否正确,可以尝试更换DNS服务器,如使用Google的8.8.8.8或8.8.4.4。
4、防火墙/安全软件:检查是否有防火墙或安全软件阻止了WSL的网络访问。
5、临时网络问题:尝试重新连接网络或重启路由器。
5.3.2 网络正常配置
如果网络正常,配置下DNS就可解决,配置方式如下:
1、右键桌面图标“网络”属性,打开网络和共享中心
2、点击“更改适配器设置”,打开网络连接窗口
3、选择WLAN右键属性,打开WLAN属性窗口
4、双击Internet协议版本4(TCP/IPv4),更改DNS
5.4 Wsl/WININET_E_NAME_NOT_RESOLVED
在执行 wsl –list –online时,有时会出现以下问题:
无法从“https://raw.githubusercontent.com/microsoft/WSL/master/distributions/DistributionInfo.json”中提取列表分发。无法解析服务器的名称或地址
Error code: Wsl/WININET_E_NAME_NOT_RESOLVED
遇到这个问题时,可以通过访问 https://www.sojson.com/ip/查询 raw.githubusercontent.com 域名对应的 IP 地址。
然后对C:\Windows\System32\drivers\etc\hosts文件进行追加
185.199.109.133 raw.githubusercontent.com
5.5 安装Ubuntu
1、选择Linux发行版的Ubuntu-24.04进行安装
2、安装过程中,会出现Ubuntu24.04.1 LTS 的安装窗口,可能会一直出现“Installing,this may take a few minutes…”这样的提示。可以通过wsl --list -v命令,查询Ubuntu的运行状态。
如果出现上面的情况,可以将该命令符提示窗口关闭。输入wsl后:
上图所示明显Ubuntu已经安装成功,却跳过了创建用户的步骤,因此,只需要创建一个新用户,并将其设定为默认启动的用户就可以解决问题。
解决方法:(参考:https://www.cnblogs.com/ziyulab/p/18446092#2-%E8%A7%A3%E5%86%B3)
1、创建新用户
2、通过cat /etc/passwd 查看用户是否添加
3、为用户赋予sudo权限
vim /etc/sudoers
# 增加配置, 在打开的配置文件中,找到root ALL=(ALL:ALL) ALL, 在下面添加一行
# 其中xxx是你要加入的用户名称
xxx ALL=(ALL:ALL) ALL
# 按esc,输入:wq!保存配置
/etc/sudoers 文件是用来配置 sudo 命令的访问权限的。
sudo 是一个用于在 Linux 和其他类 Unix 操作系统上以超级用户身份执行命令的工具。/etc/sudoers 文件定义了哪些用户或用户组具有以超级用户身份执行命令的权限。
4、设置用户为默认启动用户
vim /etc/wsl.conf
# 添加配置
[user]
default=你的用户名
# 按esc,输入:wq!保存配置
5、通过wsl --shutdown 重启Ubuntu,完成修改
5.6 启动虚拟机
在命令符提示中,输入wsl,就能进入到子系统中
5.7 注销或删除虚拟机
参考:https://blog.csdn.net/FHY26828/article/details/143863100
1、注销虚拟机:仅删除 WSL 环境配置,不会删除对应的文件:
wsl --unregister Ubuntu-24.04
2、完全删除虚拟机(包括文件夹)
(1)找到虚拟机的文件存储位置(默认在 C:\Users\<用户名>\AppData\Local\Packages)。
(2)手动删除对应的文件夹。
5.8 临时切换WSL版本
临时切换到WSL1
wsl --set-version Ubuntu-2404 1
5.9 设置默认版本
设置默认WSL2
wsl --set-default-version 2
5.10 查看版本
wsl --status
5.11 更新 WSL 内核
更新WSL后,需要重启电脑
wsl --update
通过执行wsl --update,用户可以检查并下载任何WSL2内核更新,这是因为WSL2内核是WSL2本身的一部分,并且在所有已安装的发行版之间共享,因此其更新方式与其他包更新方式不同。
更新后,增加了更多的功能,比如可通过systemd管理Linux服务;可通过 wsl --version 查看版本信息等。
5.12 以特定用户的身份运行
wsl --user test
5.13 将目录更改为主页
wsl ~
5.14 更改发行版的默认用户
更改用于发行版登录的默认用户。 用户必须已经存在于发行版中才能成为默认用户。
<DistributionName> config --default-user <Username>
例如:ubuntu config --default-user test
会将 Ubuntu 发行版的默认用户更改为“test”用户。
5.15 注意事项
当安装了vmware时,不要启动WSL2,可能导致虚拟化问题。