在 Windows 上运行 Linux:WSL2 完整指南(一)

系列文章目录

在 Windows 上运行 Linux:WSL2 完整指南(一)🚪
在 Windows 上运行 Linux:WSL2 完整指南(二)


文章目录

  • 系列文章目录
  • 前言
  • 一、什么是 WSL?
    • 1.1 WSL 的主要特性
    • 1.2 WSL 的版本
  • 二、WSL2 与传统虚拟机的比较
    • 实现方式
    • 性能
    • 资源利用
    • 使用体验
    • 场景适用
  • 三、WSL2 安装和配置
    • 3.1 启用 WSL 功能
    • 3.2 启用虚拟机平台功能
    • 3.3 安装WSL2
    • 3.4 安装Linux分发版
    • 3.5 检查 WSL 版本
  • 四、常见问题及解决方法
    • 问题一 0x8007019e
  • 总结


前言

WSL(Windows Subsystem for Linux)是微软推出的一种在 Windows 操作系统上运行 Linux 的解决方案。WSL2 是 WSL 的第二个版本,通过虚拟化技术使 Linux 内核直接运行在轻量级虚拟机中,从而提高了性能和兼容性。本文将介绍 WSL2 的特点、与传统虚拟机的比较,并详细讲解如何在 Windows 上安装和配置 WSL2。
在这里插入图片描述


一、什么是 WSL?

WSL,全称为 Windows Subsystem for Linux,是微软为 Windows 10 和 Windows 11 操作系统引入的一项功能。WSL 允许用户在 Windows 上运行 Linux 操作系统及其相关的命令行工具和应用程序,而无需使用虚拟机或双重启动配置。

1.1 WSL 的主要特性

  • 直接运行 Linux 二进制文件:WSL 可以直接运行 ELF 格式的 Linux 二进制文件,这意味着你可以在 Windows 中运行各种 Linux 命令行工具和应用程序。
  • 与 Windows 无缝集成:WSL 允许 Linux 和 Windows 应用程序并排运行,用户可以在 Windows 的命令提示符或 PowerShell 中调用 Linux 工具,也可以在 Linux 的 Bash shell 中访问 Windows 文件。
  • 文件系统互操作性:用户可以在 WSL 中访问 Windows 文件系统(通过 /mnt/c 等路径),也可以从 Windows 访问 WSL 的 Linux 文件系统。
  • 开发者友好:WSL 提供了一个理想的环境来开发和测试跨平台的应用程序,尤其是那些需要在 Linux 环境中运行的应用程序。

1.2 WSL 的版本

WSL 目前有两个主要版本:

  • WSL 1:使用兼容层将 Linux 系统调用翻译为 Windows 系统调用。与 Windows 系统集成得很好,启动速度快,适合运行轻量级的 Linux 工具和脚本。由于没有完整的 Linux 内核,某些复杂的 Linux 应用和服务可能无法正常运行。
  • WSL 2:使用真正的 Linux 内核在轻量级虚拟机中运行 Linux 发行版。提供了更高的兼容性和性能,几乎可以运行所有的 Linux 应用程序。启动速度略慢于 WSL 1,但整体性能更好,尤其是文件系统操作速度显著提升。

二、WSL2 与传统虚拟机的比较

WSL2(Windows Subsystem for Linux 2)和传统的虚拟机(VM)都是在 Windows 上运行 Linux 环境的方式,但它们在实现方式、性能、资源利用和使用体验等方面存在一些重要的区别。

实现方式

  • WSL2:使用轻量级虚拟化,集成度高。
  • 虚拟机:运行完整操作系统,需要分配专门的硬件资源。

性能

  • WSL2:启动速度快,资源开销小,文件系统性能显著提升。
  • 虚拟机:启动速度相对较慢,资源开销大,但性能较稳定。

资源利用

  • WSL2:动态分配资源,根据需要调整。
  • 虚拟机:需要预先分配固定的内存和 CPU 资源。

使用体验

  • WSL2:安装配置简单,适合开发、测试和轻量级服务器任务。
  • 虚拟机:提供完整独立操作系统体验,适合需要高隔离性和多操作系统测试的场景。

场景适用

  • WSL2:开发和测试需要 Linux 环境的应用程序。需要与 Windows 应用程序和文件系统频繁交互的任务。学习和使用 Linux 命令行工具。
  • 虚拟机:运行需要高度隔离的独立操作系统实例。测试和开发跨多个操作系统版本和配置。需要完整虚拟化支持的任务,如复杂的网络配置和操作系统内核开发。

总结:WSL2 提供了在 Windows 上运行 Linux 的轻量级解决方案,具有快速启动、低资源占用和与 Windows 紧密集成的优势。虚拟机则提供了更高的隔离性和灵活性,适合需要运行多个独立操作系统实例的场景。选择哪种方式取决于具体的需求和应用场景。


三、WSL2 安装和配置

3.1 启用 WSL 功能

打开 PowerShell(以管理员身份运行),输入以下命令启用 WSL 功能:

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

