当前位置: 首页 > article >正文

WSL安装及问题

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,可能导致虚拟化问题。 

相关文章:

WSL安装及问题

1 概述 Windows Subsystem for Linux&#xff08;简称WSL&#xff09;是一个在Windows 10\11上能够运行原生Linux二进制可执行文件&#xff08;ELF格式&#xff09;的兼容层。它是由微软与Canonical公司合作开发&#xff0c;开发人员可以在 Windows 计算机上同时访问 Windows 和…...

MySQL中的脏读与幻读:概念、影响与解决方案

在数据库事务处理中&#xff0c;脏读和幻读是两种常见的并发问题&#xff0c;可能导致数据不一致或逻辑错误。本文将结合实际场景&#xff0c;深入解析两者的原理及解决方案。 一、脏读&#xff08;Dirty Read&#xff09; 1. 概念解析 脏读指一个事务读取了另一个事务未提交…...

基于SpringBoot的商城管理系统(源码+部署教程)

运行环境 数据库&#xff1a;MySql 编译器&#xff1a;Intellij IDEA 前端运行环境&#xff1a;node.js v12.13.0 JAVA版本&#xff1a;JDK 1.8 主要功能 基于Springboot的商城管理系统包含管理端和用户端两个部分&#xff0c;主要功能有&#xff1a; 管理端 首页商品列…...

HeidiSQL:一款免费的数据库管理工具

HeidiSQL 是一款免费的图形化数据库管理工具&#xff0c;支持 MySQL、MariaDB、Microsoft SQL、PostgreSQL、SQLite、Interbase 以及 Firebird&#xff0c;目前只能在 Windows 平台使用。 HeidiSQL 的核心功能包括&#xff1a; 免费且开源&#xff0c;所有功能都可以直接使用。…...

Ae 效果详解:VR 色差

Ae菜单&#xff1a;效果/沉浸式视频/VR 色差 Immersive Video/VR Chromatic Aberrations VR 色差 VR Chromatic Aberrations效果用于模拟镜头色散现象&#xff0c;在 VR 视频中制造 RGB 通道错位的色彩偏移&#xff0c;以增强视觉风格或创造数字失真效果。 本效果适用于所有色深…...

