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

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 和…...

WordPress开发到底是开发什么?

WordPress 开发主要涉及基于 WordPress 平台构建、定制和扩展网站功能的过程。它不仅仅是简单的网站搭建&#xff0c;而是通过代码和技术实现个性化需求。 以下是 WordPress 开发的核心内容&#xff1a; 1. 主题开发&#xff08;Theme Development&#xff09; 功能&#xff…...

元脑服务器的创新应用:浪潮信息引领AI计算新时代

浪潮信息的元脑 R1 服务器现已全面支持开源框架 SGLang&#xff0c;能够在单机环境下实现 DeepSeek 671B 模型的高并发性能&#xff0c;用户并发访问量超过1000。通过对 SGLang 最新版本的深度适配&#xff0c;元脑 R1 推理服务器在运行高性能模型时&#xff0c;展现出卓越的处…...

SQL Server查询计划操作符(7.3)——查询计划相关操作符(9)

7.3. 查询计划相关操作符 78)Repartition Streams:该操作符消费多个输入流并产生多个输出流。期间,记录内容与格式保持不变。如果查询优化器使用一个位图过滤(bitmap filter),则输出流中的数据行数将会减少。一个输入流的每行记录被放入一个输出流。如果该操作符保留顺序…...

单片机项目复刻需要的准备工作

一、前言 复刻单片机的项目的时候&#xff0c;有些模块是需要焊接的。很多同学对焊接没有概念。 这里说一下做项目的基本工具。 比如&#xff1a;像这种模块&#xff0c;都需要自己焊接了排针才可以链接的。 二、基本模块 2.1 单排排针 一些模块买回来是没有焊接的&#x…...

【哇! C++】类和对象(五) - 赋值运算符重载

目录 ​编辑 一、运算符重载 1.1 运算符重载概念 1.2 全局运算符重载 1.3 运算符重载为成员函数 二、赋值运算符重载的特性 2.1 赋值运算符重载需要注意的点 2.2 赋值运算符重载格式 2.2.1 传值返回 2.2.2 传引用返回 2.2.3 检查自己给自己赋值 三、赋值运算符重载的…...

SpringCloud系列教程(十三):Sentinel流量控制

SpringCloud中的注册、发现、网关、服务调用都已经完成了&#xff0c;现在就剩下最后一部分&#xff0c;就是关于网络控制。SpringCloud Alibaba这一套中间件做的非常好&#xff0c;把平时常用的功能都集成进来了&#xff0c;而且非常简单高效。我们下一步就完成最后一块拼图Se…...

vue+element|el-tree树设置懒加载和设置默认勾选

文章目录 导文代码实现1. 基本结构2. 懒加载实现3. 默认勾选功能4. 动态加载初始节点5. 节点勾选事件监听完整代码 导文 在实际开发中&#xff0c;很多数据过于庞大&#xff0c;需要分批请求&#xff0c;使用到懒加载。但是在tree的方法中&#xff0c;使用懒加载后无法直接使用…...

零售交易流程相关知识(top-down拆解)

引入 关于POS机交易时的后台数据交互 模块之间数据交换&#xff0c;都可以能被窃取或篡改。由此引入加密、解密机制和签名、验签机制 经典的加密、解密机制&#xff1a; 对称加密&#xff1a;DES\ TDES\ AES\ RC4 非对称加密&#xff1a;RSA\ DSA\ ECC 经典的签名、验签…...

混合存储HDD+SSD机型磁盘阵列,配上SSD缓存功能,性能提升300%

企业日常运行各种文件无处不在&#xff0c;文档、报告、视频、应用数据......面对成千上万的文件&#xff0c;团队之间需要做到无障碍协作&#xff0c;员工能够即时快速访问、共享处理文件。随着业务增长&#xff0c;数字化办公不仅需要大容量&#xff0c;快速高效的文件访问越…...

将本地已有的项目上传至仓库