在这里插入图片描述

3.2 启用虚拟机平台功能

继续在 PowerShell 中输入以下命令以启用虚拟机平台:

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

在这里插入图片描述

3.3 安装WSL2

重启计算机后,自动下载并安装最新的WSL2安装包,输入以下命令将WSL2设置为默认版本:

wsl --set-default-version 2

在这里插入图片描述

3.4 安装Linux分发版

在Microsoft Store中搜索ubuntu,下载完成后打开并按照提示进行设置(如创建用户名和密码)
在这里插入图片描述
运行子系统正常情况如下:
在这里插入图片描述

3.5 检查 WSL 版本

输入完用户名后出现以下界面则安装成功
在这里插入图片描述
在cmd命令行中使用以下命令来检查你安装的Linux发行版是否在使用WSL2

wsl -l -v

在这里插入图片描述


四、常见问题及解决方法

问题一 0x8007019e

描述:Installing, this may take a few minutes... WslRegisterDistribution failed with error: 0x8007019e Error: 0x8007019e ??????? Linux ? Windows ???? Press any key to continue...

这个错误通常是由于系统未启用必要的功能或未正确配置所导致的。

方法一:需要确保Windows已经启用WSL功能。以下是启用WSL的步骤:

  1. 打开“控制面板”,选择“程序”,然后点击“启用或关闭Windows功能”。
  2. 在弹出的窗口中,找到“适用于Linux的Windows子系统”,勾选该选项,然后点击“确定”。
  3. 重启电脑以应用更改。

在这里插入图片描述
方法二:win+x,以管理员方式打开 PowerShell ,输入以下命令,重启过后即可安装成功

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

在这里插入图片描述


还有问题二问题三留待下一篇博客解决,字数有限…

总结

通过上述步骤,你可以在 Windows 上成功安装和配置 WSL2,体验在 Windows 上运行 Linux 的便利性。WSL2 提供了高效的开发环境,适合需要在两者之间切换工作的开发者。希望本文能帮助你顺利使用 WSL2。希望这篇博客对你有所帮助,如果有任何疑问或需要进一步的信息,欢迎随时讨论🌹

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/47031.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GitHub 令牌泄漏, Python 核心资源库面临潜在攻击

