作者: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
在确认无误系统支持WSL2后我们进入**"控制面板--->程序--->启用或关闭Windows功能"** 中勾选打开如下三个功能,点击确认后系统会需要大家重启电脑来启用这些功能
PS:系统为家庭版的用户在Windows功能中没有"虚拟机平台"这一项,需要用管理员身份启动Windows PowerShell额外使用如下命令开启,接着在如下网站里下载Windows内核功能包安装插件并重启电脑即可
- 适用于x64计算机的WSL2 Linux内核更新包:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
cmd
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
接着我们用打开CMD输入wsl -l
,如果成功打印了信息即代表WSL启用成功,如果提示: wsl
不是内部或外部命令,说明你没有启用 Windows 的 Linux 子系统,请从头检查是否按照教程配置,启用成功后我们在CMD中输入以下命令来升级我们的WSL并设置WSL2:
cmd
wsl --update# 更新
wsl --set-default-version 2 #设置为WSL2
然后我们用Ubuntu22.04来演示如何安装自己需要的Linux的系统,其他的系统版本步骤类似,在WSL中安装Ubuntu和安装虚拟机其实是类似的,我们都需要一个系统镜像来进行安装,这个镜像目前只能从微软官方获取,如果你的电脑启用了代理,那么你可以直接在cmd中输入以下命令来获取可用版本的 Linux 发行版列表,并使用如下命令进行安装
cmd
wsl --list --online #列出所有可获取发行版
wsl --install -d <Distribution Name># 安装对应的发行版
但是如果你的电脑没有设置代理,使用上述命令大概会有如下报错,因此我建议大家可以直接从微软商店(Microsoft Store)来获取系统分发,在[开始菜单]中输入Microsoft Store
后点击即可打开微软商店,在搜索框输入Ubuntu即可显示Linux系统分发,PS:如果你开着代理,大概率微软商店将无法正常加载内容
安装完成后我们打开cmd
在上方的下拉箭头便会有对应的Ubuntu22.04选项,于是我们这时候可以点击这个选项便可以进入系统配置界面,或者是直接输入wsl
接着便会提示你输入系统的用户名以及密码,这里要注意的是用户名最好是使用英文小写字母不然可能会有报错 ,然后如果大家在"Installing,this may take a few minutes..."这个提示下等待时间过久,可以直接按ctrl+c
强制退出然后进入账号创建步骤哦
然后如果正式进入了系统那么便代表系统配置成功啦!!!这个时候我们便可以在Win设置的应用管理中将我们之前下载的系统分发删除啦!
但是到目前为止我们的WSL系统还是安装在C盘,随着后续的开发我们的C盘便会有爆满的风险,于是我们便可以将安装的系统迁移至其他盘,大家按照以下步骤即可完成迁移:
cmd
#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博客