上传的仓库为Gitee 进入项目目录&#xff1a; 使用命令行工具进入你想要上传的项目的根目录。 初始化Git仓库&#xff1a; 如果项目目录尚未初始化为Git仓库&#xff0c;执行以下命令&#xff1a; git init 执行完成后&#xff0c;项目根目录下会自动生成一个隐藏的.git文件夹…...

中级网络工程师面试题参考示例(3)

一、企业园区网络 问题1&#xff1a;如何实现园区网络的自动化部署和管理&#xff1f;请结合实际场景说明技术选型。 答案要点&#xff1a; 技术选型&#xff1a; SDN&#xff08;软件定义网络&#xff09;&#xff1a;通过控制器&#xff08;如Cisco DNA Center&#xff09;…...

祝福语【算法赛】

题目来源&#xff1a;第 27 场 蓝桥入门赛【算法题】 可以参考一下&#xff0c;本人也是比较菜 不喜勿喷&#xff0c;求求求 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);String S sc.nextLi…...

前端 | CORS 跨域问题解决

问题&#xff1a;Access to fetch at http://localhost:3000/save from origin http://localhost:5174 has been blocked by CORS policy: Response to preflight request doesnt pass access control check: No Access-Control-Allow-Origin header is present on the request…...

MySQL知识点(第一部分)

MySQL 基础&#xff1a; 1、SQL语句的分类&#xff1a; DDL&#xff1a;用于控制数据库的操作DML&#xff1a;用于控制表结构的字段&#xff0c;增、删、修DQL&#xff1a;用于查询语句DCL&#xff1a;用于管理数据库&#xff0c;用户&#xff0c;数据库的访问 权限。 2、M…...

ChatGPT使用经验分享

ChatGPT 3.5模型 与 4模型的区别 ChatGPT 3.5 示例 问&#xff1a;树上有9只鸟&#xff0c;打死了一只还剩几只&#xff1f; 答&#xff1a;如果打死了一只鸟&#xff0c;那么树上还剩下8只鸟。 ChatGPT 4 示例 问&#xff1a;树上有9只鸟&#xff0c;打死了一只还剩几只&…...

Webshell原理与利用

本文内容仅用于技术研究、网络安全防御及合法授权的渗透测试&#xff0c;严禁用于任何非法入侵、破坏或未经授权的网络活动。 1. WebShell的定义与原理 定义&#xff1a;WebShell是一种基于Web脚本语言&#xff08;如PHP、ASP、JSP&#xff09;编写的恶意后门程序&#xff0c;…...

Java直通车系列15【Spring MVC】(ModelAndView 使用)

目录 1. ModelAndView 概述 2. ModelAndView 的主要属性和方法 主要属性 主要方法 3. 场景示例 示例 1&#xff1a;简单的 ModelAndView 使用 示例 2&#xff1a;使用 ModelAndView 处理列表数据 示例 3&#xff1a;使用 ModelAndView 处理异常情况 1. ModelAndView 概…...

大模型系列课程学习-基于Vllm/Ollama/Ktransformers完成Deepseek推理服务部署

1.机器配置及实验说明 基于前期搭建的双卡机器装机教程&#xff0c;配置如下&#xff1a; 硬件名称参数备注CPUE5-2680V42 *2&#xff08;线程28个&#xff09;无GPU2080TI-22G 双卡魔改卡系统WSL Unbuntu 22.04.5 LTS虚拟机 本轮实验目的&#xff1a;基于VLLM/Ollama/ktran…...

基于深度文档理解的开源 RAG 引擎RAGFlow的介绍和安装

目录 前言1. RAGFlow 简介1.1 什么是 RAGFlow&#xff1f;1.2 RAGFlow 的核心特点 2. RAGFlow 的安装与配置2.1 硬件与软件要求2.2 下载 RAGFlow 源码2.3 源码编译 Docker 镜像2.4 设置完整版&#xff08;包含 embedding 模型&#xff09;2.5 运行 RAGFlow 3. RAGFlow 的应用场…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...