TheHackerNews网站消息,软件供应链安全公司 JFrog 的网络安全研究人员称,他们发现了一个意外泄露的 GitHub 令牌,可授予 Python 语言 GitHub 存储库、Python 软件包索引(PyPI)和 Python 软件基金会(PSF&…

半自动辅助制作数据集【实例分割】

利用yoloV8的实例分割模型,半自动辅助制作数据集 引言:【主要步骤】 步骤1:无人机航拍,收集基础图片 步骤2:将收集到的图片,全部用yoloV8-seg.pt模型进行实例分割【预测之前,将配置文件default.…

使用llama.cpp量化模型

文章目录 概要整体实验流程技术细节小结 概要 大模型量化是指在保持模型性能尽可能不变的情况下,通过减少模型参数的位数来降低模型的计算和存储成本。本次实验环境为魔搭社区提供的免费GPU环境(24G),使用Llama.cpp进行4bit量化可…

Python面试宝典第14题:背包问题

题目 现有编号从 0 到 n - 1 的 n 个背包&#xff0c;给你两个下标从 0 开始的整数数组 capacity 和 rocks 。第 i 个背包最大可以装 capacity[i] 块石头&#xff0c;当前已经装了 rocks[i] 块石头&#xff08;0 < rocks[i] < capacity[i]&#xff09;。另给你一个整数 a…

深度学习入门——神经网络的学习

前言 这里所说的“学习”是指从训练数据中自动获取最优权重参数的过程。 为了使神经网络能进行学习&#xff0c;将导入损失函数这一指标 为了找出尽可能小的损失函数的值&#xff0c;本章我们将介绍利用了函数斜率的梯度法 从数据中学习 本章将介绍神经网络的学习&#xff0c;…

ubuntu上模拟串口通信

前言 有时候写了一些串口相关的程序&#xff0c;需要调试的时候&#xff0c;又没有硬件&#xff0c;或者需要等其他模块完成才能一起联调。这样搭建环境费时费力&#xff0c;很多问题等到最后联调才发现就已经很晚了。 本文提供一种在ubuntu环境下模拟串口&#xff0c;直接就可…

【Web服务与Web应用开发】【C#】VS2019 创建ASP.NET Web应用程序,以使用WCF服务

目录 0.简介 1.环境 2.知识点 3.详细过程 1&#xff09;创建空项目 2&#xff09;添加Web表单 3&#xff09;使用Web表单的GUI设计 4&#xff09;添加服务引用 5&#xff09;在Web的button函数中调用服务&#xff0c;获取PI值 6&#xff09;测试 0.简介 本文属于一个…

Mysql的JSON格式字段实用操作函数JSON_CONTAINS、JSON_SEARCH、JSON_EXTRACT

文章目录 前言一、示例数据二、使用1.JSON_CONTAINS2.JSON_SEARCH3.JSON_EXTRACT 总结 前言 在开发中难免会遇见在Mysql字段存储JSON格式数据的业务情况&#xff0c;记录几种常用函数的 用法。 一、示例数据 建一张表&#xff0c;字段memo存储JSON格式数据 CREATE TABLE use…

摄像头 RN6752v1 视频采集卡

摄像头 AHD倒车摄像头比较好&#xff0c;AHD英文全名Analog High Definition&#xff0c;即模拟高清&#xff0c;拥有比较好的分辨率与画面质感。 RN6752v1 GQW AKKY2 usb 采集卡 FHD&#xff08;1080p&#xff09;、HD&#xff08;720p&#xff09;和D1&#xff08;480i&am…

MySQL第七次作业

Product表内容 字段名 字段描述 数据类型 主键 外键 非空 唯一 自增 Id 产品编号 Int(10) 是 否 是 是 否 Name 产品功能 Varchar(20) 否 否 是 否 否 Function 主要功能 Varchar(50) 否 否 否 否 否 Company 生产厂家 Varchar(20) 否 否 是 否 否 Address 家庭住址 Varchar(20…

支持大量边缘盒子集中管理调度的智慧物流开源了。

智慧物流视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。用户只需在界面上…

AR0132AT 1/3 英寸 CMOS 数字图像传感器(AR0132AT6R、AR0132AT6C)适用于监控和高清视频等多种应用

AR0132AT 1/3 英寸 CMOS 数字图像传感器&#xff0c;带 1280H x 960V 有效像素阵列。它能在线性或高动态模式下捕捉图像&#xff0c;且带有卷帘快门读取。它包含了多种复杂的摄像功能&#xff0c;如自动曝光控制、开窗&#xff0c;以及视频和单帧模式。它适用于低光度和高动态范…

大模型学习笔记十一:视觉大模型

一、判别式模型和生成式模型 1&#xff09;判别式模型Discriminative ①给某一个样本&#xff0c;判断属于某个类别的概率&#xff0c;擅长分类任务&#xff0c;计算量少。&#xff08;学习策略函数Y f(X)或者条件概率P(YIX)&#xff09; ②不能反映训练数据本身的特性 ③学习…

SpringMVC 控制层框架-上

一、SpringMVC简介 1. 介绍 Spring Web MVC 是基于Servlet API构建的原始Web框架&#xff0c;从一开始就包含在Spring Framework 中。在控制层框架经历Srust、WebWork、Strust2等诸多产品的历代更迭之后&#xff0c;目前业界普遍选择了SpringMVC 作为Java EE项目表述层开发的首…

解读|http和https的区别,谁更好用

在日常我们浏览网页时&#xff0c;有些网站会看到www前面是http&#xff0c;有些是https&#xff0c;这两种有什么区别呢&#xff1f;为什么单单多了“s”&#xff0c;会有人说这个网页会更安全些&#xff1f; HTTP&#xff08;超文本传输协议&#xff09;和HTTPS&#xff08;…

[Labview] 表格单元格外边框 二维图片叠加绘图

最终效果如下所示 转行做Labview都没到三个月&#xff0c;主程居然让我做这么复杂的功能&#xff0c;真是看得起我/(ㄒoㄒ)/~~ 思路大致分为两步 1、确定每个框体的左上/右下单元格位置&#xff0c;转换为表格表格坐标并在二维图片上绘制生成&#xff1b; 2、为二维图片添加…

权威认可 | 海云安开发者安全助手系统通过信通院支撑产品功能认证并荣获信通院2024年数据安全体系建设优秀案例

近日&#xff0c;2024全球数字经济大会——数字安全生态建设专题论坛&#xff08;以下简称“论坛”&#xff09;在京成功举办。由全球数字经济大会组委会主办&#xff0c;中国信息通信研究院及公安部第三研究所共同承办&#xff0c;论坛邀请多位专家和企业共同参与。 会上颁发…

android预置apk

在framework开发中&#xff0c;有一些需求是需要预装应用的&#xff0c;有些是预置应用源码&#xff0c;有些是预置apk。今天我们就分享下怎样预置apk 一般系统有自定义的目录&#xff0c;比如我的项目中根目录下有一个文件夹vendor&#xff0c;这里没都是自定义的一些功能。预…

Unity动画系统(3)---融合树

6.1 动画系统基础2-6_哔哩哔哩_bilibili Animator类 using System.Collections; using System.Collections.Generic; using UnityEngine; public class EthanController : MonoBehaviour { private Animator ani; private void Awake() { ani GetComponen…

二百四十四、Hive——Hive中解析复杂JSON,既有对象还有数组,而且数组中包含数组

一、目的 由于协议修改&#xff0c;修改后的原始数据JSON更加复杂&#xff0c;导致Hive中解析的难度更大&#xff0c;搞了一天&#xff0c;还好同事发了篇知乎文章&#xff0c;终于得以解决&#xff0c;天哪&#xff0c;太不容易了 二、数据协议案例 { "deviceNo&qu…