计算机毕业设计SpringBoot+Vue.js制造装备物联及生产管理ERP系统(源码+文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

Ubuntu 安装docker docker-compose

Docker 通过提供轻量级、可移植且高效的解决方案&#xff0c;简化了软件开发和部署。“docker build”命令是 Docker 镜像创建过程的核心。本文将探讨 Docker 构建命令、用法以及 Docker 构建的优化。 Docker 构建有什么作用&#xff1f; Docker build 是一个命令行界面 CLI命…...

【Linux内核系列】:深入解析输出以及输入重定向

&#x1f525; 本文专栏&#xff1a;Linux &#x1f338;作者主页&#xff1a;努力努力再努力wz ★★★ 本文前置知识&#xff1a; 文件系统以及文件系统调用接口 用c语言简单实现一个shell外壳程序 内容回顾 那么在此前的学习中&#xff0c;我们对于Linux的文件系统已经有了…...

【linux网络编程】端口

一、端口&#xff08;Port&#xff09;概述 在计算机网络中&#xff0c;端口&#xff08;Port&#xff09; 是用来标识不同进程或服务的逻辑通信端点。它类似于一座大楼的房间号&#xff0c;帮助操作系统和网络协议区分不同的应用程序&#xff0c;以便正确地传输数据。 1. 端口…...

PyTorch系列教程:Tensor.view() 方法详解

这篇简明扼要的文章是关于PyTorch中的tensor.view()方法的介绍与应用&#xff0c;与reshape()方法的区别&#xff0c;同时给出示例进行详细解释。 Tensor基础 Tensor(张量)的视图是一个新的Tensor&#xff0c;它与原始Tensor共享相同的底层数据&#xff0c;但具有不同的形状或…...

软件测试的基础入门(二)

文章目录 一、软件&#xff08;开发&#xff09;的生命周期什么是生命周期软件&#xff08;开发&#xff09;的生命周期需求分析计划设计编码测试运行维护 二、常见的开发模型瀑布模型流程优点缺点适应的场景 螺旋模型流程优点缺点适应的场景 增量模型和迭代模型流程适应的场景…...

Springboot + minio

参考&#xff1a; SpringBoot整合Minio_springboot minio-CSDN博客 <!--minio 依赖--><dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.5.11</version></dependency> applicaio…...

地下变电站如何实现安全智能运营-以110kV站为例看环境监测与设备联控

1、地下变电站简介 在经济发达的地区&#xff0c;由于城市中心土地资源紧张、征地拆迁费用昂贵&#xff0c;因此采用地下变电站来解决这些问题不失为一个好的途径和思路。地下变电站一般采用室内全封闭式组合电气设备&#xff0c;&#xff12;&#xff12;&#xff10;&#x…...

windows无界面后台定时任务 (重启自启动,ODBS为例)

一、前言 mdb(Microsoft Database)是Microsoft Access中使用的一种数据存储格式,可以通过ODBC驱动程序进行访问和操作,在Python中也可以安装相应模块打开。 这是我在项目中更新bs数据的一个实践记录,结合windows定时一起记录一下,方便以后照搬~ 二、安装 Python安装库…...

FPGA 实验报告:四位全加器与三八译码器仿真实现

目录 安装Quartus软件 四位全加器 全加器、半加器 半加器&#xff1a; 全加器&#xff1a; 四位全加器电路图 创建项目 半加器 全加器 四位全加器 代码实现 半加器 全加器 四位全加器 三八译码器 创建项目 代码展示 modelsim仿真波形图 四位全加器 三八译码…...

win11 Visual Studio 17 2022源码编译 opencv4.11.0 + cuda12.6.3 启用GPU加速

win11 Visual Studio 17 2022 源码编译 opencv4.11.0 cuda12.6.3 启用GPU加速 配置: 生成 opencv 生成 opencv-python 1 下载源码和安装软件 win11 x64 系统 安装Visual Studio 17 2022 下载opencv4.11.0 源码 https://github.com/opencv/opencv/releases/tag/4.11.0 下载…...

Ribbon实现原理

文章目录 概要什么是Ribbon客户端负载均衡 RestTemplate核心方法GET 请求getForEntitygetForObject POST 请求postForEntitypostForObjectpostForLocation PUT请求DELETE请求 源码分析类图关系 与Eureka结合重试机制 概要 什么是Ribbon Spring Cloud Ribbon是一个基于HTTP和T…...

MuMu-LLaMA:通过大型语言模型进行多模态音乐理解和生成(Python代码实现+论文)

MuMu-LLaMA 模型是一种音乐理解和生成模型&#xff0c;能够进行音乐问答以及从文本、图像、视频和音频生成音乐&#xff0c;以及音乐编辑。该模型利用了用于音乐理解的 MERT、用于图像理解的 ViT 和用于视频理解的 ViViT 等编码器&#xff0c;以及作为音乐生成模型&#xff08;…...

高效Android MQTT封装工具:简化物联网开发,提升性能与稳定性

在Android开发中&#xff0c;封装MQTT工具可以帮助简化与MQTT服务器的通信。MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一种轻量级的发布/订阅消息传输协议&#xff0c;常用于物联网&#xff08;IoT&#xff09;设备之间的通信。 以下是一个简单的MQ…...

数据库原理7

1.“数据库系统运行与维护工具”的研究属于数据库管理系统软件 2.1970年IBM公司的高级研究员E.F.Codd提出了关系数据模型 3.每个属性的属性值是不可分解的&#xff0c;即关系的每个分量必须是一个不可分的数据项。属性值的取值应满足域完整性约束。 4.视图作用&#xff1a;简…...

2025最新比较使用的ai工具都有哪些,分别主要用于哪些方面?

文章目录 一、AI对话与交互工具二、AI写作与内容生成工具三、AI绘画与设计工具四、AI视频生成工具五、办公与效率工具六、其他实用工具选择建议 根据2025年最新行业动态和用户反馈&#xff0c;以下AI工具在多个领域表现突出&#xff0c;覆盖对话、写作、设计、视频生成等场景&a…...

什么是 MyBatis? 它的优点和缺点是什么?

一、 什么是 MyBatis&#xff1f; 定义&#xff1a; MyBatis 是一款优秀的持久层框架&#xff0c;用于简化 Java 应用程序与数据库之间的交互。MyBatis 通过 XML 或注解 的方式&#xff0c;将 SQL 语句与 Java 代码分离&#xff0c;提供了一种灵活的、易于维护的数据访问解决方…...

在ArcMap中通过Python编写自定义工具(Python Toolbox)实现点转线工具

文章目录 一、需求二、实现过程2.1、创建Python工具箱&#xff08;.pyt&#xff09;2.2、使用catalog测试代码2.3、在ArcMap中使用工具 三、测试 一、需求 通过插件的形式将点转线功能嵌入ArcMap界面&#xff0c;如何从零开始创建一个插件&#xff0c;包括按钮的添加、工具的实…...

Array and string offset access syntax with curly braces is deprecated

警告信息 “Array and string offset access syntax with curly braces is deprecated” 是 PHP 中的一个弃用警告&#xff08;Deprecation Notice&#xff09;&#xff0c;表明在 PHP 中使用花括号 {} 来访问数组或字符串的偏移量已经被标记为过时。 背景 在 PHP 的早期版本…...

moodle 开源的在线学习管理系统(LMS)部署

一、Moodle 简介 Moodle&#xff08;Modular Object-Oriented Dynamic Learning Environment&#xff09;是一个开源的在线学习管理系统&#xff08;LMS&#xff09;&#xff0c;广泛应用于教育机构和企业培训。其核心功能包括课程管理、作业提交、在线测试、论坛互动和成绩跟…...

后智能体时代的LLM和Agent

文章目录 1. 关于AI重塑的哲学体系2. 关于AI大模型体系的认知3. 关于AI大模型体系的畅想4. 关于人和AI大模型体系的共处5. 写在最后 随着OpenAI、Deepseek、Manus等等智能体的爆火&#xff0c;人们茶前饭后、插科打诨的话题都离不开这些智能体&#xff0c;现状也正如《人民日报…...

Day6 DFS

一、跳台阶 一个楼梯共有 nn 级台阶&#xff0c;每次可以走一级或者两级&#xff0c;问从第 00 级台阶走到第 nn 级台阶一共有多少种方案。 输入格式 共一行&#xff0c;包含一个整数 nn。 输出格式 共一行&#xff0c;包含一个整数&#xff0c;表示方案数。 数据范围 1…...

Releases(发布) 和 版本管理 是两个紧密相关的概念

在软件开发和维护中,Releases(发布) 和 版本管理 是两个紧密相关的概念,特别是在开源项目或企业软件开发中。 1. Releases(发布) Release 是指软件的一个正式发布版本,通常经过开发、测试、修复 Bug,并被认为是足够稳定和可用于生产环境的版本。 主要特点 里程碑:通…...

模型微调——模型性能提升方法及注意事项(自用)

名词补充 人为为训练数据标注的标签称为黄金标准或真实值&#xff0c;这个过程一定程度上保证训练的准确性&#xff0c;但是其人工标注的成本和时间很高&#xff0c;并且标注的标签受人的主观因素影响。 导致模型性能不佳的因素和解决办法 ①不同类别的数据不平衡&#xff1a;统…...

景联文科技:以精准数据标注赋能AI进化,构筑智能时代数据基石

在人工智能技术席卷全球的浪潮中&#xff0c;高质量数据已成为驱动AI模型进化的核心燃料。作为全球领先的AI数据服务解决方案提供商&#xff0c;景联文科技深耕数据标注领域多年&#xff0c;以技术为基、以专业为本&#xff0c;致力于为全球客户提供全场景、高精度、多模态的数…...