window11使用wsl2安装Ubuntu22.04
目录
1、快速了解wsl2 安装子系统linux流程(B站视频)
2、wsl2常用命令
3、windows与子系统Linux文件访问方法
4、子系统linux使用windows网络代理、网络配置(镜像网络,非NAT)
5、wsl2 Ubuntu miniconda 安装
6、wsl2 docker安装
7、wsl2 cuda 安装
8、wsl2 子系统可视化
重要提示:本教程仅仅针对最新版本的win11系统,其他版本的系统暂无测试
1、快速了解wsl2 安装子系统linux流程(B站视频)
【windows 安装适用于linux的子系统,安装 docker 并开启局域网访问
2、wsl2常用命令
WSL 的基本命令
#升级下子系统
wsl --update # 查看支持内核版本 wsl版本是2.x
wsl -v
WSL 版本: 2.2.4.0
内核版本: 5.15.153.1-2# 如果wsl不是2.x, 将WSL2设置为默认版本
wsl --set-default-version 2# 查看已经安装的子系统
wsl -l -v#查看可安装的linux版本
wsl --list --online#安装Ubuntu-22.04 发行版本
wsl --install -d ubuntu-22.04# 启动子系统
wsl -d Ubuntu-22.04 # 这里启动Ubuntu 22.04使用的命令和配置
设置wsl版本:wsl --set-default-version 2
查看可以安装的发行版:wsl --list --online
安装ununtu:wsl --install -d Ubuntu-22.04
关闭wsl:wsl --shutdown.wslconfig配置文件在这个位置
%UserProfile%
C:\Users\<UserName>\.wslconfig查看子系统ip:hostname -I
端口转发:netsh interface portproxy add v4tov4 listenport=5244 listenaddress=0.0.0.0 connectport=5244 connectaddress=172.27.14.63
查看转发的端口:netsh interface portproxy show all
删除:netsh interface portproxy delete v4tov4 listenport=5244 listenaddress=0.0.0.0.wslconfig配置
[wsl2]
networkingMode=mirrored
hostAddressLoopback=true
3、windows与子系统Linux文件访问方法
WSL 的文件权限 | Microsoft Learn
4、子系统linux使用windows网络代理、网络配置(镜像网络,非NAT)
使用 WSL 访问网络应用程序
步骤:
下面配置仅限为win11系统,配置子系统Ubuntu网络为镜像网络,方便使用windows的网络代理
1) windows资源管理器输入:%UserProfile%后,跳转至用户目录:
2) 找到.wslconfig文件,没有则创建一个该文件即可
写入下面内容
# Settings apply across all Linux distros running on WSL 2
[wsl2]# Limits VM memory to use no more than 4 GB, this can be set as whole numbers using GB or MB
# memory=8GB# Sets the VM to use two virtual processors
processors=10[experimental]
autoMemoryReclaim=gradual # 开启自动回收内存,可在 gradual, dropcache, disabled 之间选择
networkingMode=mirrored # 开启镜像网络
dnsTunneling=true # 开启 DNS Tunneling
firewall=true # 开启 Windows 防火墙
autoProxy=true # 开启自动同步代理
sparseVhd=true # 开启自动释放 WSL2 虚拟硬盘空间
3) PowerShell中输入 wsl --shutdown 关闭所有的子系统,注意不是关闭终端(重要)
4)再次启动,使.wslconfig 配置生效
wsl -d Ubuntu-22.04
5)验证子系统是否使用windows代理成功
windows的代理需要开启Tun模式,如果未开启Tun模式,可能需要在Ubuntu终端使用export 开启环境变量(临时生效,永久生效需要更改配置文件),命令为:
# 如果是镜像网络
export https_proxy=http://127.0.0.1:7890
export http_proxy=http://127.0.0.1:7890
# 如果是NAT网络,需要在配置文件里加入:
# wsl http proxy
# 动态获得主机ip地址
HOST_IP=$(ip route show | grep -i default | awk '{ print $3}')
export https_proxy=$HOST_IP:7890
export http_proxy=$HOST_IP:7890# 对于非镜像网络,如果需要局域网互通,可能还得需要一个端口映射
# 这里使用curl来验证,不用ping,因为ping默认不支持http代理curl -I https://www.baidu.com# 结果:
HTTP/1.1 200 Connection establishedHTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: keep-alive
Content-Length: 277
Content-Type: text/html
Date: Wed, 30 Oct 2024 05:55:33 GMT
Etag: "575e1f71-115"
Last-Modified: Mon, 13 Jun 2016 02:50:25 GMT
Pragma: no-cache
Server: bfe/1.0.8.18
# 这里使用curl来验证,不用ping,因为ping默认不支持http代理
curl -I https://www.google.com# 结果为下面代表成功,如果什么未出现卡住代表失败:
HTTP/1.1 200 Connection establishedHTTP/2 200
content-type: text/html; charset=ISO-8859-1
content-security-policy-report-only: object-src 'none';base-uri 'self';script-src 'nonce-V1HCEWjM22NLtR0v_UYszA' 'strict-dynamic' 'report-sample' 'unsafe-eval' 'unsafe-inline' https: http:;report-uri https://csp.withgoogle.com/csp/gws/other-hp
accept-ch: Sec-CH-Prefers-Color-Scheme
p3p: CP="This is not a P3P policy! See g.co/p3phelp for more info."
date: Wed, 30 Oct 2024 05:55:47 GMT
server: gws
x-xss-protection: 0
x-frame-options: SAMEORIGIN
expires: Wed, 30 Oct 2024 05:55:47 GMT
cache-control: private
set-cookie: AEC=AVYB7co_o4i9i6JponI0fUy0GPIrYVSoGc5rdk2IyBuVdZQF5ljfIn8euNo; expires=Mon, 28-Apr-2025 05:55:47 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=lax
set-cookie: NID=518=dQebAMHHJPU9hSZIshAFzUHWMPFEZObPIMl6ZMjmay5duwQLkum7Hd44ikEgyVDZVMRlNWAWsOs5sNB2eSsrGTzms7iByOR11e3ZfvyODGfhEId-r6KzJ80y5Fhxvt7C-ecSOoCrBIUgsREJ6ZNFauGHkwwgob-61jKhK81iz5Y7UXQYGpH5Jamb74rLKrpw; expires=Thu, 01-May-2025 05:55:47 GMT; path=/; domain=.google.com; HttpOnly
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
5、wsl2 Ubuntu miniconda 安装
安装: mkdir -p ~/miniconda3wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.shbash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3rm ~/miniconda3/miniconda.sh安装完成后激活:
source ~/miniconda3/bin/activate环境变量初始化:
conda init --all
6、wsl2 docker安装
WSL 上的 Docker 容器入门 | Microsoft Learn
在windows/wsl 安装docker(官方文档)
7、wsl2 cuda 安装
CUDA on WSL 用户指南(nvidia官方文档)
win11 使用 wsl2 安装子linux系统,使用 nvidia-smi 是可以打印东西的,即使 nvidia-smi 可用,CUDA 工具包可能尚未安装或未正确配置。例如 nvcc -V 命令不可用、安装flash-atten 要用到CUDA 编译(pip install flash-attn==2.6.3 --no-build-isolation ) 会报错
需要注意的:
- Nvidia 图形驱动只需要装到windows机器上, wsl 子系统中不要安装任何图形驱动,仅需要安装cuda toolkit 即可。From this point you should be able to run any existing Linux application which requires CUDA. Do not install any driver within the WSL environment. For building a CUDA application, you will need CUDA Toolkit. Read the next section for further information.
- 最新的 NVIDIA Windows GPU 驱动程序将完全支持 WSL 2。通过驱动程序中的 CUDA 支持,现有应用程序(在其他 Linux 系统上为相同目标 GPU 编译)可以在 WSL 环境中无需修改即可运行。要编译新的 CUDA 应用程序,需要 Linux x86 的 CUDA Toolkit。CUDA Toolkit 对 WSL 的支持仍处于预览阶段,因为诸如分析器等开发工具尚不可用。但是,在 WSL2 环境中完全支持 CUDA 应用程序开发,因此用户应该能够使用适用于 x86 Linux 的最新 CUDA Toolkit 编译新的 CUDA Linux 应用程序。
- 在系统上安装 Windows NVIDIA GPU 驱动程序后,CUDA 就可以在 WSL 2 中使用。安装在 Windows 主机上的 CUDA 驱动程序将在 WSL 2 中被存根为
libcuda.so,因此用户不得在 WSL 2 中安装任何 NVIDIA GPU Linux 驱动程序。这里需要非常小心,因为默认的 CUDA Toolkit 附带有一个驱动程序,很容易用默认安装覆盖 WSL 2 的 NVIDIA 驱动程序。我们建议开发人员使用来自 CUDA Toolkit 下载页面的单独 WSL 2 (Ubuntu) CUDA Toolkit,以避免这种覆盖。有一个叫 WSL-Ubuntu CUDA 工具包安装程序不会覆盖已映射到 WSL 2 环境的 NVIDIA 驱动程序。
以下是在 WSL 中安装 CUDA 工具包的步骤:Linux WSL-Ubuntu 2.0 x86_64
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.6.2/local_installers/cuda-repo-wsl-ubuntu-12-6-local_12.6.2-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-12-6-local_12.6.2-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-12-6-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-6
正常来说,如果可以顺利安装上 torch GPU版、deepspeed、flash-atten,CUDA基本算是安装完成了,尤其是后两个包,flash-atten需要用到CUDA编译,如果没有安装或安装出错大概率是安装不成功的
测试代码:
import torch
import flash_attn
import deepspeed
import xformers
print(deepspeed.__version__)
print(xformers.__version__)
print(flash_attn.__version__)
print(torch.__version__)
print(torch.cuda.is_available())
print(torch.cuda.device_count())
print(torch.cuda.get_device_name(0))
print(torch.cuda.current_device())# 结果
0.14.0
0.0.27
2.6.3
2.3.1+cu121
True
1
NVIDIA GeForce RTX 3090
0
一些问题:
经上述py脚本测试,CUDA已经安装成功了,但是nvcc -V命令依旧用不了,原因为CUDA的安装路径通常需要添加到系统的PATH和LD_LIBRARY_PATH中。如果这些环境变量未正确配置,系统将无法找到nvcc命令。
1)验证CUDA Toolkit是否正确安装 ,检查CUDA Toolkit的安装目录。默认情况下,CUDA通常安装在/usr/local/cuda-12.6(根据您安装的版本不同,路径可能有所变化),查看nvcc是否存在
ls /usr/local/cuda-12.6/bin/nvcc
我的是存在的,证明CUDA虽然安装成功,但需要加入环境变量
2)配置环境变量
编辑shell配置文件(如~/.bashrc或~/.zshrc),添加以下内容:
export PATH=/usr/local/cuda-12.6/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12.6/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
3)保存文件后,重新加载配置
source ~/.bashrc
4)测试是否配置成功
which nvcc
# 应该输出类似于/usr/local/cuda-12.6/bin/nvcc的路径。如果没有输出,说明PATH未正确配置。nvcc -V# 输出:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Thu_Sep_12_02:18:05_PDT_2024
Cuda compilation tools, release 12.6, V12.6.77
Build cuda_12.6.r12.6/compiler.34841621_0
至此,CUDA完整安装成功
8、wsl2 子系统可视化
1)安装之前,
2)wsl 子系统需要的操作
# 安装xfce4
sudo apt install xfce4 # 失败重新安装 sudo apt reinstall xfce4# 再bashrc最后一行添加如下内容并保存,把其中的172.30.16.1换成自己的ipv4地址即可,可以在windows 终端中输入 ipconfig 进行查看
sudo vim ~/.bashrc
# 需要加入的内容
export DISPLAY=172.30.16.1:0
# 重载配置文件激活
source ~/.bashrc#重启一下wsl子系统,具体方法是,在windows终端里运行以下指令,再重新打开
wsl --shutdown # 关闭wsl
wsl -d Ubuntu-22.04 # 再启动#使用sudo 启动 Xfce 会话:
sudo startxfce4
3)安装 VcXsrv X Server 并启动它,地址为:VcXsrv - Open-Source X Server for Windows
一键安装后启动时需要进行配置:
参考资料:
CUDA on WSL User Guide
win11安装WSL2并配置Ubuntu环境
使用 WSL 访问网络应用程序
wsl2使用宿主机网络代理
WSL2的镜像网络模式:带来更流畅的Linux开发体验
新版 WSL2 2.0 设置 Windows 和 WSL 镜像网络教程
Windows 10 安装配置WSL2(ubuntu20.04)教程 超详细
WSL默认安装目录
相关文章:
window11使用wsl2安装Ubuntu22.04
目录 1、快速了解wsl2 安装子系统linux流程(B站视频) 2、wsl2常用命令 3、windows与子系统Linux文件访问方法 4、子系统linux使用windows网络代理、网络配置(镜像网络,非NAT) 5、wsl2 Ubuntu miniconda 安装 6、…...
虚拟滚动 - 从基本实现到 Angular CDK
简介 在大数据列表的处理上,虚拟滚动是一种优化性能的有效方式。本篇文章将详细介绍两种常见的虚拟滚动实现方式:使用 transform 属性和 Intersection Observer。重点讲解如何通过 transform 属性实现高效的虚拟滚动,并对比Angular CDK中的实…...
Spring WebFlux学习笔记(一)
核心思想 WebFlux主要是异步 例子 参考一个源码: https://blog.csdn.net/qq_43923045/article/details/106309432?spm1001.2014.3001.5506 GetMapping("/delay1")public Mono<RestResult> delayResult() {long l System.currentTimeMillis();…...
富格林:正确追损思维安全交易
富格林指出,对于如何正确追损的这个问题是需要持续付出时间和精力的,发现具备耐心的投资者往往在正确追损的路上更加游刃有余。他们总是可以保持较为平和的心态,不急不躁地分析原因并通过自身掌握的安全应对措施来进行交易。富格林在以下分享…...
前端vue2迁移至uni-app
1.确定文件存放位置 components: 继续沿用 pages: views内容移动到pages static: assets内容移动到static uni_modules: uni-app的插件存放位置 迁移前 src├─assets│ └─less├─components│ ├─common│ │ ├─CommentPart│ │ └─MessDetail│ ├─home│…...
恋爱脑学Rust之闭包三Traits:Fn,FnOnce,FnMut
在Rust中,FnOnce、FnMut和Fn是三个用于表示闭包(closure)类型的trait。闭包是一种特殊的函数,它可以捕获其环境变量,即在其定义时所处的作用域中的变量。以下是关于这三个trait的详细介绍: 1. FnOnce&#…...
区块链介绍
区块链(英文名:blockchain或block chain)是一种块链式存储、不可篡改、安全可信的去中心化分布式账本,它结合了分布式存储、点对点传输、共识机制、密码学等技术,通过不断增长的数据块链(Blocks)…...
git回滚间隔的提交
如果你需要回滚几个非连续的提交,可以使用 git revert 来选择性地撤销这些提交。这样做不会改变提交历史,只是会在当前分支上创建新的提交来反转指定的更改。 ### 使用 git revert 回滚间隔的提交 1. **查看提交历史**: 首先,…...
Map和Set(数据结构)
一、概念 Map 和 set 是一种专门用来进行搜索的容器或者数据结构,其搜索的效率与其具体的实例化子类有关。 Map 和 Set 是一种适合动态查找的集合容器。 模型 一般把搜索的数据称为关键字( Key ),和关键字对应的称为值࿰…...
vue3uniapp实现自定义拱形底部导航栏,解决首次闪烁问题
前言: 我最初在网上翻阅查找了很多方法,发现大家都是说在page.json中tabbar中添加:"custom": true,即可解决首次闪烁的问题,可是添加了我这边还是会闪烁,因此我这边改变了思路,使用了虚拟页面来解…...
新需求编码如何注意低级错误代码
1. 日常开发常见错误问题 变量拷贝未修改变量定义的值刚开始是随意写的一个值,想等到上线的时候再改成正确的,但是上线的时候忘记改了程序常量配置的错误逻辑关系判断错误 常见的如都不为null、都不为空集合判断不为空逻辑取反了多个关系的 && …...
系统架构图设计(行业领域架构)
物联网 感知层:主要功能是感知和收集信息。感知层通过各种传感器、RFID标签等设备来识别物体、采集信息,并对这些信息进行初步处理。这一层的作用是实现对物理世界的感知和初步处理,为上层提供数据基础网络层:网络层负责处理和传输…...
windows 文件监控 c++ 11及以上版本可用
在该版本上稍微改了一下https://blog.csdn.net/weixin_50964512/article/details/125002563 #include<iostream> #include<string> #include<Windows.h> #include<list> #include<locale> using namespace std;class WatchFolder {HANDLE m_hFi…...
jsMind:炸裂项目,用JavaScript构建的思维导图库,GitHub上的热门开源项目
嗨,大家好,我是小华同学,关注我们获得“最新、最全、最优质”开源项目和工作学习方法 jsMind 是一个基于 JavaScript 的思维导图库,它利用 HTML5 Canvas 和 SVG 技术构建,可以轻松地在网页中嵌入和编辑思维导图。它以 …...
postman的脚本设置接口关联
pm常用的对象 变量基础知识 postman获取响应结果的脚本的编写 下面是购物场景存在接口信息的关联 登录进入---搜索商品---进入商品详情---加入购物车 资源在附件中,可以私聊单独发送 postman的SHA256加密 var CryptoJS require(crypto-js);// 需要加密的字符串 …...
【python】OpenCV—Tracking(10.3)—GOTURN
文章目录 1、功能描述2、模型介绍3、代码实现4、完整代码5、结果展示6、优缺点分析7、参考 1、功能描述 基于 Generic Object Tracking using Regression Networks 方法,实现单目标跟踪 2、模型介绍 (1)发表来自 Held D, Thrun S, Savarese…...
git pull遇到一个问题
shell request failed on channel 0 需要修改服务器配置[rootadmin ~]# cat /etc/security/limits.d/20-nproc.conf # Default limit for number of users processes to prevent # accidental fork bombs. # See rhbz #432903 for reasoning.* soft nproc 409…...
书生-第四期闯关:完成SSH连接与端口映射并运行hello_world.py
端口映射完成后,访问127.0.0.1:7860成功展示如下界面: 书生浦语大模型实战营 项目地址:https://github.com/InternLM/Tutorial/...
【CSS3】css开篇基础(5)
1.❤️❤️前言~🥳🎉🎉🎉 Hello, Hello~ 亲爱的朋友们👋👋,这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章,请别吝啬你的点赞❤️❤️和收藏📖📖。如果你对我的…...
AI产品独立开发变现实战营,炒掉老板做自由职业赚大钱
课程背景 在经济下行和外部就业压力增大的背景下,为解决程序员的焦虑、失业和被裁员,我们开始了这门课程,课程基于3个真实已经盈利的商业项目,从0到1带你实践AI产品的设计、开发、运营和盈利模式的全流程开发。 课程特色 增加‘…...
PvZ Toolkit:植物大战僵尸全能修改工具全面解析
PvZ Toolkit:植物大战僵尸全能修改工具全面解析 【免费下载链接】pvztoolkit 植物大战僵尸 PC 版综合修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztoolkit PvZ Toolkit 是一款专为《植物大战僵尸》PC版设计的开源修改工具,支持从Wind…...
中国科协发布声明:停止受理学者参加NeurIPS 2026会议资助申请
点击下方卡片,关注“CVer”公众号AI/CV重磅干货,第一时间送达点击进入—>【顶会/顶刊】投稿交流群添加微信号:CVer2233,小助手拉你进群!扫描下方二维码,加入CVer学术星球!可以获得最新顶会/顶…...
Qwen2.5-VL-7B-Instruct详细步骤:GPTQ量化模型加载与推理加速技巧
Qwen2.5-VL-7B-Instruct详细步骤:GPTQ量化模型加载与推理加速技巧 1. 项目概述 Qwen2.5-VL-7B-Instruct是一款强大的多模态视觉-语言模型,能够同时处理图像和文本输入,生成高质量的响应。本指南将详细介绍如何通过GPTQ量化技术来优化模型加…...
LVGL项目实战:用思源字体让嵌入式屏幕完美显示中文(Gui Guider 1.7.1+版本指南)
LVGL项目实战:用思源字体让嵌入式屏幕完美显示中文(Gui Guider 1.7.1版本指南) 在嵌入式UI开发中,中文显示一直是开发者面临的棘手问题之一。传统方案需要手动提取字模、管理字库,既耗时又容易出错。而LVGL结合Gui Gui…...
AI和苹果夹逼,国产手机顶不住了,网传大规模人才优化已在进行中
某已没落的手机企业在转卖后,近期又传出重大消息,只是这次是相当悲惨的消息,手机硬件研发被砍掉,半数员工就地解散,揭开了手机行业人才优化的序幕,其实手机行业的这种操作早在去年底就已悄然进行࿰…...
LumiPixel Canvas Quest批量处理教程:使用Python脚本自动化生成人像图库
LumiPixel Canvas Quest批量处理教程:使用Python脚本自动化生成人像图库 1. 引言 最近遇到一个实际需求:需要为电商项目快速生成5000张不同风格的人像图片。手动一张张生成显然不现实,于是研究出了这套基于Python的自动化方案。用下来效果不…...
变压器匝间短路这玩意儿仿真起来是真刺激。今儿拿COMSOL折腾了个5%短路模型,从电磁场到噪声一条龙全流程,咱们边撸代码边唠嗑
comsol仿真,变压器匝间短路5%的电磁振动噪声模型 包括电磁场分布,磁密分布,振动形变,噪声分布等结果建模第一步得先让线圈支棱起来。在组件里用参数化曲线画线圈特别实用: # 参数化螺旋线 r 0.5 # 半径(m) pitch 0.…...
霞鹜文楷GB:为什么选择这款免费开源的中文国标字体?
霞鹜文楷GB:为什么选择这款免费开源的中文国标字体? 【免费下载链接】LxgwWenkaiGB An open-source Simplified Chinese font derived from Klee One. 项目地址: https://gitcode.com/gh_mirrors/lx/LxgwWenkaiGB 霞鹜文楷GB是一款基于日本Klee O…...
【AI工具篇】10款免费AI聊天与绘画神器:从GPT到Stable Diffusion的全方位体验
1. GPT机器人:全能型AI助手 这款工具可以说是AI领域的瑞士军刀,既能陪你聊天又能帮你画画。我实测下来最惊艳的是它直接集成了GPT-4模型,要知道很多收费工具都还在用3.5版本。打开应用就像有个学霸朋友随时待命——上周我写项目方案卡壳时&am…...
水墨江南模型软件测试实践:生成结果的稳定性与一致性验证
水墨江南模型软件测试实践:生成结果的稳定性与一致性验证 最近在项目里用上了水墨江南这个AI绘画模型,效果确实惊艳,那种烟雨朦胧、小桥流水的意境拿捏得很准。但问题也来了,当我们想把它集成到产品里,给用户稳定提供…...
