告别虚拟机!WSL2安装配置教程!!!

embedded/2025/1/17 22:56:28/

作者:SkyXZ

CSDN:SkyXZ~-CSDN博客

博客园:SkyXZ - 博客园

        由于Linux的系统的稳定以及在环境管理方面的优越性,同时Linux对于ROS系统的独占,很多时候我们都乐意在Linux系统下开发我们机器人的算法,但是由于Windows和Linux系统的存在内核方面的天壤之别,在我们手边没有Linux设备的时候我们很多时候只能使用虚拟机来代替,但是虚拟机的使用往往带来了一些性能上的问题,比如资源消耗较大、启动慢、操作不够流畅等。此外,虚拟机的配置和管理也相对复杂,尤其是对开发人员来说,虚拟机的管理和切换可能会影响开发效率。但是微软推出的WSL2(Windows Subsystem for Linux 2)提供了一个更加高效且原生的解决方案WSL2允许你在Windows 10及更高版本的操作系统上原生运行Linux内核,极大地提高了性能和兼容性,同时可以直接在Windows环境中访问Linux工具和命令,完全摒弃了虚拟机的低效和麻烦,现在开始讲解我们该如何配置自己的WSL2

  • 具体详细步骤请参考微软官方文档:安装 WSL | Microsoft Learn

        首先我们需要确认自己的系统是否支持WSL2这项功能,我们需要使用win+R输入winver或者是在"设置—>系统—>系统信息—>Windows规格"中查看我们的系统版本号,只有运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11才能使用WSL2

image-20250116113243058

        在确认无误系统支持WSL2后我们进入**"控制面板—>程序—>启用或关闭Windows功能"中勾选打开如下三个功能,点击确认后系统会需要大家重启电脑**来启用这些功能

image-20250116112418163

        PS:系统为家庭版的用户在Windows功能中没有"虚拟机平台"这一项,需要用管理员身份启动Windows PowerShell额外使用如下命令开启,接着在如下网站里下载Windows内核功能包安装插件并重启电脑即可

  • 适用于x64计算机的WSL2 Linux内核更新包:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

        接着我们用打开CMD输入wsl -l,如果成功打印了信息即代表WSL启用成功,如果提示: wsl 不是内部或外部命令,说明你没有启用 Windows 的 Linux 子系统,请从头检查是否按照教程配置,启用成功后我们在CMD中输入以下命令来升级我们的WSL并设置WSL2

wsl --update# 更新
wsl --set-default-version 2 #设置为WSL2

        然后我们用Ubuntu22.04来演示如何安装自己需要的Linux的系统,其他的系统版本步骤类似,在WSL中安装Ubuntu和安装虚拟机其实是类似的,我们都需要一个系统镜像来进行安装,这个镜像目前只能从微软官方获取,如果你的电脑启用了代理,那么你可以直接在cmd中输入以下命令来获取可用版本的 Linux 发行版列表,并使用如下命令进行安装

wsl --list --online #列出所有可获取发行版
wsl --install -d <Distribution Name># 安装对应的发行版

image-20250116181102788

        但是如果你的电脑没有设置代理,使用上述命令大概会有如下报错,因此我建议大家可以直接从微软商店(Microsoft Store)来获取系统分发,在[开始菜单]中输入Microsoft Store后点击即可打开微软商店,在搜索框输入Ubuntu即可显示Linux系统分发,PS:如果你开着代理,大概率微软商店将无法正常加载内容

image-20250116181216726

image-20250116181443755

        安装完成后我们打开cmd在上方的下拉箭头便会有对应的Ubuntu22.04选项,于是我们这时候可以点击这个选项便可以进入系统配置界面,或者是直接输入wsl接着便会提示你输入系统的用户名以及密码,这里要注意的是用户名最好是使用英文小写字母不然可能会有报错然后如果大家在"Installing,this may take a few minutes…"这个提示下等待时间过久,可以直接按ctrl+c强制退出然后进入账号创建步骤哦

image-20250116182404179

0639532e412a1cec3d8937cc6371878

        然后如果正式进入了系统那么便代表系统配置成功啦!!!这个时候我们便可以在Win设置的应用管理中将我们之前下载的系统分发删除啦!

ccaf9ed385874f9d65406292638be75

        但是到目前为止我们的WSL系统还是安装在C盘,随着后续的开发我们的C盘便会有爆满的风险,于是我们便可以将安装的系统迁移至其他盘,大家按照以下步骤即可完成迁移:

#step 1
wsl -l --all -v   #查看所有已安装的 Linux 发行版本
#step 2 导出wsl系统
wsl --export <Linux-name > <导出路径及名字>
wsl --export Ubuntu-22.04 d:\ubuntu22.04.tar  #示例
#step 3 注销原系统
wsl --unregister <Linux-name>
wsl --unregister Ubuntu-22.04 #示例
#step 4 重新导入
wsl --import <子系统名称> <迁移到哪一个文件下> <要导入的包路径> --version 2
wsl --import Ubuntu-22.04 d:\wsl-ubuntu22.04 d:\ubuntu22.04.tar --version 2 #示例
#step 5 设置默认用户
<wsl-Linux_name> config --default-user <user>
ubuntu2204.exe config --default-user xq #示例
#step 6 删除导出包
del d:\ubuntu22.04.tar 

        最后我们搭配VScode即可实现Win上对Linux的优雅开发!

        然后在WSL上访问Win上USB设备的方法请查看我的另一篇博客:老奶奶看了都会的WSL2连接USB设备教程_wsl2 usb-CSDN博客

PS:如果出现如下图片的报错,请检查:

  1. 是否输入过wsl --update

  2. 是否下载过 适用于x64计算机的WSL2 Linux内核更新包:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

  3. 是否按照教程启用了每一个Windows功能并且重启

    8f15085613fd4e11b1321f08555fb7d


http://www.ppmy.cn/embedded/154784.html

相关文章

使用 Kubernetes 实现负载均衡

使用 Kubernetes 实现负载均衡&#xff0c;可以通过 Kubernetes 的内置服务&#xff08;Service&#xff09;资源&#xff0c;配合负载均衡器&#xff08;如云平台提供的负载均衡器或 Ingress 控制器&#xff09;来完成。以下是详细的步骤和调优案例。 一、Kubernetes 负载均衡…

FPGA随记——时钟时序一些基本知识

原文链接&#xff1a;跨时钟域设计-CSDN博客 前言 CDC&#xff08;clock domain crossing&#xff09;检查&#xff08;跨时钟域的检查&#xff09;是对电路设计中同步电路设计的检查。非同步时钟没有固定的相位关系&#xff0c;这样Setup/Hold不满足而产生了亚稳态是无法避免…

JAVA实现五子棋小游戏(附源码)

文章目录 一、设计来源捡金币闯关小游戏讲解1.1 主界面1.2 黑棋胜利界面1.3 白棋胜利界面 二、效果和源码2.1 动态效果2.2 源代码 源码下载更多优质源码分享 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/145161039 JA…

检测远程服务器是否与本地连接

要检测远程服务器是否与本地连接&#xff0c;包括网址和端口检测&#xff0c;可以按照以下步骤进行&#xff1a; 1. 使用 ping 命令检测网络连通性 命令: ping <服务器地址>示例: ping example.com说明: 该命令用于检测本地与远程服务器之间的网络连通性。如果服务器响…

Python Wi-Fi密码测试工具

Python Wi-Fi测试工具 相关资源文件已经打包成EXE文件&#xff0c;可双击直接运行程序&#xff0c;且文章末尾已附上相关源码&#xff0c;以供大家学习交流&#xff0c;博主主页还有更多Python相关程序案例&#xff0c;秉着开源精神的想法&#xff0c;望大家喜欢&#xff0c;点…

vue3 uniapp封装一个瀑布流组件

新增组件m-waterfall 这样就可以在页面直接使用 不用在引入了 <template><view class"m-waterfall"><view id"m-left-column" class"m-column"><slot name"left" :leftList"leftList"></slot&…

Mac玩Steam游戏秘籍!

Mac玩Steam游戏秘籍&#xff01; 大家好&#xff01;最近有不少朋友在用MacBook玩Steam游戏时遇到不支持mac的问题。别担心&#xff0c;我来教你如何用第三方工具Crossover来畅玩这些不支持的游戏&#xff0c;简单又实用&#xff01; 第一步&#xff1a;下载Crossover 首先&…

PHP数据过滤函数详解:filter_var、filter_input、filter_has_var等函数的数据过滤技巧

PHP数据过滤函数详解&#xff1a;filter_var、filter_input、filter_has_var等函数的数据过滤技巧&#xff0c;需要具体代码示例 在 Web 开发中&#xff0c;数据过滤是非常重要的一环。过滤用户输入的数据可以保护我们的应用程序免受潜在的安全威胁。PHP 提供了一系列强大的数…